The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries
as_of: how current the data is. How datasets work.Search sanctioned parties
POST /us/ofac/sanctions-search/v1 Dataset
Searches both lists by any combination of name or alias, list, party type,
sanctions program and country.
as_of (how current the data is), the applied filters, total and total_is_exact, page, per_page, total_pages, count and parties[], by name.
Every party carries id (the key, e.g. sdn-36), list (sdn or non_sdn), entity_number, name (LAST, First for a person), party_type (individual, entity, vessel or aircraft), programs[] (the sanctions programs, e.g. RUSSIA-EO14024, SDGT, CUBA), title, remarks (OFAC’s own note, which carries dates and places of birth, passport, tax and registration numbers), vessel (call sign, type, tonnage, flag and owner, for a vessel), aliases[] ({ type, name, remarks }, where the type is aka, fka or nka), alias_names[], addresses[] ({ address, city_state_province, country, remarks }) and countries[].
Empty fields are null. OFAC writes a person’s name last name first, and records most identifying detail as prose in remarks rather than as fields.
The search matches the party’s primary name and every alias, word by word
and without stemming, so
query finds a party under any name OFAC records
for it. Brought up to date daily; a party OFAC delists stops matching.Screen a person or company
POST /us/ofac/sanctions-screen/v1 Dataset
Scores every party on both lists against one subject and returns the ones
that may be the same, closest first. Send what you know: the name decides
most of the score, and a date of birth, a country or an identity number
confirm or rule out a hit.
as_of (how current the data is), the query as understood, the threshold, matched (whether any party reached it), count and hits[], closest first.
Every hit carries score (0 to 100), matched_name (the primary name or alias that matched best, as OFAC writes it), matched_on (name or alias), breakdown and party, the full record as the search returns it.
breakdown says what decided the score: name (score, weight), birth_date and country (result, score, weight, value), and id_number (result, value). A result is match, partial (a date of birth in the same year, another day), mismatch or not_compared, and value is what OFAC records.
The score weighs the name at 60, the date of birth at 25 and the country at
15. A part the request leaves out, or OFAC does not record for the party, is
not compared, and the others share its weight: with a name alone, the name
is the whole score. A date of birth in another year subtracts, and so does a
country the party has no tie to. An identity number that matches one OFAC
records sets the score to 100.
Names match in any order, with or without accents, through typos and with
words joined or split. Legal forms such as
LLC or S.A. do not make two
companies alike, and names whose numbers differ, such as two vessels, do
not match. A one-word name is compared as a whole, so screen with the full
name. Parties below threshold are left out, so an empty hits is the
answer “no party on the lists comes close”, not an error.One party
POST /us/ofac/sanctioned-party/v1 Dataset
Resolves one sanctioned party by its id and returns the full record.
found, id, as_of and party (null when not found).
Every party carries id (the key, e.g. sdn-36), list (sdn or non_sdn), entity_number, name (LAST, First for a person), party_type (individual, entity, vessel or aircraft), programs[] (the sanctions programs, e.g. RUSSIA-EO14024, SDGT, CUBA), title, remarks (OFAC’s own note, which carries dates and places of birth, passport, tax and registration numbers), vessel (call sign, type, tonnage, flag and owner, for a vessel), aliases[] ({ type, name, remarks }, where the type is aka, fka or nka), alias_names[], addresses[] ({ address, city_state_province, country, remarks }) and countries[].
Empty fields are null. OFAC writes a person’s name last name first, and records most identifying detail as prose in remarks rather than as fields.
An id no list carries returns
found: false with HTTP 200, not an error.
That is also the answer for a party OFAC has delisted.Full reference
Schemas, all response fields, and an interactive playground.