GET /apiv2/screening/history
Ваша історія перевірок, спочатку найновіші, з курсорною пагінацією.
Це контракт версії 2. Він замінює GET /apiv2/aml/history, який продовжує працювати.
URL кінцевої точки
GET https://netts.io/apiv2/screening/historyЗаголовки запиту
| Заголовок | Обов'язковий | Опис |
|---|---|---|
| X-API-KEY | Так | Ваш API-ключ із панелі керування Netts |
Параметри запиту (query)
Усі фільтри є необов'язковими. Без жодного з них ви отримаєте всю вашу історію.
| Параметр | Type | За замовчуванням | Опис |
|---|---|---|---|
| address | string | — | Точна адреса, 10–128 символів |
| network | string | — | Тікер мережі |
| provider | string | — | elliptic або bitok |
| status | string | — | pending, processing, completed, skipped, failed |
| from | string | — | Лише перевірки, створені в цей момент або пізніше, RFC 3339 |
| to | string | — | Лише перевірки, створені в цей момент або раніше, RFC 3339 |
| cursor | string | — | Звідки продовжувати. Візьміть його з next_cursor |
| limit | integer | 50 | Кількість елементів на сторінці, від 1 до 200 |
У версії 1 параметри address та network були обов'язковими, тому не було можливості запитати «що я перевіряв останнім часом».
Перевірки зі статусом skipped включені. Версія 1 їх приховує. Пропущена перевірка — це реальне замовлення (адреса не мала активності в блокчейні, тому її не було надіслано провайдеру і кошти не стягувалися), і вона має бути в історії.
Приклади запитів
cURL
curl "https://netts.io/apiv2/screening/history?limit=50" \
-H "X-API-KEY: your_api_key"Python — прохід по всій історії
import requests
headers = {"X-API-KEY": "your_api_key"}
params = {"limit": 200, "provider": "elliptic"}
while True:
page = requests.get("https://netts.io/apiv2/screening/history",
headers=headers, params=params).json()
for item in page["items"]:
print(item["order"]["client_order_id"],
item["order"]["status"],
item["risk"]["level"],
item["sanctions"]["verdict"])
if not page["next_cursor"]:
break
params = {"limit": 200, "provider": "elliptic", "cursor": page["next_cursor"]}Зберігайте фільтри ідентичними під час пагінації. Зміна фільтра зі збереженням того самого курсора є помилкою, а не непомітним перемиканням на інший набір даних.
Відповідь
{
"schema_version": 2,
"items": [
{
"order": {
"client_order_id": "A6F3221BAAE093A",
"status": "completed",
"api_version": "v2",
"cache_hit": false,
"created_at": "2026-09-13T08:24:19.838584Z",
"started_at": "2026-09-13T08:24:20.998619Z",
"completed_at": "2026-09-13T08:24:25.179967Z"
},
"request": {
"address": "YOUR_ADDRESS_HERE",
"network": "trx",
"provider": "elliptic"
},
"check": {
"provider": "elliptic",
"provider_check_id": "1cc2fd64-1483-4ce3-946f-23a614f41a12",
"checked_at": "2026-09-13T08:24:22.372000Z",
"status": "completed",
"provider_status": "complete"
},
"risk": {
"score": "0.12428176721891304",
"scale": { "min": 0, "max": 10 },
"level": "low",
"level_source": "computed",
"provider_level": null,
"policy": "netts-risk-v1",
"by_direction": { "source": "0.12428176721891304", "destination": null }
},
"sanctions": { "verdict": "linked" }
}
],
"next_cursor": "eyJmIjp7InN0YXR1cyI6ImNvbXBsZXRlZCJ9LCJpIjoxMzQyNywidCI6...",
"limit": 1
}| Поле | Type | Опис |
|---|---|---|
| items | array | Сторінка, спочатку найновіші |
| next_cursor | string | null | Передайте його назад, щоб отримати наступну сторінку. null означає, що ви досягли кінця |
| limit | integer | Ліміт, який було застосовано |
Коротка форма елемента
Блоки order, request, check та risk ідентичні тим, що містяться в повному результаті запиту GET /apiv2/screening/{client_order_id}, поле в поле, тому один і той самий парсер підходить для обох.
Що виключено: provider_data, exposure[], rules[], entities[], wallet, billing, precheck і повний блок sanctions. Один результат від Elliptic займає близько 150 КБ, а сторінка з п'ятдесяти елементів важила б сім мегабайтів. Отримуйте окрему перевірку, коли вам потрібна детальна інформація.
sanctions.verdict
Аналіз санкцій, стиснутий до одного слова.
| Значення | Значення |
|---|---|
listed | Сама адреса перебуває в санкційному списку |
linked | Знайдено зв'язок із санкціями, але сама адреса не в списку |
none | Аналіз виконано, нічого не знайдено |
null | Результату для аналізу ще немає |
Різниця між listed та linked є головним змістом цього поля — див. Санкції в AML-результаті.
Пагінація
Версія 1 використовує пагінацію за номерами: ?page=2, 100 на сторінку. Сортування здійснюється за часом створення, спочатку найновіші, тому поки ви переходите від сторінки 1 до сторінки 2, надходять нові перевірки та зміщують усе вниз. Записи, які ви вже бачили, з'являються знову, а записи, яких ви не бачили, проходять повз вас. Для активного акаунта це звичайна ситуація.
Курсор вказує на місце в наборі, а не на його порядковий номер, тому нові перевірки, що надходять під час проходу, не порушують порядок.
- порядок сортування:
created_at DESC, id DESC. Обидва поля входять до курсора, оскількиcreated_atне є унікальним — дві перевірки, створені в одну й ту саму мікросекунду, інакше зациклилися б або пропустилися; - курсор є непрозорим. Його вміст є деталлю реалізації; передавайте його назад точно в такому вигляді, в якому отримали;
- фільтри є частиною курсора. Зміна одного з них під час повторного використання курсора повертає
400, а не непомітно перемикає на інший набір даних — інакше ви б вважали, що прочитали набір, якого ніколи не читали; next_cursor: nullозначає кінець. Загальна кількість відсутня: підрахунок усього набору на кожній сторінці коштує дорожче, ніж приносить користі.
Помилки
RFC 9457, application/problem+json. Повний список кодів наведено на сторінці POST.
| Код | HTTP | Коли |
|---|---|---|
4001 | 400 | limit поза межами 1…200, невідомий network, provider або status, значення from/to не за стандартом RFC 3339, некоректний курсор або курсор, виданий для інших фільтрів |
4010 / 4011 | 401 | Відсутній API-ключ або надано неприйнятний ключ чи IP |
{
"type": "https://doc.netts.io/api/v2/errors/validation-failed",
"title": "Request validation failed",
"status": 400,
"detail": "Cursor was issued for a different set of filters",
"instance": "/apiv2/screening/history",
"code": 4001
}Обмеження частоти запитів
Спільні з усіма іншими AML-маршрутами: 5 запитів на секунду, 150 на хвилину. З limit=200 повна історія з десяти тисяч перевірок становить п'ятдесят запитів.