Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Sanctions Screening API page →
docs / sanctions

Sanctions Screening

Sanctions Screening

base /sanctions/v14 endpoints
post/sanctions/v1/screen2 credits

Screen ONE name against the official sanctions lists → status (match | possible_match | no_match) + ranked matches with score, matched aliases, programs, DOB/place-of-birth, IDs, and the audit trail (which sources + thresholds were used). Add type/country/dob descriptors to cut false positives.

ParameterAllowed / rangeDescription
namerequired—The person/entity/vessel name to screen. Matching is fuzzy + transliteration-aware (Cyrillic/Arabic/diacritics are folded to ASCII, so Алишер/محمد/Müller match their Latin spellings) and alias-aware (every a.k.a. on a record is screened). Name-only screening is false-positive-heavy — add dob/country/type to narrow.
typeoptionalperson · entity · vessel · aircraftOptional entity type. When set, ONLY same-type list records are compared (a person query never matches a vessel record) — the single biggest precision lever. Omit to screen across all types.
countryoptional—Optional country/nationality descriptor. A match on the record's country / nationality / place-of-birth adds 'country' to matched_fields and boosts the score. A mismatch does NOT exclude (lists are sparsely populated) — it is simply not corroborated.
doboptional—Optional date of birth (full date or just the year). A year match against the record's DOB(s) adds 'dob' to matched_fields and boosts the score. Persons only; ignored for entities/vessels.
threshold = 0.85optional0.62–1Minimum match score (0-1) to surface a candidate. Default 0.85. Lower → higher recall (more false positives); raise toward 0.95 for high-precision exact screening. Scores >= 0.95 are reported as status 'match', between threshold and that as 'possible_match'.
limit = 20optional1–100Max matches to return per name (1-100, default 20), highest score first.
sourcesoptional—Optional comma-separated list of source ids to restrict screening to: ofac_sdn, ofac_consolidated, uk_ofsi. Omit to screen ALL reachable sources (recommended).
Try in playground →
post/sanctions/v1/batch2 credits

Screen up to 100 names in one call (in-memory → cheap). Each item is a string or {name,type?,country?,dob?,threshold?}; per-item options override call defaults.

ParameterAllowed / rangeDescription
namesrequired—Up to 100 names to screen in one call. Each item is a string OR an object {name, type?, country?, dob?, threshold?}. Per-item options override the call-level defaults. Screening is in-memory so a batch is cheap.
typeoptionalperson · entity · vessel · aircraftOptional entity type. When set, ONLY same-type list records are compared (a person query never matches a vessel record) — the single biggest precision lever. Omit to screen across all types.
countryoptional—Optional country/nationality descriptor. A match on the record's country / nationality / place-of-birth adds 'country' to matched_fields and boosts the score. A mismatch does NOT exclude (lists are sparsely populated) — it is simply not corroborated.
threshold = 0.85optional0.62–1Minimum match score (0-1) to surface a candidate. Default 0.85. Lower → higher recall (more false positives); raise toward 0.95 for high-precision exact screening. Scores >= 0.95 are reported as status 'match', between threshold and that as 'possible_match'.
limit = 20optional1–100Max matches to return per name (1-100, default 20), highest score first.
sourcesoptional—Optional comma-separated list of source ids to restrict screening to: ofac_sdn, ofac_consolidated, uk_ofsi. Omit to screen ALL reachable sources (recommended).
Try in playground →
post/sanctions/v1/entity1 credit

Fetch ONE full normalized list record by its uid ('<source>:<list_ref>', from a screen match) — every field on the designation.

ParameterAllowed / rangeDescription
uidrequired—The match uid from a screen result ('<source>:<list_ref>', e.g. ofac_sdn:9639) → the full normalized list record.
Try in playground →
post/sanctions/v1/sources_status1 credit

List freshness + reachability of every sanctions source (the trust signal): which lists were screened, how many records, the source's own published date, and whether the last.gov fetch succeeded.

ParameterAllowed / rangeDescription
refresh = falseoptional—Force a re-fetch of all sources before reporting (bypasses the cache; slower).
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.