Lead generation
OFAC SDN Sanctions List Scraper — Name Screening + Bulk Export
Screen names against the US Treasury OFAC Specially Designated Nationals (SDN) sanctions list with fuzzy alias matching, or bulk-export the full parsed list filtered by program and entity type. No CSV wrangling, no OFAC ingestion pipeline to build.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
This Actor fetches the US Treasury's public OFAC SDN export (SDN.CSV, plus its ALT.CSV alias and ADD.CSV address companion files) and turns Treasury's raw legacy CSV format into structured, typed records. It runs in two modes:
matched verdict per name: matched or not, which SDN entities it matched, the match type (primary name vs. alias), and a score. A name that clears with zero matches is a successful result, not an error — that's a clean screening outcome, exactly what a compliance workflow needs to log. program code (e.g. CUBA, SDGT) and entity type (individual vs. entity), with aliases and addresses joined in on request.
What we handle for you
- 🧊 Correct CSV parsing — Treasury's SDN export has no header row and uses a literal
-0-string as its null sentinel; we map columns by position and convert-0-to a realnullso you never see it in your data. - 🔗 Alias + address cross-referencing —
ALT.CSVandADD.CSVrows are joined back to their parent SDN entity byent_num, not left as three disconnected files you'd have to join yourself. - 🎯 Tunable fuzzy matching — names are normalized (case, punctuation, diacritics) and scored with a string-similarity ratio, not brittle exact/substring matching.
matchThresholdis yours to tighten or loosen per screening run. - ✅ Zero matches is a success, not a failure — a screened name that clears the sanctions list finishes with a clean
matched: falserow and aSUCCEEDEDrun, so you can log every screening outcome without treating "no hit" as an error. - 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts,Retry-Afterhonoured, before we fail loud. - 💰 Pay-Per-Event pricing — you pay per name screened or record exported, not per page fetched. No results, no charge beyond the small warm-up fee.
Use cases
- KYC/AML onboarding checks — screen new customer or counterparty names before account opening.
- Vendor and partner due diligence — batch-screen a supplier or partner list ahead of a contract.
- Payroll and HR screening — check new-hire names against the SDN list as part of a compliance workflow.
- Compliance data warehousing — bulk-export the current SDN list filtered by program to keep an internal sanctions table fresh.
- Fintech transaction screening prototypes — a pay-per-use SDN check to validate a screening flow before committing to a monitored SaaS contract.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
mode | string | no | "screen" fuzzy-matches your names against the SDN list; "bulk" exports parsed SDN records filtered by program/entity type. |
namesToScreen | array | no | Required (non-empty) when Mode is "screen". One entry per name to check against the SDN list and its aliases. |
matchThreshold | number | no | Minimum fuzzy-match ratio (0.5-1.0) for a candidate to count as a hit. Higher = stricter. |
includeAliases | boolean | no | Also match/attach OFAC's known-alias (AKA) names, not just each entity's primary name. |
includeAddresses | boolean | no | Bulk mode only — attach known addresses to each exported record. |
maxMatchesPerName | integer | no | Screen mode only — cap on how many matches to return per screened name. |
programFilter | array | no | Bulk mode only — restrict export to these OFAC program codes (e.g. CUBA, SDGT). Leave empty for all programs. |
entityTypeFilter | string | no | Bulk mode only — restrict export by SDN entity type. |
limit | integer | no | Bulk mode only — max rows to export. |
{
"mode": "screen",
"namesToScreen": [
"Ayman Al-Zawahiri",
"Jane Smith"
],
"matchThreshold": 0.82,
"includeAliases": true,
"maxMatchesPerName": 10,
"proxyConfiguration": {
"useApifyProxy": true
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
modefetched_atqueried_namematchedmatch_countmatchesent_numsdn_namesdn_typeprogram
{
"mode": "screen",
"fetched_at": "2026-09-09T07:24:46Z",
"queried_name": "Ayman Al-Zawahiri",
"matched": true,
"match_count": 1,
"matches": [
{
"ent_num": 2676,
"matched_name": "AL ZAWAHIRI, Dr. Ayman",
"match_type": "primary_name",
"sdn_type": "individual",
"program": "SDGT",
"score": 0.91
}
]
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Bulk record exported | $0.0040 | Per result written to the dataset. |
| Name screened | $0.0100 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- SDN list only, v1. The Consolidated (Non-SDN) sanctions list isn't included — its export filename wasn't confirmed live at build time.
- US OFAC only. No EU, UN, UK, or other national sanctions lists.
- Screening aid, not a compliance guarantee. Fuzzy matching can produce false positives or false negatives on ambiguous names.
matchThresholdand per-matchscoreare yours to tune and audit — this Actor doesn't replace a licensed compliance program. - No historical snapshots. Every run screens against the SDN list as currently published by Treasury; there's no diffing between publication dates.
- No recurring monitoring in-Actor. For scheduled re-screening, layer Apify's own Scheduler on top of this Actor.
FAQ
Is the OFAC SDN list free?
What counts as a "match"?
includeAliases is on) whose fuzzy-match score against your queried name is at or above matchThreshold.Does a "no match" result cost anything?
Can I screen a large batch of names in one run?
namesToScreen as you need; each is billed and returned as its own row.Does this cover the EU, UN, or UK sanctions lists?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors