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

BlockchainAnalysis.io — Digital Asset Compliance Platform