ChainwatchCrypto—blockchain intelligence and investigative operationsAll systems operational
API Reference

Endpoints, parameters and the shapes that come back.

The full surface, with the error model and rate-limit behaviour documented alongside it.

REST over HTTPSJSON onlyVersioned paths

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.

Endpoints

Every path in v1.

MethodPathPurpose
GET/v1/wallets/{address}Wallet profile: activity, counterparties, exposure and current risk.
GET/v1/wallets/{address}/transfersPaginated transfers for an address, filterable by asset and direction.
GET/v1/transactions/{hash}Normalised transaction detail across supported networks.
POST/v1/risk/checkScore an address or transaction against your active policy.
POST/v1/monitoring/walletsAdd an address to monitoring with rules and thresholds.
GET/v1/monitoring/walletsList monitored addresses and their current rule sets.
DELETE/v1/monitoring/wallets/{id}Stop monitoring an address.
GET/v1/alertsAlerts raised for your organisation, filterable by rule, severity and state.
GET/v1/cases/{id}Case state, stage, assigned investigator and available reports.
POST/v1/casesCreate a case from an intake payload.
GET/v1/entities/{id}Entity profile with attributions, sources and confidence levels.
POST/v1/screening/sanctionsScreen an address or identifier against ingested list versions.
GET/v1/reports/{id}Report metadata, version and download authorisation.
Pagination

Cursor-based, because offsets drift.

GET /v1/wallets/{address}/transfers
# 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
Why cursors

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.

Limits

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.

Errors

One shape, always.

Error response
{
  "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"
  }
}
StatusCodeMeaning
400invalid_requestMalformed parameters or body.
401unauthenticatedMissing, malformed or revoked key.
403insufficient_scopeKey lacks the scope for this endpoint.
404not_foundNo such resource, or not visible to this key.
409idempotency_conflictIdempotency key reused with a different body.
422network_unsupportedValid request, unsupported network for this operation.
429rate_limitedRate limit exceeded. Check Retry-After.
503provider_degradedUpstream chain data unavailable. Retry with backoff.
Rate limits

Per key, reported on every response.

Response headers
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 583
X-RateLimit-Reset: 1771843200
Retry-After: 12   # present only on 429
Burst and sustained

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.

Integrate against a stable contract.

Confirm the current endpoint list and your scopes during integration scoping.