Sanctions Screening API
Sanctions Screening API
/sanctions/v1/screen2 creditsScreen 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| name | required | — | 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. |
| type | optional | person · entity · vessel · aircraft | Optional 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. |
| country | optional | — | 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. |
| dob | optional | — | 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.85 | optional | 0.62–1 | Minimum 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 = 20 | optional | 1–100 | Max matches to return per name (1-100, default 20), highest score first. |
| sources | optional | — | Optional comma-separated list of source ids to restrict screening to: ofac_sdn, ofac_consolidated, uk_ofsi. Omit to screen ALL reachable sources (recommended). |
/sanctions/v1/batch2 creditsScreen 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| names | required | — | 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. |
| type | optional | person · entity · vessel · aircraft | Optional 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. |
| country | optional | — | 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.85 | optional | 0.62–1 | Minimum 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 = 20 | optional | 1–100 | Max matches to return per name (1-100, default 20), highest score first. |
| sources | optional | — | Optional comma-separated list of source ids to restrict screening to: ofac_sdn, ofac_consolidated, uk_ofsi. Omit to screen ALL reachable sources (recommended). |
/sanctions/v1/entity1 creditFetch ONE full normalized list record by its uid ('<source>:<list_ref>', from a screen match) — every field on the designation.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| uid | required | — | The match uid from a screen result ('<source>:<list_ref>', e.g. ofac_sdn:9639) → the full normalized list record. |
/sanctions/v1/sources_status1 creditList 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| refresh = false | optional | — | Force a re-fetch of all sources before reporting (bypasses the cache; slower). |
curl -X POST https://api.reefapi.com/sanctions/v1/screen \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"name":"Ismail Haniya","type":"person"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}