# OFAC SDN List Scraper (`crawlerbros/ofac-sdn-scraper`) Actor

Scrape the US Treasury OFAC Specially Designated Nationals (SDN) list - the official US government sanctions database. Search or filter sanctioned individuals, entities, vessels, and aircraft by name, program, type, or country. Fully public XML source, no API key required.

- **URL**: https://apify.com/crawlerbros/ofac-sdn-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## OFAC SDN List Scraper

Scrape the US Treasury OFAC (Office of Foreign Assets Control) Specially Designated Nationals (SDN) list — the official US government sanctions database. Search and filter sanctioned individuals, entities, vessels, and aircraft by name, program, type, or country. Fully public data, no API key or credentials required.

### What you can do

- **Search by name** — find any sanctioned person, organization, or vessel by name or alias
- **Filter by sanctions program** — get all entries under SDGT, IRAN, RUSSIA, CUBA, DPRK, UKRAINE, and 20+ other programs
- **Browse by type** — filter to only Individuals, Entities, Vessels, or Aircraft
- **Filter by country** — narrow results to entries associated with a specific country
- **Download the full list** — retrieve all 19,000+ SDN entries in one run

### Output fields

Each record includes the fields that are present in the source data. Fields are omitted if not applicable (e.g. vessel fields only appear for vessels, date of birth only appears for individuals).

| Field | Description |
|---|---|
| `uid` | OFAC unique identifier |
| `name` | Full concatenated name |
| `firstName` | First name (individuals only) |
| `lastName` | Last name or entity name |
| `title` | Title or role (if present) |
| `type` | `Individual`, `Entity`, `Vessel`, or `Aircraft` |
| `programs` | List of sanctions programs (e.g., `["SDGT", "IRAN"]`) |
| `aliases` | Known aliases and alternate names |
| `addresses` | Known addresses |
| `nationality` | Primary nationality (individuals) |
| `dateOfBirth` | Date of birth (individuals) |
| `placeOfBirth` | Place of birth (individuals) |
| `idNumbers` | Identity documents (passport, national ID, tax ID) — list of `{idType, idNumber, country}` |
| `vesselType` | Vessel type (vessels only, e.g., `Tug`, `Cargo`) |
| `vesselFlag` | Flag state (vessels only) |
| `vesselOwner` | Registered owner (vessels only) |
| `vesselTonnage` | Gross registered tonnage (vessels only) |
| `vesselCallSign` | Radio call sign (vessels only) |
| `sourceUrl` | OFAC SDN list source page |
| `scrapedAt` | ISO timestamp of when the record was collected |
| `recordType` | Always `"sdn_entry"` |

### Input parameters

| Parameter | Type | Description |
|---|---|---|
| `mode` | select | `search` (filter by name/type/country), `byProgram` (all entries for a program), `all` (entire list) |
| `searchQuery` | text | Name or alias substring to match (mode=search). Example: `Putin`, `Al-Qaeda`, `Sberbank` |
| `program` | select | Sanctions program code (mode=byProgram). Examples: `SDGT`, `IRAN`, `RUSSIA`, `CUBA`, `DPRK` |
| `filterType` | select | Restrict to `Individual`, `Entity`, `Vessel`, or `Aircraft` |
| `filterCountry` | text | Only entries associated with this country (partial, case-insensitive) |
| `maxItems` | integer | Maximum number of records to return (default: 100, max: 25,000) |

### Example use cases

**Find all Russian sanctions entries:**
- mode: `byProgram`, program: `RUSSIA`, maxItems: `5000`

**Search for a specific sanctioned person:**
- mode: `search`, searchQuery: `Al-Baghdadi`

**Get all sanctioned Iranian vessels:**
- mode: `byProgram`, program: `IRAN`, filterType: `Vessel`, maxItems: `1000`

**Download the full SDN list:**
- mode: `all`, maxItems: `25000`

**Find sanctioned Cuban entities:**
- mode: `byProgram`, program: `CUBA`, filterType: `Entity`, maxItems: `2000`

### Data source

US Treasury OFAC Specially Designated Nationals XML list — publicly available at [https://www.treasury.gov/ofac/downloads/sdn.xml](https://www.treasury.gov/ofac/downloads/sdn.xml). Updated regularly by the US Treasury Department. The SDN list contains over 19,000 entries across dozens of sanctions programs.

The source URL for citations is: [https://ofac.treasury.gov/sdntxt.aspx](https://ofac.treasury.gov/sdntxt.aspx)

### FAQs

**Does this require an API key or login?**
No. The OFAC SDN list is a fully public government document — no registration, no API key, no paid plan required.

**How many entries are in the SDN list?**
As of mid-2026, the list contains over 19,000 entries including individuals, entities, vessels, and aircraft.

**What is the OFAC SDN list?**
The Specially Designated Nationals (SDN) list is maintained by the US Treasury's Office of Foreign Assets Control. It identifies individuals and organizations subject to US economic and trade sanctions. US persons and companies are generally prohibited from dealing with SDN-listed parties.

**What sanctions programs are covered?**
The list includes dozens of programs including: SDGT (Global Terrorism), IRAN, RUSSIA, UKRAINE-EO13685, CUBA, DPRK (North Korea), SYRIA, VENEZUELA, GLOBAL-MAGNITSKY, BELARUS, MYANMAR, and many others.

**How often is the data updated?**
The actor downloads fresh data from the OFAC servers on every run. OFAC typically updates the SDN list multiple times per week.

**Can I search by passport number or national ID?**
Yes — use `mode=search` with `searchQuery` set to the document number. The search matches against all name fields and aliases. Note: identity document data is in the `idNumbers` output field.

**What are the vessel fields?**
Vessel entries include `vesselType`, `vesselFlag`, `vesselOwner`, `vesselTonnage`, and `vesselCallSign`. These fields are only present for `Vessel` type entries.

# Actor input Schema

## `mode` (type: `string`):

What to fetch from the OFAC SDN list.
## `searchQuery` (type: `string`):

Case-insensitive substring match against full name and aliases (mode=search). Example: 'Putin', 'Al-Qaeda', 'Sberbank'.
## `program` (type: `string`):

Sanctions program code to filter by. Examples: SDGT, IRAN, UKRAINE-EO13685, CUBA, DPRK, SYRIA. Case-insensitive.
## `filterType` (type: `string`):

Only return entries of this type.
## `filterCountry` (type: `string`):

Only return entries with a nationality or address in this country (case-insensitive partial match). Example: 'Russia', 'Iran', 'Syria'.
## `maxItems` (type: `integer`):

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "Al-Qaeda",
  "program": "",
  "filterType": "",
  "maxItems": 100
}
````

# Actor output Schema

## `sdnEntries` (type: `string`):

Dataset containing all scraped OFAC SDN entries.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "Al-Qaeda",
    "program": "",
    "filterType": "",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/ofac-sdn-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "Al-Qaeda",
    "program": "",
    "filterType": "",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/ofac-sdn-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "Al-Qaeda",
  "program": "",
  "filterType": "",
  "maxItems": 100
}' |
apify call crawlerbros/ofac-sdn-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/ofac-sdn-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OFAC SDN List Scraper",
        "description": "Scrape the US Treasury OFAC Specially Designated Nationals (SDN) list - the official US government sanctions database. Search or filter sanctioned individuals, entities, vessels, and aircraft by name, program, type, or country. Fully public XML source, no API key required.",
        "version": "1.0",
        "x-build-id": "vm3wr0E4jEIy3elk7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~ofac-sdn-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-ofac-sdn-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~ofac-sdn-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-ofac-sdn-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~ofac-sdn-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-ofac-sdn-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byProgram",
                            "all"
                        ],
                        "type": "string",
                        "description": "What to fetch from the OFAC SDN list.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Name search query",
                        "type": "string",
                        "description": "Case-insensitive substring match against full name and aliases (mode=search). Example: 'Putin', 'Al-Qaeda', 'Sberbank'."
                    },
                    "program": {
                        "title": "Sanctions program (mode=byProgram)",
                        "enum": [
                            "",
                            "SDGT",
                            "IRAN",
                            "UKRAINE-EO13685",
                            "CUBA",
                            "DPRK",
                            "SYRIA",
                            "VENEZUELA",
                            "GLOBAL-MAGNITSKY",
                            "GLOMAG",
                            "BELARUS",
                            "MYANMAR",
                            "ETHIOPIA",
                            "SOMALIA",
                            "MALI",
                            "ZIMBABWE",
                            "SUDAN",
                            "IRAQ",
                            "LIBYA",
                            "NICARAGUA",
                            "BURUNDI",
                            "CENTRAL-AFRICA",
                            "CAR",
                            "TCO",
                            "NPWMD"
                        ],
                        "type": "string",
                        "description": "Sanctions program code to filter by. Examples: SDGT, IRAN, UKRAINE-EO13685, CUBA, DPRK, SYRIA. Case-insensitive.",
                        "default": ""
                    },
                    "filterType": {
                        "title": "Filter by SDN type",
                        "enum": [
                            "",
                            "Individual",
                            "Entity",
                            "Vessel",
                            "Aircraft"
                        ],
                        "type": "string",
                        "description": "Only return entries of this type.",
                        "default": ""
                    },
                    "filterCountry": {
                        "title": "Filter by country",
                        "type": "string",
                        "description": "Only return entries with a nationality or address in this country (case-insensitive partial match). Example: 'Russia', 'Iran', 'Syria'."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 25000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
