API documentation

Screen names, cryptocurrency wallet addresses and adverse media from your own systems.

The AML Screen API screens names against every sanctions, PEP, wanted, debarment and regulator warning list we carry, cryptocurrency wallet addresses against sanctioned and flagged wallets, and names against news and web sources for adverse media. Every endpoint is a POST that takes and returns JSON.

Endpoints

Authentication

Send your API key in the x-api-key header on every request. Keys are created in the dashboard.

x-api-key: YOUR_API_KEY

Bulk name screening, bulk wallet screening, scored adverse media screening and entry details also accept a signed-in user’s bearer token, which is how the dashboard calls them. Unscored adverse media search takes a key only. For an integration, use an API key either way.

Search types

Name screening takes an optional search_type that sets how tolerant matching is. Anything else is rejected with a 400.

FieldTypeDescription
fuzzy_searchstringVector similarity. The most tolerant of spelling and transliteration differences, and the default for single-name screening. Not available for bulk screening.
permissive_matchstringWide text matching. Returns more candidates for review, and the default for bulk screening.
standard_matchstringThe balance between recall and noise that suits most onboarding checks.
strict_matchstringTight matching. Fewest false positives, most likely to miss a spelling variant.

Rate limits

Each key has its own per-minute limit, 60 requests a minute unless yours says otherwise. Going over returns 429 with a Retry-After header giving the seconds to wait.

Errors

Errors return the matching status code and a body of { "error": "..." }. A failed request is still recorded against your key.

FieldTypeDescription
400Bad RequestA required field is missing or malformed: no prompt, an unknown search_type, or additional_call_info that is not an object.
401UnauthorizedThe x-api-key header is missing, or the key is not valid.
429Too Many RequestsYour key's per-minute limit is exhausted. Check Retry-After.
500Server ErrorSomething failed on our side. The request was not screened.

Usage tracking

Every v2 response carries an api_usage_id, the identifier of the usage record written for that call. Keep it if you need to tie a screening decision back to the exact request and response we hold.

You can also send an additional_call_info object on any v2 request. It is stored alongside the usage record and returned in your screening history, which is the place to put your own reference for the check.

{
  "prompt": "John Smith",
  "additional_call_info": {
    "customer_id": "CUS-4192",
    "reviewed_by": "onboarding-team"
  }
}
Entry details is the exception: it issues no RPC and is not metered, so it returns no api_usage_id.

We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.