Sanctions & Watchlist Screening API
Screen any person or entity name against 18 government sanctions and export-control lists (US OFAC, BIS & State, the UN, UK, EU, Canada, France and Australia) in a single call. Get ranked, scored matches with the exact name or alias matched, the list, program, entity id and snapshot date. Optional date-of-birth and country inputs rank out same-name homonyms. Built for KYC, KYB, AML onboarding and export compliance.
Everything you need to screen a name
One call checks every list at once and tells you exactly why each result matched, so a compliance analyst can act on it instead of just seeing a number.
Handles messy real-world names
Accent-folding, legal-suffix stripping and Jaro-Winkler + token-set scoring catch transliterations, reordered names ("LAST, First") and typos. Each hit carries a 0-100 score.
Multi-jurisdiction coverage
US (OFAC SDN/SSI/CMIC, BIS Entity List / Denied Persons, State ITAR), UN, UK OFSI, EU, Canada, France and Australia, covering financial sanctions and export controls.
Homonym disambiguation
Add a date of birth or country and the API returns match flags and adjusts the score. A genuine conflict pushes same-name false positives below your threshold.
Weak-alias control
Low-quality aliases are flagged separately and can be excluded, so you tune the precision/recall balance your compliance policy needs.
Audit-ready results
Every match cites the list, sanctions program, entity id, the exact alias matched and the list's snapshot date, so it is defensible in a review, not a black box.
Always current
A scheduled job re-pulls every source list each day. Stale lists are a compliance risk; the snapshot date in every response tells you exactly how fresh the data is.
Simple GET requests, structured JSON
No SDK required. A name in, ranked and sourced matches out. Agent- and MCP-friendly.
# screen a name across every list GET /screen?name=Yevgeny%20Prigozhin { "match_count": 6, "matched": true, "matches": [{ "score": 100.0, "matched_on": "PRIGOZHIN, Yevgeniy Viktorovich", "list": "UK OFSI Consolidated", "list_snapshot": "2026-06-03" }] }
# disambiguate a common name by date of birth GET /screen?name=Vladimir%20Putin&dob=1952 { "matches": [{ "score": 100.0, "name": "PUTIN, Vladimir Vladimirovich", "list": "OFAC SDN", "dob_match": true, "dob": "07 Oct 1952" }] }
# an export-control hit on the BIS Entity List GET /screen?name=Huawei&min_score=90 { "matches": [{ "score": 100.0, "name": "Huawei International Co., Limited", "type": "entity", "list": "BIS Entity List", "list_source": "US Commerce (BIS)", "programs": ["Entity List"] }], "disclaimer": "Informational; confirm potential matches against the official source." }
Five simple endpoints
Every endpoint is a GET with query params, returning JSON. Open the interactive reference →
| Endpoint | What it does |
|---|---|
| GET /screen | Fuzzy-screen a name across all lists → ranked, scored matches. Params: min_score, limit, type, program, list, dob, country, include_weak |
| GET /search | Exact / token lookup over names & aliases, with filters |
| GET /entity | One entity by id, with the full record (aliases, programs, remarks) |
| GET /lists | The 18 lists, sources, licences & per-list snapshot dates |
| GET / | Service metadata & endpoint index |
Built on official government lists
No relicensed black boxes. Every list comes straight from the issuing authority under an open or public licence, and every match cites the list, program and snapshot date behind it.
Start free, scale when you're ready
Free tier to evaluate every endpoint. Paid plans with flat, transparent pricing. No seats, no sales calls. Screen from a browser, curl or an LLM agent.