GET /apiv2/screening/
Отримати замовлення на перевірку в будь-якому стані. Читання є безкоштовним і може повторюватися скільки завгодно.
Це контракт версії 2. Він замінює GET /apiv2/aml/{order_id}, який продовжує працювати.
URL кінцевої точки
GET https://netts.io/apiv2/screening/{client_order_id}Заголовки запиту
| Header | Required | Description |
|---|---|---|
| X-API-KEY | Так | Ваш API-ключ з панелі керування Netts |
Параметри шляху
| Parameter | Type | Description |
|---|---|---|
| client_order_id | string | Ідентифікатор, повернутий під час створення замовлення: A та 14 шістнадцяткових символів після неї |
Параметри запиту (query)
| Parameter | Type | Default | Description |
|---|---|---|---|
| format | string | json | Представлення результату. json є єдиним допустимим значенням |
Представлення є властивістю запиту, а не замовлення. У версії 1 воно фіксувалося під час створення замовлення, тому перевірку, замовлену у форматі JSON, ніколи не можна було прочитати інакше.
Існує одне представлення, і це JSON. Параметр збережено для того, щоб додавання другого в майбутньому не стало несумісною зміною; наразі будь-яке інше значення повертає 4001. Звіт є відображенням даних, якими ви вже володієте в повному обсязі, і його самостійне формування дає вам ваш власний брендинг, вашу мову та ваш власний макет. Див. Звіти.
Приклади
cURL
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
-H "X-API-KEY: your_api_key"Python — опитування до завершення перевірки
import time
import requests
headers = {"X-API-KEY": "your_api_key"}
url = "https://netts.io/apiv2/screening/A90D21F68C9AEA2"
while True:
body = requests.get(url, headers=headers).json()
status = body["order"]["status"]
if status in ("completed", "failed", "skipped"):
break
time.sleep(2)
print(status, body["risk"]["level"], body["risk"]["score"])Відповідь
200 OK з тим самим тілом, що й POST /apiv2/screening, у кожному стані замовлення. Набір полів не залежить від стану: блоки, які ще не мають даних, заповнюються значеннями null і порожніми списками, а не опускаються.
Відповіді, що містять результат перевірки, надсилаються з Cache-Control: private, no-store.
Незавершена перевірка
{
"schema_version": 2,
"order": {
"client_order_id": "A90D21F68C9AEA2",
"status": "pending",
"api_version": "v2",
"cache_hit": false,
"created_at": "2026-09-13T08:14:29.614988Z",
"started_at": null,
"completed_at": null
},
"request": { "address": "YOUR_ADDRESS_HERE", "network": "trx", "provider": "elliptic" },
"billing": {
"charged": true, "price_usdt": "0.98", "base_amount": "2.882421",
"markup_amount": "0", "charged_amount": "2.882421", "charged_currency": "TRX",
"exchange_rate": "0.33999200", "payment_status": "pending"
},
"precheck": { "activity_checked": true, "activity_status": "active", "source": "tron-address-checker" },
"check": {
"provider": "elliptic", "provider_check_id": null, "checked_at": null,
"status": "pending", "provider_status": null
},
"risk": {
"score": null, "scale": { "min": 0, "max": 10 }, "level": "none",
"level_source": "computed", "provider_level": null, "policy": "netts-risk-v1",
"by_direction": { "source": null, "destination": null }
},
"sanctions": null,
"exposure": [],
"rules": [],
"entities": [],
"primary_entity": null,
"sanctioned_entities": [],
"wallet": { "inflow_usd": null, "outflow_usd": null },
"provider_data": { }
}Адреса без активності
Адреса, яка ніколи не використовувалася в блокчейні, не надсилається провайдеру і не тарифікується. Замовлення існує, тому результат можна прочитати:
{
"order": {
"client_order_id": "AC4F9BC45A79323",
"status": "skipped",
"started_at": null,
"completed_at": null,
"reason": "address_inactive"
},
"billing": { "charged": false, "charged_amount": "0", "payment_status": "not_charged" },
"precheck": { "activity_checked": true, "activity_status": "inactive", "source": "tron-address-checker" },
"check": { "status": "not_performed", "provider_check_id": null, "checked_at": null }
}Тут показані лише ті блоки, які змінюються; решта присутня зі значеннями null та порожніми списками, як завжди.
Відповіді з помилками
Формат відповідає RFC 9457, Content-Type: application/problem+json. Повний список кодів наведено на сторінці POST.
| Code | HTTP | When |
|---|---|---|
4003 | 400 | Ідентифікатор не складається з A та 14 шістнадцяткових символів |
4040 | 404 | Замовлення не знайдено |
4010 / 4011 | 401 | Відсутній API-ключ або ключ чи IP не прийнято |
Замовлення, що належить іншому акаунту, повертає 404, а не 403. Інакше сам лише код відповіді підтверджував би існування чужого ідентифікатора.
{
"type": "https://doc.netts.io/api/v2/errors/order-not-found",
"title": "Order not found",
"status": 404,
"detail": "Order not found",
"instance": "/apiv2/screening/AFFFFFFFFFFFFFF",
"code": 4040
}Ліміти частоти запитів
Спільні з усіма іншими шляхами AML: 5 запитів на секунду, 150 на хвилину. Опитування нічого не коштує, але враховується в ліміт — інтервалу у дві секунди між запитами цілком достатньо.
Див. також
- POST /apiv2/screening — замовити перевірку
- GET /apiv2/screening/history — багато перевірок одночасно у короткій формі