# OFAC SDN & Consolidated Sanctions Lists Scraper (`compute-edge/ofac-sdn-sanctions-scraper`) Actor

Extract US Treasury OFAC SDN and Consolidated sanctions lists with aliases, addresses, programs, and vessel data joined into clean JSON. Filter by name, program, type, or country for AML, KYC, sanctions screening, and trade compliance workflows.

- **URL**: https://apify.com/compute-edge/ofac-sdn-sanctions-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation
- **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. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 & Consolidated Sanctions Lists Scraper

Extract the **complete US Treasury OFAC sanctions lists** — the regulator-grade lists every US-touching bank, fintech, exporter, and supply-chain operator is legally obligated to screen against. This Actor pulls both the **Specially Designated Nationals (SDN) list** (~19,000 entries) and the **Consolidated Sanctions List**, joins each entity with its known aliases (AKAs), addresses, sanctions program(s), and vessel/aircraft metadata, then outputs clean structured JSON ready for AML / KYC / trade-compliance screening pipelines.

OFAC publishes the raw data as CSV exports with cryptic column codes and three separate files that must be joined by entity number. This Actor handles all of that for you and outputs one fully-enriched record per sanctioned person, entity, vessel, or aircraft.

### Data fields

| Field | Description |
|-------|-------------|
| `list` | `SDN` or `CONS` (which list this entry came from) |
| `entityNumber` | OFAC entity reference number |
| `name` | Primary listed name |
| `sdnType` | `individual`, `entity`, `vessel`, or `aircraft` |
| `program` | Sanctions program code(s) — e.g. `CUBA`, `IRAN`, `SDGT`, `RUSSIA-EO14024`, `UKRAINE-EO13662` |
| `title` | Title or role |
| `addresses` | Array of associated addresses with city/state/postal and country |
| `aliases` | Array of known AKAs / FKAs / nicknames |
| `countries` | Distinct countries appearing in any associated address |
| `callSign`, `vesselType`, `vesselFlag`, `vesselOwner`, `tonnage`, `grossRegisteredTonnage` | Vessel-specific fields |
| `remarks` | Free-text notes — often includes DOB, POB, passport, tax ID, embargo notes |
| `aliasCount`, `addressCount` | Convenience counts for triage |

### How to scrape OFAC sanctions data

1. Choose `list`: `both` (default), `SDN`, or `CONS`.
2. *(Optional)* `nameQuery` — case-insensitive substring match against the primary name AND every alias.
3. *(Optional)* `programFilter` — e.g. `RUSSIA-EO14024` or `CUBA`.
4. *(Optional)* `typeFilter` — `individual`, `entity`, `vessel`, `aircraft`.
5. *(Optional)* `countryFilter` — any country appearing in any of the entity's addresses.
6. Set `maxResults` to `0` for unlimited.
7. Click **Start**.

### Pricing

Pay-per-result: **$0.003 per sanctioned entity record**. A full SDN pull (~19,000 entities) is roughly $57. Targeted name/program/country queries typically return tens to hundreds of records.

### Input example

```json
{
  "list": "both",
  "programFilter": "RUSSIA-EO14024",
  "typeFilter": "entity"
}
````

### Output example

```json
{
  "list": "SDN",
  "entityNumber": "36",
  "name": "AEROCARIBBEAN AIRLINES",
  "sdnType": "entity",
  "program": "CUBA",
  "title": "",
  "addresses": [{ "address": "25", "cityStatePostal": "Havana", "country": "Cuba" }],
  "aliases": [{ "type": "aka", "name": "AERO-CARIBBEAN" }],
  "countries": ["Cuba"],
  "aliasCount": 1,
  "addressCount": 1
}
```

### Use cases

- **Bank / fintech onboarding**: integrate as a daily refreshed dataset feeding name-screening.
- **Trade compliance**: check counterparties before shipping ITAR / EAR-controlled goods.
- **AML / KYC**: enrich customer due-diligence workflows with primary-source sanctions data.
- **Investigative journalism / sanctions research**: explore the network of designated entities by program (Russia EO 14024, Iran, North Korea, etc.).
- **Trade-finance LC review**: screen vessels, aircraft, and corporate counterparties.

### FAQ

**How fresh is the data?** OFAC updates the lists multiple times per week. Every run fetches live data — no caching.

**Is fuzzy matching included?** This Actor returns the raw enriched lists. Fuzzy matching is best done downstream against a known full set; this Actor's job is to deliver that full set in clean JSON.

**Does it cover SSI / Non-SDN Chinese Military Industrial Complex / 13959?** These appear on the Consolidated Sanctions List (`CONS`). Set `list: "both"`.

### Legal

Data sourced from US Department of Treasury, Office of Foreign Assets Control (OFAC) — a US Government public dataset. No authentication bypass; respects upstream rate limits. Sanctions screening is a regulated activity — this Actor delivers raw primary-source data; compliance decisions remain your responsibility.

# Actor input Schema

## `list` (type: `string`):

Which OFAC list to pull. 'SDN' = Specially Designated Nationals (primary blocked-persons list). 'CONS' = Consolidated Sanctions List (non-SDN programs). 'both' = combine both.

## `nameQuery` (type: `string`):

Filter by name (case-insensitive partial match against primary name AND known aliases).

## `programFilter` (type: `string`):

Filter by sanctions program code (e.g. 'CUBA', 'IRAN', 'SDGT', 'UKRAINE-EO13662', 'RUSSIA-EO14024'). Case-insensitive partial match.

## `typeFilter` (type: `string`):

Filter by SDN type. Common values: 'individual', 'entity', 'vessel', 'aircraft'. Leave blank for all.

## `countryFilter` (type: `string`):

Filter by country appearing in any associated address (case-insensitive partial match). Example: 'Russia', 'Iran', 'North Korea'.

## `maxResults` (type: `integer`):

Maximum records to return. 0 = unlimited (full SDN list is ~19,000 entities; Consolidated is ~440).

## Actor input object example

```json
{
  "list": "both",
  "nameQuery": "",
  "programFilter": "",
  "typeFilter": "",
  "countryFilter": "",
  "maxResults": 0
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/ofac-sdn-sanctions-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("compute-edge/ofac-sdn-sanctions-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 '{}' |
apify call compute-edge/ofac-sdn-sanctions-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OFAC SDN & Consolidated Sanctions Lists Scraper",
        "description": "Extract US Treasury OFAC SDN and Consolidated sanctions lists with aliases, addresses, programs, and vessel data joined into clean JSON. Filter by name, program, type, or country for AML, KYC, sanctions screening, and trade compliance workflows.",
        "version": "0.1",
        "x-build-id": "L4Hxdfpo4gYfjhHAY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~ofac-sdn-sanctions-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-ofac-sdn-sanctions-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/compute-edge~ofac-sdn-sanctions-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-ofac-sdn-sanctions-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/compute-edge~ofac-sdn-sanctions-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-ofac-sdn-sanctions-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",
                "properties": {
                    "list": {
                        "title": "List",
                        "enum": [
                            "both",
                            "SDN",
                            "CONS"
                        ],
                        "type": "string",
                        "description": "Which OFAC list to pull. 'SDN' = Specially Designated Nationals (primary blocked-persons list). 'CONS' = Consolidated Sanctions List (non-SDN programs). 'both' = combine both.",
                        "default": "both"
                    },
                    "nameQuery": {
                        "title": "Name Query",
                        "type": "string",
                        "description": "Filter by name (case-insensitive partial match against primary name AND known aliases).",
                        "default": ""
                    },
                    "programFilter": {
                        "title": "Sanctions Program Filter",
                        "type": "string",
                        "description": "Filter by sanctions program code (e.g. 'CUBA', 'IRAN', 'SDGT', 'UKRAINE-EO13662', 'RUSSIA-EO14024'). Case-insensitive partial match.",
                        "default": ""
                    },
                    "typeFilter": {
                        "title": "Entity Type",
                        "enum": [
                            "",
                            "individual",
                            "entity",
                            "vessel",
                            "aircraft"
                        ],
                        "type": "string",
                        "description": "Filter by SDN type. Common values: 'individual', 'entity', 'vessel', 'aircraft'. Leave blank for all.",
                        "default": ""
                    },
                    "countryFilter": {
                        "title": "Country",
                        "type": "string",
                        "description": "Filter by country appearing in any associated address (case-insensitive partial match). Example: 'Russia', 'Iran', 'North Korea'.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum records to return. 0 = unlimited (full SDN list is ~19,000 entities; Consolidated is ~440).",
                        "default": 0
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
