OFAC SDN Sanctions List Scraper — Name Screening + Bulk Export avatar

OFAC SDN Sanctions List Scraper — Name Screening + Bulk Export

Pricing

Pay per event

Go to Apify Store
OFAC SDN Sanctions List Scraper — Name Screening + Bulk Export

OFAC SDN Sanctions List Scraper — Name Screening + Bulk Export

Screen names against the US Treasury OFAC SDN sanctions list with fuzzy alias matching, or bulk-export the parsed list filtered by program and entity type. Structured JSON, no OFAC CSV wrangling required.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share


🎯 What this 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:

  • Screen (default) — submit a list of names and get back a fuzzy- 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.
  • Bulk — export the parsed SDN list itself, filterable by OFAC program code (e.g. CUBA, SDGT) and entity type (individual vs. entity), with aliases and addresses joined in on request.

The SDN list itself is free and public. What you're paying for is the parsing, normalization, alias cross-referencing, and fuzzy-matching layer on top of it — delivered as a hosted Actor you can call from any workflow, without writing OFAC ingestion code.

🔥 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 real null so you never see it in your data.
  • 🔗 Alias + address cross-referencingALT.CSV and ADD.CSV rows are joined back to their parent SDN entity by ent_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. matchThreshold is 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: false row and a SUCCEEDED run, 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-After honoured, 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.

⚙️ How to use it

  1. Click Try for free (or Start) on the Actor page.
  2. Leave Mode on screen and edit Names to screen to your own list — or switch to bulk to export parsed SDN records instead.
  3. Run it. Each screened name (or exported record) lands in your dataset as one row.
  4. Export the dataset as JSON, CSV, Excel, or pull it via the Apify API.

📥 Input

FieldTypeDefaultDescription
modeenum screen/bulkscreenScreen names, or bulk-export the parsed list.
namesToScreenarray of strings2 sample namesRequired (non-empty) when mode is screen.
matchThresholdnumber (0.5–1.0)0.82Minimum fuzzy-match ratio to count as a hit.
includeAliasesbooleantrueMatch against (screen) / attach (bulk) OFAC alias names.
includeAddressesbooleanfalseBulk mode only — attach known addresses.
maxMatchesPerNameinteger (1–100)10Screen mode only — cap matches returned per name.
programFilterarray of stringsnoneBulk mode only — restrict to these OFAC program codes.
entityTypeFilterenum all/individual/entityallBulk mode only — restrict by SDN entity type.
limitinteger (1–20 000)1000Bulk mode only — max rows exported.
proxyConfigurationobjectApify Proxy onFleet-standard field; this target has no known anti-bot.
{
"mode": "screen",
"namesToScreen": ["Ayman Al-Zawahiri", "Jane Smith"],
"matchThreshold": 0.82,
"includeAliases": true,
"maxMatchesPerName": 10,
"proxyConfiguration": { "useApifyProxy": true }
}

📤 Output

Screen mode, matched case:

{
"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
}
]
}

Screen mode, zero-match case (a successful screening outcome):

{
"mode": "screen",
"fetched_at": "2026-09-09T07:24:46Z",
"queried_name": "Jane Smith",
"matched": false,
"match_count": 0,
"matches": []
}

Bulk mode:

{
"mode": "bulk",
"fetched_at": "2026-09-09T07:24:46Z",
"ent_num": 2676,
"sdn_name": "AL ZAWAHIRI, Dr. Ayman",
"sdn_type": "individual",
"program": "SDGT",
"title": "Operational and Military Leader of JIHAD GROUP",
"remarks": "DOB 19 Jun 1951; POB Giza, Egypt; ...",
"aliases": [],
"addresses": []
}

💰 Pricing

Pay-Per-Event — you're charged only for the warm-up and for rows that actually land in your dataset.

EventPriceTrigger
Actor start$0.20Once per run, after input validation succeeds
Record exported$0.004Per parsed SDN record pushed (bulk mode) — ~$4 / 1 000
Name screened$0.01Per screened name pushed (screen mode), matched or not — ~$10 / 1 000

🚧 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. matchThreshold and per-match score are 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? Yes — Treasury publishes it publicly. You're paying for the parsing, alias cross-referencing, and fuzzy-matching layer, not the underlying data.

What counts as a "match"? Any SDN primary name (and alias, if includeAliases is on) whose fuzzy-match score against your queried name is at or above matchThreshold.

Does a "no match" result cost anything? Yes, the same as a match — the deliverable is the verdict, not just a hit. A clean screening result is still a result you need to log.

Can I screen a large batch of names in one run? Yes — add as many entries to namesToScreen as you need; each is billed and returned as its own row.

Does this cover the EU, UN, or UK sanctions lists? Not in v1 — this Actor is US OFAC SDN only.

💬 Your feedback

Found a gap, a parsing edge case, or want another sanctions list covered? Message DevilScrapes on Apify — we read every note and ship fixes fast.