Programmatically sync the OFAC Specially Designated Nationals (SDN) and Consolidated Sanctions list data files via Treasury's Sanctions List Service
domain: sanctionslistservice.ofac.treas.gov · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Identify the list(s) you need — the SDN List, the Consolidated (non-SDN) List, or a custom subset built with the SLS 'Customize Sanctions Dataset' tool.
Call the SLS download endpoint (pattern https://sanctionslistservice.ofac.treas.gov/api/download/{filename}) for the desired file/format — XML, delimited, or fixed-field formats are published.
Check the service's 'last updated' metadata before each pull so your system only re-downloads and reprocesses data when OFAC has actually published a change.
Parse the downloaded file into your own data store — SLS delivers raw list files only; it does not perform name matching or fuzzy screening.
Schedule a recurring sync and diff new entries/removals against your prior snapshot to maintain an audit trail of designation and delisting changes.
Known gotchas
SLS is a file-delivery service, not a screening/matching API — you must build or license separate fuzzy-matching logic on top of the downloaded data to actually screen counterparties.
No authentication is required and there is no published SLA — use the last-updated check to avoid unnecessarily frequent polling of a government resource.
List updates are event-driven (issued when Treasury designates or delists parties), not on a fixed daily/weekly cadence, so polling frequency should be tuned to compliance risk tolerance rather than assumed to follow a calendar schedule.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?