Endpoints, parameters and the shapes that come back.
The full surface, with the error model and rate-limit behaviour documented alongside it.
ChainwatchCrypto API reference
The v1 reference documents every path, its parameters and the response shape it returns. Pagination is cursor-based rather than offset-based, because offsets drift as underlying data changes. Responses share one envelope shape across endpoints, and errors are typed so a client can distinguish an unsupported network from a malformed request.
Every path in v1.
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/wallets/{address} | Wallet profile: activity, counterparties, exposure and current risk. |
| GET | /v1/wallets/{address}/transfers | Paginated transfers for an address, filterable by asset and direction. |
| GET | /v1/transactions/{hash} | Normalised transaction detail across supported networks. |
| POST | /v1/risk/check | Score an address or transaction against your active policy. |
| POST | /v1/monitoring/wallets | Add an address to monitoring with rules and thresholds. |
| GET | /v1/monitoring/wallets | List monitored addresses and their current rule sets. |
| DELETE | /v1/monitoring/wallets/{id} | Stop monitoring an address. |
| GET | /v1/alerts | Alerts raised for your organisation, filterable by rule, severity and state. |
| GET | /v1/cases/{id} | Case state, stage, assigned investigator and available reports. |
| POST | /v1/cases | Create a case from an intake payload. |
| GET | /v1/entities/{id} | Entity profile with attributions, sources and confidence levels. |
| POST | /v1/screening/sanctions | Screen an address or identifier against ingested list versions. |
| GET | /v1/reports/{id} | Report metadata, version and download authorisation. |
Cursor-based, because offsets drift.
# First page GET /v1/wallets/0x4f2c…9ac2/transfers?limit=100 # Response { "data": [ /* … */ ], "page": { "limit": 100, "next": "eyJvIjoxMDB9", "has_more": true } } # Next page GET /v1/wallets/0x4f2c…9ac2/transfers?limit=100&cursor=eyJvIjoxMDB9
Chain data is append-only but reorganisations happen. An offset-based page boundary can silently skip or repeat a record when new data lands mid-pagination; a cursor cannot.
Default page size is 50, maximum 200. Requesting more returns the maximum rather than an error, and the applied limit is reported in the page object.
One shape, always.
{
"error": {
"code": "network_unsupported",
"message": "The requested network is not supported for this endpoint.",
"request_id": "req_7f21c4a9",
"docs": "https://chainwatchcrypto.com/developers/reference.html"
}
}| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | Malformed parameters or body. |
| 401 | unauthenticated | Missing, malformed or revoked key. |
| 403 | insufficient_scope | Key lacks the scope for this endpoint. |
| 404 | not_found | No such resource, or not visible to this key. |
| 409 | idempotency_conflict | Idempotency key reused with a different body. |
| 422 | network_unsupported | Valid request, unsupported network for this operation. |
| 429 | rate_limited | Rate limit exceeded. Check Retry-After. |
| 503 | provider_degraded | Upstream chain data unavailable. Retry with backoff. |
Per key, reported on every response.
X-RateLimit-Limit: 600 X-RateLimit-Remaining: 583 X-RateLimit-Reset: 1771843200 Retry-After: 12 # present only on 429
Limits are expressed per minute with a short burst allowance. Sustained overage returns 429 with Retry-After; respect it rather than retrying immediately, because retry storms extend the window.
