UK Sanctions Screening
Screen any name against the official UK, UN, EU and US (OFAC) sanctions lists. One API call.
- Base address
https://api.stratumapis.com/v1/sanctions- Your key
- The
X-Stratum-Keyheader, with the key from your API page. Paid per call from your API balance, with no plan (add money on your API page). - Prices
- A name screened, alone or in a bulk request5p (2p from 1,000 a month)
- PEP and adverse media on a single screen (pepAndAdverseMedia=true)25p (15p from 1,000 a month) more
- The lists and their dates, and the daily list changesFree
- The watchlist (/monitored)For keys that hold an older per-API plan; use the transactions API’s daily watch instead
X-Stratum-Credit-Balance-Pence; a refusal or a source failure is never charged. Limits and prices.- OpenAPI
- Download the OpenAPI file (JSON)
Endpoints
Screen one name against all four sanctions lists
namerequiredin query · Person or organisation name to screentypein query · Match person listings only, organisation listings only (entity;organisationandcompanyalso accepted), or bothdateOfBirthin query · YYYY-MM-DD, or YYYY-MM / YYYY if only the month or year is known. Compared with every date of birth the lists publish for a person; seedateOfBirthMatch.nationalityin query · Two-letter ISO 3166 country code. Compared with the listed nationalities; seenationalityMatch.referencein query · Your own reference (for example an applicant id). Echoed back in the result, never stored.minScorein query · Candidates scoring below this are left outpepAndAdverseMediain query · Also screen for politically exposed persons (PEP) and adverse media. Paid per name from your Stratum credit (25p, 15p once your account has run 1,000 this month), taken before the check and given back if it doesn't run or reuses an answer you already paid for today; the reply'screditsays what was charged. Not in a free trial. One name at a time (not on /bulk). Without enough credit: HTTP 402.
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/screen?name=Roman%20Abramovich&type=person&dateOfBirth=1966-10-24&nationality=RU&reference=applicant-1042"{
"checkId": "chk_0b119844-7a02-49b3-ac11-4977427f137f",
"screenedAt": "2026-09-27T21:15:20.930Z",
"reference": "applicant-1042",
"query": "Roman Abramovich",
"count": 2,
"matches": [
{
"list": "ofsi",
"name": "Roman Arkadyevich ABRAMOVICH",
"aliases": [
"Roman ABRAMOVICH"
],
"type": "person",
"score": 1,
"nationality": "Israel, Portugal, Russia",
"dateOfBirth": "24/10/1966",
"sanctionRegime": "The Russia (Sanctions) (EU Exit) Regulations 2019",
"designationDate": "10/03/2022",
"listingId": "RUS0270",
"sourceUrl": "https://www.gov.uk/government/publications/the-uk-sanctions-list",
"matchedAlias": "Roman ABRAMOVICH",
"nameScore": 1,
"dateOfBirthMatch": "match",
"nationalityMatch": "match"
},
{
"list": "eu",
"name": "Roman Abramovič",
"type": "person",
"score": 1,
"nationality": "RUSSIAN FEDERATION",
"dateOfBirth": "1966-10-24",
"sanctionRegime": "UKR",
"listingId": "137652",
"sourceUrl": "https://webgate.ec.europa.eu/fsd/fsf",
"matchedAlias": "Roman Arkadyevich ABRAMOVICH",
"nameScore": 1,
"dateOfBirthMatch": "match",
"nationalityMatch": "match"
}
],
"screenedWith": {
"type": "person",
"minScore": 0.7,
"dateOfBirth": "1966-10-24",
"nationality": "RU"
},
"listsScreened": [
"UK Sanctions List (FCDO) (updated 2026-09-27)",
"UN Security Council Consolidated Sanctions List (updated 2026-09-27)",
"EU Consolidated Financial Sanctions List (updated 2026-09-27)",
"US OFAC Sanctions Lists (SDN and non-SDN) (updated 2026-09-27)"
],
"screenProvenance": "Screened against: UK Sanctions List (FCDO), UN Security Council Consolidated Sanctions List, EU Consolidated Financial Sanctions List and US OFAC Sanctions Lists (SDN and non-SDN).",
"listsSnapshotAt": "2026-09-27T21:07:17.132Z"
}{
"checkId": "chk_7f70769c-cfe8-4147-beb6-022854bd3e12",
"screenedAt": "2026-09-27T21:15:21.572Z",
"reference": "applicant-1043",
"query": "Amelia Hartwell-Pryce",
"count": 0,
"matches": [],
"screenedWith": {
"type": "any",
"minScore": 0.7
},
"listsScreened": [
"UK Sanctions List (FCDO) (updated 2026-09-27)",
"UN Security Council Consolidated Sanctions List (updated 2026-09-27)",
"EU Consolidated Financial Sanctions List (updated 2026-09-27)",
"US OFAC Sanctions Lists (SDN and non-SDN) (updated 2026-09-27)"
],
"screenProvenance": "Screened against: UK Sanctions List (FCDO), UN Security Council Consolidated Sanctions List, EU Consolidated Financial Sanctions List and US OFAC Sanctions Lists (SDN and non-SDN).",
"listsSnapshotAt": "2026-09-27T21:07:17.132Z"
}400Invalid input.codesays which:missing_name,invalid_name,invalid_type,invalid_date_of_birth,invalid_nationality,invalid_reference,invalid_json,missing_names,too_many_names,per_name_field. In/bulkthe message names the item, for examplenames[3].dateOfBirth .... A date of birth or nationality we can't read is always refused, never silently ignored.401Missing, invalid or revoked API key (missing_key,invalid_key,revoked_key)402Not enough Stratum credit for PEP and adverse media; nothing was screened or charged.403The key belongs to a different Stratum API (wrong_api), or it is an account key and the account has no plan for this API (no_plan)429This month's limit is reached (monthly_limit_reached, at twice your plan's allowance) or the free trial's allowance is used (trial_limit_reached). Nothing was screened or counted. Treat the names as not screened. Screening resumes on the 1st of next month, on upgrading, or when we raise your limit.500The screen did not complete. Treat the name as not yet screened and retry with backoff; do not treat it as clear.503The service is temporarily unavailable or timed out. Treat the name as not yet screened and retry with backoff; do not treat it as clear.
Screen up to 100 names in one request (one check per name)
Each name can be a plain string, or an object with its own type, dateOfBirth, nationality and reference, so an organisation and the people responsible for it can go in one request. Top-level type and minScore are defaults for names that don't set their own. If the request would take you past your monthly limit it is refused whole (429), with how many checks remain. A request answers within about 20 seconds: if names are left when time runs out, the response has incomplete: true and lists them in notScreened; send those again. Only screened names are charged.
curl -X POST -H "X-Stratum-Key: $STRATUM_KEY" \
-H "Content-Type: application/json" \
-d '{"names":[{"name":"Aerocaribbean Airlines","type":"organisation","reference":"org-77"},{"name":"Roman Abramovich","type":"person","dateOfBirth":"1966-10-24","nationality":"RU","reference":"trustee-77a"}]}' \
"https://api.stratumapis.com/v1/sanctions/bulk"400Invalid input.codesays which:missing_name,invalid_name,invalid_type,invalid_date_of_birth,invalid_nationality,invalid_reference,invalid_json,missing_names,too_many_names,per_name_field. In/bulkthe message names the item, for examplenames[3].dateOfBirth .... A date of birth or nationality we can't read is always refused, never silently ignored.401Missing, invalid or revoked API key (missing_key,invalid_key,revoked_key)403The key belongs to a different Stratum API (wrong_api), or it is an account key and the account has no plan for this API (no_plan)429This month's limit is reached (monthly_limit_reached, at twice your plan's allowance) or the free trial's allowance is used (trial_limit_reached). Nothing was screened or counted. Treat the names as not screened. Screening resumes on the 1st of next month, on upgrading, or when we raise your limit.500The screen did not complete. Treat the name as not yet screened and retry with backoff; do not treat it as clear.503The service is temporarily unavailable or timed out. Treat the name as not yet screened and retry with backoff; do not treat it as clear.
Which lists are loaded, their size and when each was last refreshed (free)
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/lists"Each day's additions, removals and re-issued listings per list (free)
What changed on each sanctions list, day by day, from the daily 04:00 UTC refresh: the history behind Certaby's UK sanctions list changes page. A list is compared only when both days hold a fresh copy of it; a listing re-issued under a new reference counts once, as amended; a step too large to be one day of designations (a change of source or file format) is withheld with its counts. Days with no change are left out. Free: does not count as a check.
daysin query · How many days back from the last refreshlistin query · Comma-separated list slugs (ofsi, un, eu, ofac); every list when left out
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/changes?list=ofsi"400Bad days or list value503The change history starts with the next daily refresh
Add a person or organisation to your watchlist (free)
Watchlist entries are re-screened against the refreshed lists every day at 05:00 UTC. A listing that newly matches appears in GET /monitored/changes with its details, and we email an alert. Watchlist size: Starter 250, Growth 1,000, Pro 5,000.
curl -X POST -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/monitored"{
"type": "object",
"required": [
"entityName",
"entityType"
],
"properties": {
"entityName": {
"type": "string",
"maxLength": 200
},
"entityType": {
"type": "string",
"enum": [
"individual",
"company"
]
},
"dateOfBirth": {
"type": "string",
"example": "1980-01-31",
"description": "A person's date of birth as YYYY-MM-DD (or YYYY-MM / YYYY if only the month or year is known). Optional. The daily re-screen uses it as `/screen` does: a listing with a different date of birth scores lower, so a namesake stops showing as a possible match. Ignored for a company."
},
"nationality": {
"type": "string",
"example": "GB",
"description": "A person's nationality as a two-letter ISO 3166 code. Optional; weaker evidence than a date of birth."
},
"customerEmail": {
"type": "string",
"description": "Where alerts for this entry go. Defaults to the email you subscribed with."
}
}
}400Invalid body. Returns { "error": "<code>", "message": "..." }409Watchlist full (tier_cap_reached)
List your watchlist with each entry's latest result (free)
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/monitored"Whether your watch list gets a monthly PEP and adverse media re-check
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/monitored/pep-recheck"{
"ok": true,
"monthly": true,
"pricePerPersonPence": 15,
"updatedAt": "2026-10-07T22:17:30.101Z"
}Switch the monthly PEP and adverse media re-check on or off
On, each person on your watch list is re-checked for PEP and adverse media every 30 days, 15p a person from your Stratum credit; new matches are emailed and appear in /monitored/changes. A person is skipped while your credit is short. The daily sanctions screen is free either way.
curl -X PUT -H "X-Stratum-Key: $STRATUM_KEY" \
-H "Content-Type: application/json" \
-d '{"monthly":true}' \
"https://api.stratumapis.com/v1/sanctions/monitored/pep-recheck"{
"ok": true,
"monthly": true,
"pricePerPersonPence": 15,
"updatedAt": "2026-10-07T22:17:30.101Z"
}400Invalid input.codesays which:missing_name,invalid_name,invalid_type,invalid_date_of_birth,invalid_nationality,invalid_reference,invalid_json,missing_names,too_many_names,per_name_field. In/bulkthe message names the item, for examplenames[3].dateOfBirth .... A date of birth or nationality we can't read is always refused, never silently ignored.
New matches on your watchlist in the last N days (free)
Poll after 05:00 UTC. The first screen of a new entry lists every match as new (kind first-screen).
daysin query
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/monitored/changes"{
"count": 1,
"days": 1,
"changes": [
{
"entityId": "ent_2d0524a6-5afd-4b60-91b1-c4488ec063bf",
"entityName": "Example Name",
"screenedAt": "2026-09-27T05:00:12.928Z",
"change": {
"kind": "delta",
"netNewSanctions": 1,
"newSanctionsMatches": [
{
"list": "ofac",
"listingId": "7845",
"name": "Example LISTED NAME",
"score": 0.9,
"sourceUrl": "https://sanctionssearch.ofac.treas.gov/"
}
]
}
}
]
}Remove an entry from your watchlist (idempotent)
entityIdrequiredin path
curl -X DELETE -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/sanctions/monitored/:entityId"