SanctionsLookup

Data last synced:

OFAC Sanctions List Service API Overview (2026)

The OFAC Sanctions List Service (SLS) is the official Treasury API for retrieving SDN and Consolidated Sanctions list data. SLS is not a sanctions screening API, it is a file delivery service. It delivers raw XML and CSV files and stops there. Parsing, normalizing, indexing, fuzzy matching, and staying current with list updates are all on your engineering team to build and maintain indefinitely.

Does the U.S. Treasury have an official OFAC API?

Yes. The U.S. Department of the Treasury provides official OFAC sanctions data through the Sanctions List Service (SLS). It is free, requires no authentication, and has no published rate limits.

The Sanctions List Service API is the official OFAC data distribution service. It delivers structured sanctions list files for the SDN List and Consolidated Sanctions List.

The SLS is not a sanctions screening API. It does not provide identity matching, fuzzy logic, scoring, or transaction-level screening results. Everything it does not do, your team has to build and maintain.

Sanctions List Service API endpoints

The SLS API supports only GET requests and is free to use with no authentication or API key required. However, all requests must include a User-Agent header identifying the client. Requests missing this header will receive a 403 error.

GET /entities

What it does Query entities by ID, list, or program. Returns structured JSON.

When to use it Looking up a specific entity or filtering by program (e.g. IRAN, CUBA) without downloading the full list.

GET /api/download/{filename}

What it does Download full list files: SDN_ADVANCED.XML, SDN.CSV, CONS_ADVANCED.XML, CONS_PRIM.CSV.

When to use it Initial data ingestion or full list refresh.

GET /changes/latest

What it does Returns a delta file of the most recent list changes.

When to use it Incremental list updates.

GET /changes/history/{year}/{month}/{day}

What it does Returns all publication IDs for a given date.

When to use it Auditing list changes or backfilling missed updates.

GET /sanctions-lists

What it does Returns all list names as JSON array.

When to use it Validating which lists are available before filtering entity queries.

GET /sanctions-programs

What it does Returns all program names as JSON array.

When to use it Building program-based filtering logic.

GET /api/Customize/GetCustomizeList

What it does Returns a custom XML dataset filtered by list type and publication date.

When to use it Targeted ingestion when you only need SDN or consolidated data, not both.

GET /alive

What it does Returns HTTP 200 if the API is up.

When to use it General uptime monitoring.

All file download endpoints follow the pattern https://sanctionslistservice.ofac.treas.gov/api/download/{filename}. OFAC can change file names without notice, so use the /sanctions-lists endpoint to retrieve available list names programmatically rather than hardcoding them.

The SLS has no push notifications, no webhooks, and no SLA. Polling, missed updates, and data sync are your responsibility. The service is also notably slow, which compounds the overhead of any ingestion pipeline built on top of it.

OFAC Sanctions List Service data formats

The SLS delivers sanctions list data in four formats. Regardless of which you choose, the data must be parsed, normalized, and indexed into your own database before it can be used for screening.

FormatDescriptionBest for
Advanced XMLModern standard based on XSD schema. Richest entity data including aliases, multiple identifiers, vessel data, and original script namesProduction systems requiring full entity detail
Legacy XML (sdn.xml)Simplified XML structure with fewer fieldsSystems not yet adapted to the advanced schema
CSVFlat file, easier to ingest but does not fully represent complex entity relationshipsQuick ingestion, prototyping, or spreadsheet analysis
Fixed-width (.FF)Legacy column-delimited formatOlder compliance systems with fixed-width parsers

Matching logic, scoring, and screening infrastructure are entirely on you to build on top of whichever format you choose.

OFAC Sanctions List Service vs real-time screening APIs

The Sanctions List Service is the official source for OFAC data, but it is fundamentally different from a screening API.

The Treasury provides raw data files, whereas a screening API provides the logic to search that data.

FeatureTreasury SLS APIModern screening API
Primary goalBulk file downloadReal-time identity search
Search logicNone (manual build)Built-in fuzzy matching
ResponseRaw XML/CSV filesJSON match results & scores
MaintenanceHigh (server + database)Low (plug-and-play)
Data scopeU.S. lists onlyGlobal lists (UN, EU, UK, etc.)

The infrastructure debt of the SLS

The SLS delivers files. Everything else is yours to build and maintain indefinitely.

  • Fetching, parsing, and indexing: raw XML and CSV files need to be ingested, cleaned, normalized, and loaded into a database before they are usable for anything. This is not a one-time build. Every format change OFAC makes without notice breaks your parser.
  • Fuzzy matching and scoring: the SLS has none. You build it, you maintain it, you fix it when it produces false negatives.
  • Ongoing maintenance: expect 10 to 20 developer hours per month to keep the pipeline reliable. At $75 to $150/hour that is $750 to $3,000 in monthly engineering cost, indefinitely.
  • Silent failure risk: when your parser breaks or a list update gets missed, nothing alerts you. A sanctioned party slips through undetected until an audit or OFAC investigation surfaces it.
  • No SLA, no support: OFAC technical support covers their systems, not yours. When something breaks, you are on your own.

OFAC screening is a critical compliance function. A DIY build that fails silently is not a technical problem, it is a regulatory violation.

Most teams find a dedicated screening API significantly cheaper than the engineering hours, maintenance, and compliance risk of building the same thing from scratch.

When to use a real-time screening API

If building and maintaining a screening pipeline on top of raw data files is not your core business, a dedicated screening API handles everything the SLS does not.

Fuzzy matching, scoring, alias detection, continuous list updates, and audit-ready logs come built in. No parser to maintain, no ingestion pipeline to babysit, no silent failures.

For a full breakdown of how automated OFAC screening works, see our OFAC screening guide.

To screen against the SDN list and Consolidated Sanctions List in one API call, get started with SanctionsLookup: 100 free calls, no credit card required.