API Endpoints
The BlockchainAnalysis.io REST API provides programmatic access to wallet screening, entity lookup, name screening, KYT, address verdicts, monitoring, usage and key management. All endpoints use HTTPS and return JSON.
Base URL: https://blockchainanalysis.io/api/v1
All endpoints require Bearer token authentication. See Authentication for details. Each API key carries per-product permissions (screening, entity, kyt, monitoring, intel, oracle) — a 403 means your key lacks the permission for that endpoint.
Address vs name — pick the right endpoint. Start from an on-chain address → use GET /entity/{address} (what wallet is this?). Start from a person/company name → use POST /bascreen/bulk (sanctions / PEP / adverse-media screening). They take different inputs and answer different questions — see Entity & Label Endpoints vs Name Screening below.
Screening Endpoints
POST /screening
Screen a single blockchain address. Returns risk score, entity match, sanctions exposure, counterparty exposure and risk factors — the full compliance verdict.
POST /api/v1/screening
{
"address": "0x28C6c06298d514Db089934071355E5743bf21d60",
"chain": "ETH",
"jurisdiction": "CH"
}
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| address | string | Yes | The blockchain address to screen |
| chain | string | Yes | Chain identifier (e.g. ETH, BTC, TRON) |
| jurisdiction | string | No | ISO country code for jurisdiction-aware risk |
Permission: screening. Credits: 1 per screening.
POST /kyt
Know-Your-Transaction risk check for an address or transaction in a payment flow. Returns a BLOCK / REVIEW / ALLOW decision with risk score and flags.
POST /api/v1/kyt
{ "address": "0x28C6...1d60", "chain": "ETH", "direction": "outgoing" }
Permission: kyt. Credits: 1 per check.
POST /trace
Fund-flow trace from a starting address (multi-hop graph + path finding).
Permission: screening. Credits: 5–10 depending on depth.
Entity & Label Endpoints
GET /entity/{address}
Look up what entity an on-chain address belongs to — exchange, mixer, sanctioned entity, etc. — with its labels and any sanctions hit. Pass the chain as a query parameter.
GET /api/v1/entity/0x28C6c06298d514Db089934071355E5743bf21d60?chain=ETH
{
"data": {
"address": "0x28c6...1d60",
"chain": "ETH",
"labels": [
{ "name": "Binance 14", "category": "EXCHANGE", "threatLevel": "LOW", "source": "binance-official" }
],
"sanctioned": false
}
}
Permission: entity. Free demo endpoint — rate-limited to 30 req/min; for production volume use the Intel screening endpoints.
GET /address/{chain}/{address}/labels
Cache-friendly GET variant of the Intel screening response — the full raw label set for an address. Same data as POST /screen.
Permission: intel.
GET /exchange-status
Regulatory registration status of an exchange / VASP across global registers.
Permission: entity.
Name Screening
POST /bascreen/bulk
Screen up to 50 person/company names in one call against sanctions, PEP and adverse-media lists. This is the endpoint to use when your input is an identity (a name) rather than an on-chain address.
POST /api/v1/bascreen/bulk
{
"names": [
{ "name": "Acme Holdings Ltd" },
{ "name": "John Smith" }
]
}
{
"results": [
{
"name": "Acme Holdings Ltd",
"topMatches": [
{ "name": "ACME HOLDINGS LIMITED", "confidence": 0.91, "source": "OFAC SDN", "listType": "sanctions" }
]
}
],
"creditsUsed": 2
}
Permission: screening. Credits: 1 per name. Max 50 names per request.
Intelligence Endpoints
POST /screen · POST /screen/bulk
BA | Intel raw entity-label data for an address (single, or up to 100 in bulk). Returns labels only — no derived risk score (you combine them into your own decision).
Permission: intel. Monthly tier quota applies.
GET /sanctions/check
Fast Tier-1 sanctions lookup only (OFAC SDN / EU / UN / UK HMT / Swiss SECO).
GET /api/v1/sanctions/check?address=0x8589...da16&chain=ETH
Permission: intel.
GET /oracle/address/{chain}/{address}
Real-time verdict (safe / warning / danger) with score and reasons for pre-transaction safety checks.
GET /api/v1/oracle/address/ETH/0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b
Quota: free tier 1,000 verdict calls / month; paid tiers raise the limit.
Monitoring Endpoints
Continuous wallet monitoring. All require the monitoring permission.
| Method · Path | Description |
|---|---|
| GET · POST /monitoring/wallets | List / add monitored wallets |
| GET · PATCH · DELETE /monitoring/wallets/{id} | Get / update / remove a monitored wallet |
| GET /monitoring/wallets/{id}/alerts | Alerts for a wallet |
| GET /monitoring/wallets/{id}/transactions | Transactions for a wallet |
| GET /monitoring/alerts | All alerts (filterable) |
| PATCH /monitoring/alerts/{id} | Acknowledge / update an alert |
Usage & Key Management
GET /usage
Current credit balance and usage ledger for the authenticated key.
GET /keys · POST /keys
List API keys, or create a new one.
POST /api/v1/keys
{ "name": "Production Backend" }
DELETE /keys/{id} · PATCH /keys/{id}
Revoke a key, or toggle a user-toggleable permission on it.
Credits: Key management is free.
Common Response Codes
| Code | Meaning |
|------|---------|
| 200 | Success |
| 400 | Bad request — check parameters |
| 401 | Unauthorized — invalid or missing API key |
| 402 | Insufficient credits / monthly quota exhausted |
| 403 | Forbidden — key lacks the permission for this endpoint |
| 404 | Not found |
| 429 | Rate limited — see Rate Limits |
| 500 | Internal server error |
Next Steps
- Authentication — API key setup and management.