Skip to content
Translated page. The English version is the source of truth.

GET /apiv2/screening/history

Ваша історія перевірок, спочатку найновіші, з курсорною пагінацією.

Це контракт версії 2. Він замінює GET /apiv2/aml/history, який продовжує працювати.

URL кінцевої точки

GET https://netts.io/apiv2/screening/history

Заголовки запиту

ЗаголовокОбов'язковийОпис
X-API-KEYТакВаш API-ключ із панелі керування Netts

Параметри запиту (query)

Усі фільтри є необов'язковими. Без жодного з них ви отримаєте всю вашу історію.

ПараметрTypeЗа замовчуваннямОпис
addressstringТочна адреса, 10–128 символів
networkstringТікер мережі
providerstringelliptic або bitok
statusstringpending, processing, completed, skipped, failed
fromstringЛише перевірки, створені в цей момент або пізніше, RFC 3339
tostringЛише перевірки, створені в цей момент або раніше, RFC 3339
cursorstringЗвідки продовжувати. Візьміть його з next_cursor
limitinteger50Кількість елементів на сторінці, від 1 до 200

У версії 1 параметри address та network були обов'язковими, тому не було можливості запитати «що я перевіряв останнім часом».

Перевірки зі статусом skipped включені. Версія 1 їх приховує. Пропущена перевірка — це реальне замовлення (адреса не мала активності в блокчейні, тому її не було надіслано провайдеру і кошти не стягувалися), і вона має бути в історії.

Приклади запитів

cURL

bash
curl "https://netts.io/apiv2/screening/history?limit=50" \
  -H "X-API-KEY: your_api_key"

Python — прохід по всій історії

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"]}

Зберігайте фільтри ідентичними під час пагінації. Зміна фільтра зі збереженням того самого курсора є помилкою, а не непомітним перемиканням на інший набір даних.

Відповідь

json
{
  "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Опис
itemsarrayСторінка, спочатку найновіші
next_cursorstring | nullПередайте його назад, щоб отримати наступну сторінку. null означає, що ви досягли кінця
limitintegerЛіміт, який було застосовано

Коротка форма елемента

Блоки 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Коли
4001400limit поза межами 1…200, невідомий network, provider або status, значення from/to не за стандартом RFC 3339, некоректний курсор або курсор, виданий для інших фільтрів
4010 / 4011401Відсутній API-ключ або надано неприйнятний ключ чи IP
json
{
  "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 повна історія з десяти тисяч перевірок становить п'ятдесят запитів.