Sanctions screening (organisations, vessels, aircraft)
Screen an organisation, vessel or aircraft name against official sanctions lists: the US Treasury OFAC Specially Designated Nationals (SDN) list, the OFAC Consolidated (non-SDN) list and the UN Security Council Consolidated List. Fuzzy matching over names and aliases (accents, punctuation and legal-form words such as LLC or JSC are ignored); each match has a 0-1 score, the name that matched, list, list id, name, type, programs, aliases, addresses, countries, remarks and, for vessels and aircraft, call sign, type, tonnage, flag and owner. match is true when anything scored at or above min_score. Covers organisations, vessels and aircraft only; listed individuals are not searchable. The lists are refreshed every few hours; lists_updated_at shows when. Each match also carries structured facts read from the list entry: id_documents (registration, tax, company and other identifiers with their country), linked_to (designated parties the entry is linked to), established_date, organization_type, target_type, websites, digital_currency_addresses, designation_date (UN listing date), vessel (IMO, MMSI, year of build, flag, type, tonnage, call sign, owner) and aircraft (model, operator, manufacturer serial number, tail number, construction number, manufacture date).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
namerequired | string | Organisation, vessel or aircraft name. Example: rosneft |
type | string | Comma-separated: entity, vessel, aircraft. |
source | string | Comma-separated lists: ofac_sdn, ofac_consolidated, un. |
program | string | Sanctions program code or part of it, e.g. RUSSIA-EO14024, IRAN, CUBA, SDGT. |
country | string | Country name in the entry's addresses, e.g. Russia. |
min_score | number | Lowest match score returned, 0.3-1 (default 0.75; 1 = exact name). Example: 0.75 |
limit | integer | Matches returned, 1-100. Example: 20 |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/sanctions/v1/search?name=rosneft" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/sanctions/v1/search",
params={"name": "rosneft"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/sanctions/v1/search");
url.searchParams.set("name", "rosneft");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).