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 | 是 | 来自 Netts 控制面板的 API 密钥 |
路径参数
| Parameter | Type | Description |
|---|---|---|
| client_order_id | string | 创建订单时返回的标识符:A 后跟 14 个十六进制字符 |
查询参数
| Parameter | Type | Default | Description |
|---|---|---|---|
| format | string | json | 结果的表现形式。json 是唯一接受的值 |
表现形式是请求的属性,而不是订单本身的属性。在第 1 版中,它在订单创建时就被固定了,因此作为 JSON 下单的检查永远无法通过其他方式读取。
目前仅有一种表现形式,即 JSON。 保留该参数是为了日后添加第二种形式时不会造成破坏性变更;目前传入任何其他值均会返回 4001。报告只是您已完整拥有的数据的呈现形式,自行呈现能够让您拥有自己的品牌化设计、语言和布局。参见报告。
示例
cURL
bash
curl https://netts.io/apiv2/screening/A90D21F68C9AEA2 \
-H "X-API-KEY: your_api_key"Python — 轮询直到检查完成
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 发送。
尚未完成的检查
json
{
"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": { }
}无活动的地址
从未在区块链上使用过的地址不会发送给服务提供商,也不会被收费。该订单存在,因此可以读取结果:
json
{
"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 | 场景 |
|---|---|---|
4003 | 400 | 标识符不是 A 加上 14 个十六进制字符 |
4040 | 404 | 订单不存在 |
4010 / 4011 | 401 | 无 API 密钥,或密钥/IP 未被接受 |
属于其他账户的订单会响应 404,而不是 403。 否则仅凭响应代码就能证实属于他人的标识符存在。
json
{
"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 次。 轮询是免费的,但会计入限额——轮询间隔 2 秒便已足够。
另请参阅
- POST /apiv2/screening — 下单检查
- GET /apiv2/screening/history — 一次性获取多个检查的简短形式