Compliance
Part of the catalogue. The same key, envelope and billing cover every other endpoint too.
Sanctions & PEP Screening
- No account needed to try any endpoint on this page.
- Deterministic endpoints answer from cache in single-digit milliseconds.
- Every response carries a receipt: credits charged, cache status, duration.
/v1/sanctions/screen
{
"name": "Saddam Hussein"
}
Press Run to call the live API from your browser.
Why this exists
Built for hostile input
A Turkish address arrives as "Cd." or "Cad." or "Caddesi", with the flat number glued to the building number. Generic parsers drop half of it silently. This one tells you what it could not place.
History cannot be backfilled
The exchange-rate archive grows every business day and each point keeps its source URL and content hash. A competitor can read today’s bulletin too — nobody can produce last quarter’s.
You only pay for work
Repeated inputs come from cache and cost zero credits. If a response ever fails its own schema, the call is refunded automatically.
Endpointsexpand any row to see the parameters and call it live
Compliance1
/v1/sanctions/screen
Sanctions & PEP Screening
5 credits
Screens a name against the US OFAC, UN Security Council and EU consolidated sanctions lists with transliteration-aware fuzzy matching.
Cyrillic and Arabic names are transliterated, titles and corporate suffixes are stripped, and known spelling families are unified — "Abd al-Rahman", "Abdul Rahman" and "Abdulrahman" reach the same record. Every hit explains itself: which name matched, whether it was an alias the source flags as weak, and how the birth year and country compared. Supply `birthYear` whenever you have it; it removes most false positives. `asOf` screens against the lists as they stood on a past date, which is the question auditors actually ask — note that this is bounded by when our archive begins, reported in `coverage`.
Parameters
| name* | string | Name to screen — person or organisation. |
| type | "any" | "individual" | "entity" | "vessel" | "aircraft" | Restrict to one subject type. Narrowing this removes most false positives. default "any" |
| birthYear | integer | Known birth year. The single strongest false-positive filter available. |
| country | string | Known country or nationality. |
| sources | "OFAC_SDN" | "UN" | "EU"[] | Defaults to all lists. |
| minScore | number | Score floor. 0.92+ reads as a match, 0.80+ as possible. default 0.75 |
| limit | integer | default 10 |
| asOf | string | Screen against the lists as they stood on this date. Limited by when our archive begins. |
/v1/sanctions/screen
{
"name": "Saddam Hussein"
}
Press Run to call the live API from your browser.
Pricingone key covers every endpoint
- credits
- 2,000
- Rate limit
- 2/s
- credits
- 50,000
- Rate limit
- 10/s
- credits
- 300,000
- Rate limit
- 30/s
- credits
- 2,000,000
- Rate limit
- 100/s
Credits are consumed per call and cache hits are free. Requests without a key run on a narrow per-IP demo quota so you can evaluate before signing up.
Quickstart
cURL
curl -s https://api.temsor.com/v1/sanctions/screen \
-H "content-type: application/json" \
-H "x-api-key: fk_live_…" \
-d '{"name":"Saddam Hussein"}'JavaScript
const res = await fetch("https://api.temsor.com/v1/sanctions/screen", {
method: "POST",
headers: { "content-type": "application/json", "x-api-key": KEY },
body: JSON.stringify({"name":"Saddam Hussein"})
});
const { data } = await res.json();Python
import httpx
r = httpx.post("https://api.temsor.com/v1/sanctions/screen",
headers={"x-api-key": KEY},
json={"name":"Saddam Hussein"})
data = r.json()["data"]