Nine lists. One index. Checked every day.
Nine governments and bodies publish sanctions in five formats, on their own schedules, with no two agreeing on what a name is. factget folds them into a single index you can screen against in one request — and keeps it current without anyone watching it.
| Jurisdiction | List | Subjects |
|---|---|---|
| US | OFAC Specially Designated Nationals | 20,226 |
| GB | UK Sanctions List | 6,334 |
| EU | EU Consolidated Financial Sanctions List | 6,234 |
| CA | Canadian Consolidated Autonomous Sanctions | 5,690 |
| AU | DFAT Consolidated List | 3,846 |
| UN | UN Security Council Consolidated List | 1,011 |
| US | OFAC Consolidated (Non-SDN) | 481 |
| CH | SECO Sanctions List | in progress |
| AE | UAE Local Terrorist List | in progress |
Fig. 1Measured from the running index, 21 August 2026. Two lists are behind publisher restrictions that block automated retrieval; both are loaded manually today and shown as in progress rather than counted.
One request reaches all of them.
Each publisher models a subject differently — separate name fields, its own alias grading, dates in its own order. The index normalises all of it, so a query does not need to know which list an entry came from, or how that list happens to spell things.
- Screenable subjects
- 43,822
- Name variants indexed
- 121,745
- Identifiers indexed
- 77,811
- Subject types
- People, organisations, vessels, aircraft, wallets
The match you need is rarely spelled the way you typed it.
Across scripts
A name typed in Arabic or Cyrillic reaches a listing written in Latin, and the other way round. Arabic writes no short vowels, so the two spellings never share enough letters to match directly — the index compares a form that has had the vowels removed from both sides.
Across word order
Given name and surname reversed, a patronymic dropped, a company's legal form present on one side and absent on the other. Each is compared on a form built for that failure rather than hoping one comparison catches all of them.
Exactly, when it counts
Passport, registration, IMO and wallet numbers are matched exactly and never fuzzily. Those identifiers have no near-misses, so a hit is definitive and is returned as such.
Every hit carries the reason it matched — which stored value, which comparison, the score before adjustment and every adjustment applied after it. A reviewer clearing or escalating a hit can say why, rather than reporting a number the system declined to explain.
Or stop reading and try it.
This queries the same index the rest of this page describes. It needs a key, because the index is not open to anonymous traffic — but the key goes straight from your browser to the API, and never through anything of ours.
Results appear here. Nothing is shown until the index answers.
Fig. 2Live — every score, name, property and timestamp below comes back from the index at the moment you ask. Every record it holds is a sanctions listing, so no entry carries a risk category the others do not. Your key goes straight from your browser to the API; nothing here stores it, and no result is retained.
A screening index that quietly stopped updating is worse than none.
It answers every query with last month’s data and this morning’s confidence. So the refresh is built to fail loudly rather than drift.
Every list, every day
Each source is refreshed on its own schedule and recorded separately, so one publisher being down never hides the state of the other eight.
A stale file is refused, not ingested
One published endpoint serves a well-formed file that is three years old. The refresh reads the date each file claims for itself and rejects anything past its limit, because a valid download is not evidence of a current one.
A shrunken file cannot empty the index
A run that would remove an implausible share of a list is refused outright, before anything is written. A truncated download must never turn into a confident “no match”.
Every change is recorded
Additions, amendments and removals are stored with what changed, so you can answer what a list said on a given date rather than only what it says now.
Build a datasetfrom your sources.
Tell us the sources and the fields you need. We’ll show you what factget can build, and keep current.