How to screen many crypto addresses against the OFAC sanctions list with an API

POST up to 1,000 addresses to /v1/sanctions/batch and get a match or no match for each against the OFAC SDN digital-currency address list, with the matching entries and the list date.

When to use it

Use it to screen a list of crypto addresses (an exchange export, a wallet list, a batch of counterparties) against the OFAC SDN digital-currency address list in one call instead of one call per address. For a single address use the single-address guide, which also has a free tier.

Request

POST addresses (1 to 1,000) to /v1/sanctions/batch. EVM and bech32 addresses match case-insensitively; base58 BTC, TRX and other formats must match exactly as listed. Batches are never free, so an unpaid call returns the 402.

curl, no free tier: the 402
curl -s -i -X POST https://tanod.dev/v1/sanctions/batch \
  -H 'content-type: application/json' \
  -d '{"addresses": ["0x098B716B8Aaf21512996dC57EB0615e2383E2f96", "0x0000000000000000000000000000000000000001"]}'

Response

Response once paid (example from the API spec, trimmed)
{
  "count": 2,
  "matched_count": 1,
  "results": [
    {
      "address": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
      "address_kind": "evm",
      "matched": true,
      "matches": [{"sdn_name": "LAZARUS GROUP", "sdn_type": "Entity", "programs": ["DPRK3"], "currency": "ETH"}]
    },
    {"address": "0x0000000000000000000000000000000000000001", "address_kind": "evm", "matched": false, "matches": []}
  ],
  "list": "OFAC SDN List (Digital Currency Address identifiers)",
  "list_date": "2026-10-05"
}

One invalid item fails the whole batch with a 422 that names its index; that is not charged. Always read list_date: it is the date of the list the answer was checked against.

Paying: the 402 flow

Leave out the X-Tanod-Free header (or use up the free calls) and the same request gets HTTP 402 with the price (USD 0.002 for two addresses) and how to pay in the accepts list. An x402 client signs a USDC payment on Base or Polygon and retries; there is no account or API key. The full flow is in Pay-per-call APIs for AI agents with x402.

curl, no free header: the 402
curl -s -i -X POST https://tanod.dev/v1/sanctions/batch \
  -H 'content-type: application/json' \
  -d '{"addresses": ["0x098B716B8Aaf21512996dC57EB0615e2383E2f96", "0x0000000000000000000000000000000000000001"]}'

Limits and attribution

This is not legal advice and not a full compliance check. It screens one list only, the US Treasury OFAC SDN list's published digital-currency addresses, as of list_date. A non-match does not clear an address: there are no other sanctions lists, no clustering, ownership or exposure analysis. Verify any match at sanctionssearch.ofac.treas.gov. Tanod does not log or store the submitted addresses.

List: US Treasury OFAC SDN list (US Government work).

Price and free allowance

USD 0.0005 per address, at least USD 0.002 per call (up to USD 0.5 for 1,000 addresses), paid in USDC on Base or Polygon with x402. There is no free tier for batches. The single-address route has its own free allowance. MCP tool: check_sanctions_batch at https://tanod.dev/mcp, where the free tier is automatic.

All endpoints →

Related guides: How to check if a crypto address is on the OFAC sanctions list, Phishing and scam URL checker API, Contract and address risk check API, Pay-per-call APIs for AI agents with x402. Back to tanod.dev or the guide index. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.