# EU Sanctions List Scraper — KYB & AML Screening (`studio-amba/eu-sanctions-scraper`) Actor

Search the EU consolidated list of persons and entities subject to EU financial sanctions. Filter by name, type, or country. Get aliases, birth dates, citizenship, programmes, and listing dates from the official EU source. Built for KYB, AML, and compliance screening.

- **URL**: https://apify.com/studio-amba/eu-sanctions-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## EU Sanctions List Scraper

Search the official **EU consolidated list of persons, groups and entities subject to EU financial sanctions** — the legally binding screening list maintained by the European Commission. No login, no cookies, no API key needed.

### Why use this actor?

Every business operating in or with the EU is required to screen counterparties against the EU financial sanctions list. With the EU's new Anti-Money Laundering Regulation (AMLR) taking effect in July 2026, sanctions screening is moving from "nice to have" to a hard compliance obligation for banks, fintechs, payment providers, crypto platforms, law firms, and any company with KYB/KYC duties.

This actor turns the raw 25 MB government XML export into clean, structured JSON you can plug straight into your compliance workflow:

- **KYB / KYC onboarding** — screen new customers and suppliers by name
- **AML transaction monitoring** — batch-check counterparty lists
- **Vendor due diligence** — verify business partners aren't sanctioned
- **Data enrichment** — feed sanctions flags into your CRM or risk engine
- **Research & journalism** — track who is listed under which sanctions programme

The data comes directly from the European Commission's Financial Sanctions Database (FSD), the same source used by commercial screening tools that charge hundreds of euros per month.

### How to scrape EU sanctions data

1. Open this actor on the Apify platform and click **Try for free**
2. Enter a **Search Query** — a person or company name (or part of it), e.g. `Sberbank`, `Wagner`, or `bank`. Use `*` to download the full list
3. Optionally filter by **Entity Type** (persons / entities) and **Country** (citizenship, birth, or address country)
4. Set **Max Items** and click **Start**
5. Download results as JSON, CSV, or Excel from the **Dataset** tab — or fetch them via the Apify API on a schedule

The actor downloads the latest official list on every run, so results always reflect the current legal state of EU sanctions. The list covers all EU sanctions programmes: Russia/Ukraine, Iran, North Korea, Syria, Belarus, terrorism (ISIL/Al-Qaida), human rights, cyber-attacks, chemical weapons, and more.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | String | No | Name or alias to search for (case-insensitive, partial match). Also accepts an EU reference number. `*` returns the full list. Default: `bank` |
| `entityType` | String | No | `all` (default), `person`, or `entity` |
| `country` | String | No | ISO 2-letter code (`RU`, `IR`) or country name (`Russia`). Matches citizenship, birth country, or address |
| `maxItems` | Integer | No | Maximum records to return (default: 100, max: 10000) |
| `proxyConfiguration` | Object | No | Proxy settings. The EU endpoint is public — datacenter proxies are fine |

#### Example input

```json
{
    "searchQuery": "Sberbank",
    "entityType": "entity",
    "maxItems": 50
}
````

### Output

Each result is one sanctioned person or entity:

| Field | Type | Example |
|-------|------|---------|
| `euReferenceNumber` | String | `"EU.4189.47"` |
| `entityName` | String | `"KOREA CHANGGWANG CREDIT BANK"` |
| `entityType` | String | `"entity"` or `"person"` |
| `aliases` | Array | `["Tanchon Commercial Bank"]` |
| `gender` | String | `"M"` (persons only) |
| `role` | String | Function or position of the subject |
| `birthDate` | String | `"1937-04-28"` (persons only) |
| `birthPlace` | String | `"Baghdad"` (persons only) |
| `birthCountry` | String | `"IRAQ"` (persons only) |
| `citizenships` | Array | `["RUSSIAN FEDERATION"]` (persons only) |
| `addresses` | Array | Street, city, zip, country per address |
| `identificationDocuments` | Array | Passports, national IDs, registration numbers |
| `programme` | String | `"PRK"` (sanctions programme code) |
| `regulationTitle` | String | `"2017/1509 (OJ L224)"` |
| `listingDate` | String | `"2017-08-31"` |
| `remarks` | String | Free-text notes from the regulation |
| `unitedNationId` | String | UN reference if also UN-listed |
| `url` | String | Link to the legal act on EUR-Lex |
| `sourceListDate` | String | Generation date of the official list |
| `scrapedAt` | String | ISO timestamp of this run |

### Example output

```json
{
    "euReferenceNumber": "EU.4189.47",
    "entityName": "KOREA CHANGGWANG CREDIT BANK",
    "entityType": "entity",
    "aliases": ["Tanchon Commercial Bank", "CHANGGWANG CREDIT BANK"],
    "gender": null,
    "role": "Main DPRK financial entity for sales of conventional arms and ballistic missiles.",
    "birthDate": null,
    "birthPlace": null,
    "birthCountry": null,
    "citizenships": [],
    "addresses": [
        {
            "street": "1 Saemul - Dong Pyongchon District",
            "city": "Pyongyang",
            "zipCode": null,
            "region": null,
            "country": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF",
            "countryCode": "KP"
        }
    ],
    "identificationDocuments": [],
    "programme": "PRK",
    "regulationTitle": "2017/1509 (OJ L224)",
    "listingDate": "2017-08-31",
    "remarks": null,
    "unitedNationId": null,
    "url": "http://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32017R1509&from=EN",
    "sourceListDate": "2026-06-05T15:51:25.849+02:00",
    "scrapedAt": "2026-06-11T12:11:52.885Z"
}
```

### Sanctions programmes covered

The consolidated list currently contains ~6,000 records across 40+ programmes, including:

| Code | Programme |
|------|-----------|
| `UKR` | Russia's war against Ukraine (largest programme, 2,700+ records) |
| `IRN` | Iran |
| `SYR` | Syria |
| `BLR` | Belarus |
| `TAQA` | ISIL (Da'esh) and Al-Qaida |
| `PRK` | North Korea |
| `HR` | Global Human Rights regime |
| `CYB` | Cyber-attacks |
| `CHEM` | Chemical weapons |

### Cost estimate

This is a lightweight API-based actor: one run downloads and parses the official list in under a minute, using roughly **0.02 compute units per run** regardless of how many records you extract. A daily full-list refresh costs only a few cents per month in platform usage.

### Limitations

- The actor reflects the **EU consolidated list only** — it does not include UN, OFAC (US), or UK (OFSI) lists
- The European Commission usually updates the list within a day of a new legal act; the actor always fetches the latest published version
- Name search is exact-substring based — for fuzzy matching (transliterations, typos), pull the full list with `*` and run your own matching logic
- Person-specific fields (birth date, citizenship) are empty for entities, and vice versa
- Data comes from the official public EU source; use in accordance with EU open-data terms

### Related scrapers

- [TED EU Procurement Scraper](https://apify.com/studio-amba/ted-eu-procurement-scraper) — EU public tenders
- [Belgian Procurement Scraper](https://apify.com/studio-amba/belgian-procurement-scraper) — Belgian public tenders
- [ARES Scraper](https://apify.com/studio-amba/ares-scraper) — Czech business register

### Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs,
deduplication, delta detection, and delivery to your inbox, Google Sheets,
or API — maintenance included. We can also build a custom version with your
exact fields and filters, or combine multiple sources into one feed.

See [studioamba.dev/services](https://studioamba.dev/services/) or email
<hello@studioamba.dev> for a free data sample.
We maintain 300+ European web scrapers and answer within one business day.

# Actor input Schema

## `searchQuery` (type: `string`):

Name (or part of a name) to search for across primary names and aliases. Also accepts an EU reference number (e.g. 'EU.27.28'). Use '\*' to return the full list. Examples: 'bank', 'Wagner', 'Sberbank'.

## `entityType` (type: `string`):

Filter results by subject type: natural persons, legal entities (companies, organisations, vessels), or both.

## `country` (type: `string`):

Filter by country of citizenship, birth, or address. Accepts an ISO 2-letter code ('RU', 'IR', 'SY') or a country name ('Russia', 'Iran'). Leave empty for all countries.

## `maxItems` (type: `integer`):

Maximum number of sanctions records to return.

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

Proxy settings. The EU open-data endpoint is public and normally needs no proxy — datacenter proxies are fine.

## Actor input object example

```json
{
  "searchQuery": "bank",
  "entityType": "all",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "searchQuery": "bank",
    "entityType": "all",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/eu-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 = {
    "searchQuery": "bank",
    "entityType": "all",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/eu-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 '{
  "searchQuery": "bank",
  "entityType": "all",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call studio-amba/eu-sanctions-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EU Sanctions List Scraper — KYB & AML Screening",
        "description": "Search the EU consolidated list of persons and entities subject to EU financial sanctions. Filter by name, type, or country. Get aliases, birth dates, citizenship, programmes, and listing dates from the official EU source. Built for KYB, AML, and compliance screening.",
        "version": "0.1",
        "x-build-id": "KfSdRdd86i7UNvXqC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~eu-sanctions-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-eu-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/studio-amba~eu-sanctions-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-eu-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/studio-amba~eu-sanctions-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-eu-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": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Name (or part of a name) to search for across primary names and aliases. Also accepts an EU reference number (e.g. 'EU.27.28'). Use '*' to return the full list. Examples: 'bank', 'Wagner', 'Sberbank'.",
                        "default": "bank"
                    },
                    "entityType": {
                        "title": "Entity Type",
                        "enum": [
                            "all",
                            "person",
                            "entity"
                        ],
                        "type": "string",
                        "description": "Filter results by subject type: natural persons, legal entities (companies, organisations, vessels), or both.",
                        "default": "all"
                    },
                    "country": {
                        "title": "Country Filter",
                        "type": "string",
                        "description": "Filter by country of citizenship, birth, or address. Accepts an ISO 2-letter code ('RU', 'IR', 'SY') or a country name ('Russia', 'Iran'). Leave empty for all countries."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of sanctions records to return.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. The EU open-data endpoint is public and normally needs no proxy — datacenter proxies are fine.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
