Skip to content
fact{GET}
Sanctions screening

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.

01Coverage
JurisdictionListSubjects
USOFAC Specially Designated Nationals20,226
GBUK Sanctions List6,334
EUEU Consolidated Financial Sanctions List6,234
CACanadian Consolidated Autonomous Sanctions5,690
AUDFAT Consolidated List3,846
UNUN Security Council Consolidated List1,011
USOFAC Consolidated (Non-SDN)481
CHSECO Sanctions Listin progress
AEUAE Local Terrorist Listin 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
02Matching

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.

03Screen a name

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.

Screen a namelive
required to run a query

Sent from your browser straight to the index. It never reaches a factget server, and nothing here stores it.

Examples

Refine querywho · which lists · how close

Who

Narrow the subject you are looking for

YYYY · YYYY-MM · YYYY-MM-DD

Two-letter code

Matched exactly, never fuzzily

Which lists

Leave every box clear to search all of them

Jurisdictions

How close

How near a name has to be to come back

Match level

The service's own default.

Request
curl -X POST https://sanctions.factget.ai/v1/screen \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $SANCTIONS_API_KEY" \
  -d '{"name":"Vladimir Petrov","limit":5}'
Resultawaiting a query

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.

04Staying current

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.

Talk to us

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.