AML & Sanctions Screening for AI Agents (OFAC, EU, UN, UK)
Pricing
from $3.00 / 1,000 results
AML & Sanctions Screening for AI Agents (OFAC, EU, UN, UK)
Screen any name or company against global sanctions & watchlists (OFAC SDN, EU, UN, UK OFSI) for KYC/AML. Fuzzy name matching with risk scores, programs, aliases, dates of birth & source lists. Real-time compliance grounding for AI agents & LLMs.
Sanctions & Watchlist Screening — for AI Agents, KYC & AML
Screen any person or company name against the world's major sanctions and watchlists in one call. Give this Actor a list of names and it returns, for each one, whether it matches a sanctioned party — with a risk score, the sanctions programs, aliases, dates of birth, nationalities and the source list behind every match.
Built for AI agents, KYC/AML onboarding, compliance tooling, and due-diligence — clean, structured, machine-readable output with zero setup and no API keys.
Why this Actor?
Sanctions data is scattered across half a dozen government websites, each in its own awkward format — one ships CSV, another XML, another splits names and aliases across separate files. Keeping a live, unified, searchable copy is real work. And an LLM can't do this from memory: sanctions lists change weekly, and a wrong answer here is a compliance failure.
This Actor does that work for you. It pulls the latest official lists at run time, unifies them into one clean schema, and fuzzy-matches your names against every alias and spelling — including transliterations (e.g. Wagner ↔ Vagner, Cyrillic ↔ Latin).
- KYC / AML onboarding — screen new customers, suppliers or counterparties before you do business.
- AI agent compliance tool — let an agent check a name in real time via MCP and get back a structured verdict.
- Ongoing monitoring — re-screen your book of clients on a schedule as lists change.
- Due diligence & investigations — check the people and entities behind a deal against global sanctions.
Because the sources are public and this runs keyless, screening is fast and cheap, and always reflects the current lists.
What it screens against
The Actor aggregates the major official, publicly-published sanctions lists:
| Source | Coverage |
|---|---|
| US OFAC | Specially Designated Nationals (SDN) + Consolidated list |
| European Union | EU consolidated financial sanctions list |
| United Nations | UN Security Council Consolidated List |
| UK OFSI | UK consolidated list of financial sanctions targets |
Together that's 30,000+ sanctioned people, companies and vessels, refreshed from source on every run so you always screen against the latest designations. You can screen against all of them or pick a subset.
What you get
For every name you submit, the Actor returns one record:
| Field | Description |
|---|---|
query | The name you screened |
isMatch | Whether any match was found (true / false) |
riskLevel | none, low, medium or high — based on best match confidence |
matchCount | How many matches were found |
topScore | Confidence of the best match (0–100) |
topMatchName | Name of the best match |
topMatchSource | Which list it came from (OFAC / EU / UN / UK) |
topMatchType | Person / Entity / Vessel |
topMatchPrograms | Sanctions programs (e.g. RUSSIA-EO14024, DPRK3) |
topMatchListedOn | Designation date |
matchesSummary | Human-readable summary of all matches |
matches | Full array of matches, each with score, source, programs, aliases, dates of birth, nationalities, addresses and a source link |
screenedAt | Screening timestamp |
The matches array is the detailed payload an agent or compliance system consumes; the flat topMatch* fields make the result easy to scan in a spreadsheet.
Example output
{"query": "Vladimir Putin","isMatch": "true","riskLevel": "high","matchCount": "3","topScore": "100","topMatchName": "PUTIN, Vladimir Vladimirovich","topMatchSource": "OFAC","topMatchType": "Person","topMatchPrograms": "RUSSIA-EO14024","topMatchListedOn": "","matchesSummary": "PUTIN, Vladimir Vladimirovich (100%, OFAC: RUSSIA-EO14024) | Владимир Владимирович ПУТИН (100%, EU: UKR) | Vladimir Vladimirovich PUTIN (100%, UK: Russia)","matches": [{"name": "PUTIN, Vladimir Vladimirovich","score": 100,"source": "OFAC","type": "Person","programs": ["RUSSIA-EO14024"],"nationalities": [],"birthDates": [],"aliases": [],"sourceId": "...","sourceUrl": "https://sanctionssearch.ofac.treas.gov/"}],"screenedAt": "2026-07-06T15:00:00.000Z"}
A clean name returns isMatch: "false", riskLevel: "none" — a positive "all clear".
Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | — | Required. Names of people or companies to screen. |
minScore | integer | 85 | Minimum match confidence (0–100). Lower = more matches but more noise. |
entityType | string | all | Restrict to person, entity, or vessel. |
sources | array | all | Which lists to use: OFAC, EU, UN, UK. |
country | string | — | Only return matches linked to this country / nationality. |
maxMatchesPerQuery | integer | 10 | Max matches to return per name. |
Example input
{"queries": ["Vladimir Putin", "Wagner Group", "Acme Trading LLC", "Jane Smith"],"minScore": 85,"sources": ["OFAC", "EU", "UN", "UK"]}
Screening a whole customer list
{"queries": ["Customer One Ltd", "John A. Doe", "Global Imports SA", "..."],"minScore": 88,"entityType": "all","maxMatchesPerQuery": 5}
How matching works
Sanctions screening is deliberately recall-first: it is far worse to miss a real sanctioned party than to surface a name that later turns out to be a different person. So the Actor:
- Normalizes every name — case, punctuation and accents are stripped, so Kadyrov, Kadýrov and КАДЫРОВ all line up.
- Matches against every alias, not just the primary name, including transliterations and alternate spellings.
- Scores each candidate 0–100 using token and edit-distance similarity, and keeps those at or above your
minScore.
Because of this, common names (e.g. "Maria Garcia", "James Wilson") can produce high-scoring matches even when your person is not the sanctioned one — simply because someone by that name is on a list. That's expected. Use the returned dates of birth, nationalities, programs and source links to confirm or dismiss a match.
Tuning tips:
- Raise
minScore(e.g. 90–95) to cut noise when you screen common names. - Add a
countryfilter when you know the nationality. - Pass
entityTypeto separate people from companies. - Include middle names / full legal names for sharper matches.
How to use it
- Click Try for free.
- Paste the names into
queries. - Click Start.
- Read the results as JSON, CSV, or Excel, or via the Apify API.
A run screening 100 names against all four lists finishes in seconds.
Calling from the API
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["Vladimir Putin", "Acme Trading LLC"],"minScore": 85}'
Then fetch the dataset:
$curl "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs/last/dataset/items?token=YOUR_APIFY_TOKEN"
The Actor also integrates with webhooks, Zapier, Make, and n8n, so you can wire screening straight into your onboarding flow.
Use cases in detail
1. Customer & supplier onboarding (KYC/KYB)
Screen every new client, vendor or beneficial owner at onboarding. Feed the whole batch in one run and route any riskLevel of medium/high to a human reviewer.
2. AI compliance agents
Expose this as a tool to an AI agent so it can screen a name mid-conversation — "is this counterparty sanctioned?" — and get back structured, sourced results it can reason over.
3. Ongoing / periodic re-screening
Sanctions lists change constantly. Re-run your customer base on a schedule and catch newly-designated parties.
4. Transaction & trade compliance
Check parties to a payment, shipment or contract against sanctions before it goes through.
5. Investigations & journalism
Quickly check whether the people and companies behind a deal, property or network appear on any sanctions list.
Output formats
Every run produces a dataset you can export as JSON, JSON Lines, CSV, Excel, HTML, or RSS, or pull via the Apify API into your own systems.
Frequently asked questions
Which lists are covered? US OFAC (SDN + Consolidated), the European Union consolidated list, the UN Security Council Consolidated List, and the UK OFSI list — 30,000+ targets in total.
How fresh is the data? It's pulled from the official sources on every run, so you always screen against the current lists.
Does it match aliases and other spellings? Yes — it matches against all known aliases and handles accents and transliterations (Latin ↔ Cyrillic, etc.).
Why did a clearly-innocent name get a match? Because someone with a similar name is on a list. Screening is recall-first by design. Confirm identity using the dates of birth, nationalities and programs in the result.
Can I screen thousands of names at once?
Yes. Batch them all into queries — the lists are loaded once per run and every name is checked against them.
Can an AI agent call this automatically? Yes — it's callable as a tool through Apify's agent/MCP integrations, returning structured JSON.
Important — responsible use & disclaimer
This Actor aggregates publicly available sanctions and watchlist data published by government bodies, and provides potential name matches for informational purposes only.
- It is not legal, compliance, or financial advice, and it is not a substitute for a qualified compliance program.
- Matches are name-based and may include false positives (different people who share a name) or, in rare cases, miss records due to source gaps or spelling variance.
- Always verify a potential match against dates of birth, identifiers, and the official source list before making any decision about a person or business.
- You are responsible for using the results in line with applicable laws and regulations in your jurisdiction.
Data originates from official government sources (US OFAC, EU, UN, UK OFSI), which remain the authoritative references.
Support
Want another list added (e.g. a national regime), or a field exposed differently? Open an issue from the Actor's page. Screen smart, stay compliant.