# OFAC Sanctions Scraper — SDN, Consolidated & AML Data (`logiover/ofac-sanctions-scraper`) Actor

Scrape the US Treasury OFAC sanctions lists (SDN + Consolidated). Extract name, type, programs, aliases, addresses, nationalities and IDs for AML/KYC, compliance screening, and sanctions research. No API key required.

- **URL**: https://apify.com/logiover/ofac-sanctions-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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.
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 Sanctions Scraper — SDN, Consolidated & AML/KYC Data

Scrape the US Treasury OFAC sanctions lists (SDN + Consolidated) and extract structured, enriched entity data for AML/KYC compliance, sanctions screening, and financial crime research. No API key or login required.

### What does OFAC Sanctions Scraper do?

OFAC Sanctions Scraper downloads the US Treasury's Office of Foreign Assets Control (OFAC) official public CSV files directly from `treasury.gov` — no API key, no login, no scraping of HTML. It parses three interconnected datasets: the primary SDN list (`sdn.csv`), the alternate-names file (`alt.csv`), and the addresses file (`add.csv`). For broader coverage it also supports the Consolidated Sanctions List (`cons_prim.csv`), which covers all OFAC-administered programs in a single file.

Each raw CSV row is enriched using cross-reference joins: aliases from `alt.csv`, addresses from `add.csv`, and structured IDs (passport numbers, tax IDs, IMO vessel numbers, dates/places of birth) parsed directly from the `remarks` free-text field using pattern matching. The scraper normalizes null sentinel values (`-0-`) to empty strings, classifies entity types (individual, entity, vessel, aircraft), and streams results directly into the Apify dataset.

A single run returns the full SDN list (~19,000 entries), the full Consolidated list (~440 entries), or both, filtered by name substring, sanctions program code (e.g., IRAN, SDGT, RUSSIA), or entity type.

### Who is it for?

- **Compliance officers and AML analysts** who need up-to-date sanctions data for customer screening workflows.
- **Fintech and banking developers** building automated KYC/CDD pipelines that require fresh OFAC data without paying for commercial screening APIs.
- **Legal and risk teams** conducting due diligence on counterparties, vendors, or investment targets.
- **Academic researchers and journalists** studying sanctions regimes, geopolitical enforcement, or financial crime patterns.
- **Data engineers** maintaining internal sanctions databases who need a reliable, scriptable extract in JSON, CSV, or Excel format.

### Use cases

- Screen a customer onboarding list against all OFAC-sanctioned individuals and entities to flag matches before account opening.
- Build a daily-refresh pipeline that downloads the latest OFAC data and inserts new or changed entries into your compliance database.
- Research all sanctioned entities under a specific program (e.g., DPRK, RUSSIA, IRAN) for policy analysis or investigative journalism.
- Extract vessel data (IMO, flag, tonnage, call sign) to power maritime compliance dashboards tracking sanctioned ships.
- Generate an enriched export of all sanctioned individuals with aliases, addresses, and passport numbers for third-party risk assessment tools.

### Why use OFAC Sanctions Scraper?

- **Keyless and official**: pulls directly from `treasury.gov` public downloads — no API key, no registration, no cost per call.
- **18 structured fields**: uid, name, type, programs, title, remarks, listType, aliases, addresses, nationalities, IDs (passport/tax/DOB/POB/IMO), call sign, vessel type, flag, tonnage, GRT, vessel owner.
- **Thousands of entries per run**: SDN alone contains ~19,000 entries; combined with consolidated totals over 19,400+.
- **Smart enrichment**: alias list and address list joined from separate CSV files; IDs and DOB/POB parsed from remarks free-text.
- **Flexible filtering**: filter by name substring, sanctions program code, or entity type before results are written — saves cost on downstream processing.
- **Export to CSV, JSON, Excel, or Google Sheets**: Apify dataset supports all formats out of the box; no post-processing needed.

### What data can you extract?

Every output row represents one sanctioned entity and contains the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `uid` | string | OFAC unique entity identifier |
| `name` | string | Primary name of the sanctioned entity |
| `type` | string | Entity type: `individual`, `entity`, `vessel`, `aircraft` |
| `programs` | string | Sanctions program code(s), e.g. `SDGT`, `IRAN`, `RUSSIA` |
| `title` | string | Title or position (individuals only) |
| `remarks` | string | Free-text remarks including DOB, POB, passport numbers |
| `listType` | string | Source list: `SDN` or `Consolidated` |
| `aliases` | string | JSON array of `{type, name}` objects (aka, fka, nka) |
| `addresses` | string | JSON array of address strings |
| `nationalities` | string | Nationalities/countries extracted from remarks |
| `ids` | string | JSON array of `{type, value}` objects (passport, tax ID, IMO, DOB, POB) |
| `callSign` | string | Radio call sign (vessels and aircraft) |
| `vesselType` | string | Vessel class description |
| `tonnage` | string | Vessel tonnage |
| `grt` | string | Gross registered tonnage |
| `vesselFlag` | string | Vessel flag state |
| `vesselOwner` | string | Registered vessel owner |
| `scrapedAt` | string | ISO 8601 timestamp of the scrape run |

**Example output record (individual):**

```json
{
  "uid": "2674",
  "name": "ABBAS, Abu",
  "type": "individual",
  "programs": "SDGT",
  "title": "Director of PALESTINE LIBERATION FRONT - ABU ABBAS FACTION",
  "remarks": "DOB 10 Dec 1948; Secondary sanctions risk: section 1(b) of Executive Order 13224...",
  "listType": "SDN",
  "aliases": "[{\"type\":\"aka\",\"name\":\"ABU KHALED\"},{\"type\":\"aka\",\"name\":\"ZAYED, Muhammad Abbas\"}]",
  "addresses": "[\"Gaza, Palestinian Territory\"]",
  "nationalities": "",
  "ids": "[{\"type\":\"DOB\",\"value\":\"10 Dec 1948\"},{\"type\":\"POB\",\"value\":\"Haifa\"}]",
  "callSign": "",
  "vesselType": "",
  "tonnage": "",
  "grt": "",
  "vesselFlag": "",
  "vesselOwner": "",
  "scrapedAt": "2026-07-08T10:00:00.000Z"
}
````

### How to use

#### Option A: Full list extraction (most common)

Set `mode` to `sdn`, `consolidated`, or `all` and leave filters empty to retrieve all entries.

**Input JSON:**

```json
{
  "mode": "sdn"
}
```

#### Option B: Filtered extraction by program or name

Use `programFilter` and/or `nameFilter` to narrow down results to a specific sanctions regime or entity name.

**Step 1**: Choose the list mode.
**Step 2**: Enter a program code in `programFilter` (e.g., `IRAN`, `RUSSIA`, `DPRK`, `CYBER`, `SDGT`, `CUBA`).
**Step 3**: Optionally add a `nameFilter` substring to further restrict by name or alias.
**Step 4**: Run the actor and export results as CSV, JSON, or Excel.

**Input JSON (Russia-program individuals only):**

```json
{
  "mode": "sdn",
  "programFilter": "RUSSIA",
  "typeFilter": "individual",
  "nameFilter": ""
}
```

**Input JSON (specific person search):**

```json
{
  "mode": "all",
  "nameFilter": "Putin",
  "programFilter": "",
  "typeFilter": ""
}
```

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `"sdn"` | Which list(s) to scrape: `sdn`, `consolidated`, or `all` |
| `nameFilter` | string | `""` | Case-insensitive substring match on name and aliases |
| `programFilter` | string | `""` | Case-insensitive substring match on sanctions program code |
| `typeFilter` | string | `""` | Filter by type: `individual`, `entity`, `vessel`, `aircraft` |
| `maxEntries` | integer | `0` | Cap output at N entries; `0` = unlimited |
| `proxyConfiguration` | object | Apify datacenter | Proxy settings (datacenter works for US .gov endpoints) |

**Full input JSON:**

```json
{
  "mode": "sdn",
  "nameFilter": "",
  "programFilter": "IRAN",
  "typeFilter": "individual",
  "maxEntries": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["SHADER"]
  }
}
```

### Output example

```json
{
  "uid": "26765",
  "name": "BANK MELLI IRAN",
  "type": "entity",
  "programs": "IRAN",
  "title": "",
  "remarks": "All offices worldwide. SWIFT/BIC MELIIRTH; Additional Sanctions Information...",
  "listType": "SDN",
  "aliases": "[{\"type\":\"aka\",\"name\":\"MELLI BANK\"},{\"type\":\"aka\",\"name\":\"NATIONAL BANK OF IRAN\"}]",
  "addresses": "[\"Ferdowsi Avenue, PO Box 11365-171, Tehran, Iran\",\"43 Avenue Montaigne, Paris 75008, France\"]",
  "nationalities": "",
  "ids": "[{\"type\":\"Passport\",\"value\":\"\"},{\"type\":\"Registration\",\"value\":\"10100459\"}]",
  "callSign": "",
  "vesselType": "",
  "tonnage": "",
  "grt": "",
  "vesselFlag": "",
  "vesselOwner": "",
  "scrapedAt": "2026-07-08T10:00:00.000Z"
}
```

### Tips for best results

- Use `mode: "all"` when building a comprehensive sanctions screening database — it merges SDN and Consolidated lists and deduplicates by UID.
- OFAC updates its lists frequently (often weekly). Schedule the actor to run daily or weekly via Apify Schedules to keep your data fresh.
- For vessel screening, use `typeFilter: "vessel"` combined with `programFilter` to isolate specific maritime sanctions programs.
- The `ids` field contains structured identifiers parsed from the remarks free-text — use JSON.parse() when processing with code to extract individual passport or tax ID values.
- When building a sanctions screening tool, match against both `name` and the `aliases` array (parse the JSON string) to maximize hit rates.
- The `programFilter` field accepts partial matches — use `"IRAN"` to catch `IRAN`, `IRAN-EO13622`, `IRAN-TRA`, and all related sub-programs.
- Export as CSV for quick analysis in Excel/Sheets; export as JSON for downstream API consumption or database loading.
- For large-scale integrations, use the Apify API to trigger runs programmatically and poll for completion before pulling the dataset.
- Set `maxEntries: 100` for testing your downstream pipeline before running a full extraction.
- Datacenter proxies are sufficient for treasury.gov — no residential proxy needed, which keeps costs low.

### Integrations

- **Google Sheets**: Connect via Apify's Google Sheets integration to auto-populate a spreadsheet with the latest OFAC data on each scheduled run.
- **Slack**: Send a Slack notification webhook when a new run completes to alert your compliance team that the sanctions database has been refreshed.
- **Zapier / Make**: Trigger downstream workflows (e.g., update a Salesforce record, notify a risk team) whenever new sanctioned entities are detected.
- **Webhooks**: Configure an Apify webhook to POST the dataset URL to your internal API endpoint on run completion.
- **Schedule**: Use Apify Schedules to run this actor automatically every day or week — treasury.gov updates can occur at any time.

### API usage

**cURL:**

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/logiover~ofac-sanctions-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"sdn","programFilter":"IRAN"}'
```

**Node.js (Apify client):**

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('logiover/ofac-sanctions-scraper').call({
  mode: 'sdn',
  programFilter: 'RUSSIA',
  typeFilter: 'individual',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'sanctioned individuals found');
```

**Python:**

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("logiover/ofac-sanctions-scraper").call(run_input={
    "mode": "sdn",
    "programFilter": "DPRK",
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"{len(items)} DPRK-sanctioned entities found")
```

### Use with AI agents (MCP)

OFAC Sanctions Scraper is available as an Apify MCP server tool. An AI agent can call it on demand to check sanctions status during a due diligence or KYC workflow. Example prompt: *"Use the OFAC Sanctions Scraper to check whether any entity named 'Gazprom' appears on the OFAC SDN list and return all aliases and addresses."* The agent will trigger a filtered run, wait for results, and return structured data without any manual steps.

### FAQ

#### Does this require an API key or login?

No. The actor downloads data directly from public US Treasury URLs (`treasury.gov/ofac/downloads/`) using standard HTTP GET requests. No OFAC account, API key, or registration is required.

#### How many entries does a full run return?

A full `sdn` run returns approximately 19,000–19,500 entries (the list grows as new designations are added). A `consolidated` run returns around 440 entries. Using `mode: "all"` returns the union of both.

#### How current is the data?

The actor fetches the live files directly from treasury.gov every time it runs. OFAC updates its lists frequently — sometimes daily. Schedule the actor to match your compliance refresh cadence.

#### Why do some entries have empty fields?

OFAC's CSV files use `-0-` as a null sentinel for empty values. The actor converts these to empty strings. Not all entities have all fields — vessels have IMO/flag data, individuals have DOB/passport data, and many older entries have sparse remarks.

#### Can I filter for specific countries or sanctions programs?

Yes. Use `programFilter` to match against OFAC program codes. Common codes include: IRAN, CUBA, SDGT (global terrorism), RUSSIA, DPRK (North Korea), CYBER, SYRIA, VENEZUELA, GLOMAG (global Magnitsky), CAATSA.

#### How do I extract passport numbers or dates of birth from the output?

Parse the `ids` field as JSON: `JSON.parse(row.ids)` returns an array of `{type, value}` objects. `type` values include `DOB`, `POB`, `Passport`, `National ID`, `Tax ID`, `IMO`, `MMSI`.

#### How do I export to Excel or CSV?

In the Apify dataset view, click the Export button and choose CSV, Excel, or JSON. Or use the Apify API: `GET /v2/datasets/{datasetId}/items?format=csv`.

#### How fast is a full run?

A full SDN extraction (19,000+ entries) completes in under 3 minutes with a single datacenter proxy connection. No concurrency tuning needed.

#### Is it legal to scrape this data?

OFAC sanctions data is published by the US federal government as open government data with no usage restrictions. It is explicitly intended for public use for compliance and screening purposes. See the OFAC website FAQ for details.

#### How often is the OFAC list updated?

OFAC updates the lists on an irregular but frequent schedule — sometimes multiple times per week. Major geopolitical events (new executive orders, UN resolutions) trigger immediate list updates. Running this actor daily is recommended for compliance-critical workflows.

#### Can I match against my own customer database?

Not directly — this actor extracts the OFAC data. Build your matching logic separately: load the actor's output into a database, then use fuzzy name matching (e.g., Levenshtein distance, Metaphone) to compare against your customer records.

#### What is the difference between SDN and Consolidated lists?

The SDN (Specially Designated Nationals) list is OFAC's primary and largest list, covering individuals and entities from many programs. The Consolidated list merges all OFAC-administered lists into one file. Use `mode: "all"` to get full coverage.

### Is it legal?

This actor accesses only publicly available data published by the US Treasury Department at official government URLs. The OFAC sanctions data is released as open government data intended for use by financial institutions, compliance teams, researchers, and the general public. No authentication is bypassed, no rate limits are violated, and no private data is accessed. Users are responsible for ensuring their downstream use of this data complies with applicable laws and their own privacy policies.

### Related scrapers

- **[logiover/comtrade-trade-data-scraper](https://apify.com/logiover/comtrade-trade-data-scraper)** — UN Comtrade international trade statistics for sanctions-compliance supply chain analysis.
- **[logiover/b2b-lead-scraper](https://apify.com/logiover/b2b-lead-scraper)** — B2B company data by sector and country for screening potential business partners against OFAC lists.
- **[logiover/linkedin-company-scraper](https://apify.com/logiover/linkedin-company-scraper)** — Company intelligence to cross-reference against sanctions data for due diligence workflows.

# Actor input Schema

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

Which list(s) to scrape: 'sdn' (Specially Designated Nationals), 'consolidated' (all OFAC lists), or 'all' (both merged, deduplicated by UID).

## `nameFilter` (type: `string`):

Optional. Only return entries whose name or alias contains this string. Leave empty to return all entries.

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

Optional. Only return entries whose sanctions program code contains this string (case-insensitive). Common values: IRAN, CUBA, SDGT, RUSSIA, DPRK, CYBER, SYRIA, VENEZUELA.

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

Optional. Filter by entity type: 'individual', 'entity', 'vessel', 'aircraft'. Leave empty for all types.

## `maxEntries` (type: `integer`):

Cap the number of output rows. Set to 0 (default) to return the complete list.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Datacenter proxies are fine for US government endpoints. Leave default for most use cases.

## Actor input object example

```json
{
  "mode": "sdn",
  "nameFilter": "",
  "programFilter": "",
  "typeFilter": "",
  "maxEntries": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "SHADER"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All records extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "SHADER"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/ofac-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 = { "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["SHADER"],
    } }

# Run the Actor and wait for it to finish
run = client.actor("logiover/ofac-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 '{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "SHADER"
    ]
  }
}' |
apify call logiover/ofac-sanctions-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OFAC Sanctions Scraper — SDN, Consolidated & AML Data",
        "description": "Scrape the US Treasury OFAC sanctions lists (SDN + Consolidated). Extract name, type, programs, aliases, addresses, nationalities and IDs for AML/KYC, compliance screening, and sanctions research. No API key required.",
        "version": "1.0",
        "x-build-id": "AStzYrEvCDPJG2USI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~ofac-sanctions-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-ofac-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/logiover~ofac-sanctions-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-ofac-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/logiover~ofac-sanctions-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-ofac-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": {
                    "mode": {
                        "title": "Sanctions list mode",
                        "enum": [
                            "sdn",
                            "consolidated",
                            "all"
                        ],
                        "type": "string",
                        "description": "Which list(s) to scrape: 'sdn' (Specially Designated Nationals), 'consolidated' (all OFAC lists), or 'all' (both merged, deduplicated by UID).",
                        "default": "sdn"
                    },
                    "nameFilter": {
                        "title": "Name filter (substring, case-insensitive)",
                        "type": "string",
                        "description": "Optional. Only return entries whose name or alias contains this string. Leave empty to return all entries.",
                        "default": ""
                    },
                    "programFilter": {
                        "title": "Program filter (e.g. IRAN, SDGT, RUSSIA)",
                        "type": "string",
                        "description": "Optional. Only return entries whose sanctions program code contains this string (case-insensitive). Common values: IRAN, CUBA, SDGT, RUSSIA, DPRK, CYBER, SYRIA, VENEZUELA.",
                        "default": ""
                    },
                    "typeFilter": {
                        "title": "Entity type filter",
                        "enum": [
                            "",
                            "individual",
                            "entity",
                            "vessel",
                            "aircraft"
                        ],
                        "type": "string",
                        "description": "Optional. Filter by entity type: 'individual', 'entity', 'vessel', 'aircraft'. Leave empty for all types.",
                        "default": ""
                    },
                    "maxEntries": {
                        "title": "Maximum entries to return (0 = unlimited)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap the number of output rows. Set to 0 (default) to return the complete list.",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy settings. Datacenter proxies are fine for US government endpoints. Leave default for most use cases."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
