🔄 Check lifecycle and statuses
A quick check runs asynchronously: creating or re-running a check puts a job in the queue and immediately returns the check record. The data (risk, analysis, info, labels) appears in that same record later and has to be fetched with a follow-up request.
📊 Values of the status field
| Value | Constant | Meaning |
|---|---|---|
0 | NEW | The check has been created and queued, processing has not started yet |
1 | PROCESS | The check is running: data providers are being queried |
2 | END | The check is finished, the data in the record is up to date |
No other values are used.
✅ How to tell that a check is complete
Completion is a pair of conditions: status === 2 and updated_at is newer than the value you saw when you started the check.
t0 = updated_at from the response to PUT /api/fast-check (or GET /api/fast-check/{id}/run)
done when status == 2 AND updated_at > t0
⚠️ "Checked" vs "no data received"
If the providers returned nothing, the check still ends with status: 2 and the risk object looks like this:
{
"score": 0,
"risk_detail": null,
"providers": {}
}
An empty providers together with score: 0 means the score could not be obtained, and the address must not be treated as clean. A successful check always has at least one source in providers, e.g. {"m": 12} or {"f": 100}.
⏱️ How long it takes
Checks of one account are processed sequentially, one after another. A single check normally takes from a few seconds up to a couple of minutes (up to four calls to external providers, 120 s timeout each).
When you queue a batch of addresses (e.g. 50 wallet addresses), the last check in the queue may finish several minutes after the first one. A reasonable timeout is 10 minutes; if status has not become 2 by then, re-run the check via GET /api/fast-check/{id}/run.
🔁 Recommended polling loop
# 1. Queue a check (or re-run an existing one)
curl -X PUT 'https://amlkyc.tech/api/fast-check' \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Accept: application/json' \
-d 'address=TLXvVN23UkxS4SW4JuQMhAYw9NNP8zwGyA' \
-d 'currency=usdt' \
-d 'network=trx'
# => {"id": 1234, "uuid": "...", "status": 0, "updated_at": "2026-09-11T10:14:45.000000Z", ...}
# 2. After 5-10 seconds poll a single check...
curl 'https://amlkyc.tech/api/fast-check/1234' \
-H 'Authorization: Bearer <API_TOKEN>' -H 'Accept: application/json'
# 3. ...or, if you have many checks, fetch them in one request
curl 'https://amlkyc.tech/api/fast-check?limit=50&updated_from=2026-09-11' \
-H 'Authorization: Bearer <API_TOKEN>' -H 'Accept: application/json'