# OpenSanctions Sanctions & PEP Entities Scraper (`parseforge/opensanctions-entities-scraper`) Actor

Scrape OpenSanctions: 280k+ sanctioned people, companies, vessels and PEPs across 250+ global watchlists. Filter by topic, country, entity type or dataset. Returns names, aliases, identifiers, addresses, sectors, programmes — for AML, KYC and due diligence.

- **URL**: https://apify.com/parseforge/opensanctions-entities-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Automation, Other
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $22.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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/main/banners/banner-default.jpg?raw=true)

## 🛡️ OpenSanctions Sanctions & PEP Entities Scraper

> 🚀 **Export the global sanctions and PEP universe in seconds.** Pull **280,000+ sanctioned individuals, companies, vessels, and politically exposed persons** consolidated from 250+ official watchlists. No sign-up, no manual list stitching, no per-source parsers.

The **OpenSanctions Entities Scraper** exports the consolidated OpenSanctions catalogue and returns up to **30 structured fields per record**, including canonical names, aliases, gender, nationality, identifiers (passport, INN, OGRN, LEI, IMO), addresses, sectors, sanction programmes, topic flags, and the underlying source lists. The OpenSanctions catalogue is one of the most widely cited consolidated watchlist sources in the AML, KYC, and investigative-journalism communities.

The catalogue covers **every major sanctions regime, PEP register, and crime / wanted list on Earth**, from the U.S. OFAC SDN list and EU Financial Sanctions Files to the UK HMT list, UN Security Council sanctions, Russian Wanted lists, and dozens of national debarment registries. This Actor makes that data downloadable as CSV, Excel, JSON, or XML in under five minutes. Filters run server-side, so you skip the merge engineering entirely.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Compliance, AML, and KYC teams; banks and fintechs; legal and due-diligence firms; investigative journalists; OSINT and risk analysts; crypto exchanges; corporate procurement | Sanctions screening, PEP detection, ultimate-beneficial-owner research, vessel and aircraft watchlist checks, supplier debarment screening, adverse-media triage, periodic refresh of internal watchlists |

### 📋 What the OpenSanctions Entities Scraper does

Six filtering workflows in a single run:

- 🛡️ **Consolidated sanctions.** The full union of OFAC, EU FSF, UK HMT, UN, Australia DFAT, Canada SEMA, and 60+ other sanctions regimes.
- 🏛️ **PEP register.** Politically exposed persons across heads of state, ministers, judges, diplomats, and family members (RCAs).
- 🚓 **Crime and wanted lists.** Interpol, FBI, national police bulletins, financial crime, terrorism, trafficking, cybercrime, and fraud topics.
- 🚫 **Debarment registers.** World Bank, UN, EU, U.S. SAM excluded suppliers and procurement bans.
- 🌍 **Country filter.** Restrict to entities tied to a single country code (e.g. `ru`, `ir`, `kp`, `cn`, `us`).
- 🏷️ **Type, topic, name, and source slug filters.** Combine freely (e.g. all sanctioned vessels, or all PEPs in Iran, or every Person flagged for fraud).

Each record includes the canonical display name, every recorded alias and transliteration, gender and nationality, structured identifiers (passport, INN, OGRN, LEI, IMO), addresses, sectors, sanction programmes, topic flags, the source datasets the entity came from, original source URLs, first-seen and last-changed timestamps, and a deep link to the public OpenSanctions profile.

> 💡 **Why it matters:** sanctions, PEP, and watchlist screening is the foundation of AML compliance, payment risk scoring, and KYC onboarding. Building your own consolidated list means writing parsers for 250+ sources, deduping across regimes, normalising aliases, and refreshing daily. This Actor skips all of that and gives you a clean, refreshed snapshot on every run.

### 📊 Data fields

Each record includes: `addresses`, `aliases`, `aliasesTotal`, `aliasesTruncated`, `birthDates`, `caption`, `countries`, `datasets`, `emails`, `firstSeen`, `gender`, `id`, `idNumbers`, `imoNumbers`, `innCodes`, `jurisdictions`, `lastChange`, `lastSeen`, `leiCodes`, `names`, `nationality`, `notes`, `ogrnCodes`, `passportNumbers`, `phoneNumbers`, `phones`, `positions`, `profileUrl`, `registrationNumbers`, `sanctionProgrammes`, `schema`, `scrapedAt`, `sectors`, `sourceUrls`, `status`, `target`, `taxNumbers`, `topics`, `websites`. These field names come straight from the actor's dataset schema, so what you see here is what lands in your dataset.

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the OpenSanctions Sanctions & PEP Entities Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a collection (sanctions / peps / crime / debarment), optionally add a country, topic, or name filter, and set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor stream the consolidated catalogue.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to a downloaded sanctions dataset: **3-5 minutes.** No coding required.

### 🔗 Recommended Actors

- [**🇬🇧 GOV.UK Content Search Scraper**](https://apify.com/parseforge/govuk-content-search-scraper) - Search the entire UK government publications catalogue
- [**🏛️ UK Parliament Members Scraper**](https://apify.com/parseforge/members-uk-parliament-scraper) - MPs and Lords with biographies, committees, and contact details
- [**🏢 SEC EDGAR Full-Text Search Scraper**](https://apify.com/parseforge/sec-edgar-full-text-search-scraper) - Search U.S. company filings by keyword and form type
- [**🛡️ FINRA BrokerCheck Scraper**](https://apify.com/parseforge/finra-brokercheck-scraper) - U.S. broker disclosures and disciplinary history
- [**🏛️ Florida Sunbiz Business Registry Scraper**](https://apify.com/parseforge/sunbiz-florida-business-scraper) - Florida corporate registry records

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by OpenSanctions or any of the issuing authorities whose lists it consolidates. All trademarks mentioned are the property of their respective owners. Only publicly available open watchlist data is collected.

### 🆘 Need Help?

If you hit a bug, have questions about setup, or need a scraper we haven't built yet, open our [contact form](https://tally.so/r/BzdKgA) or write to parseforge@protonmail.com. We also take on paid custom data projects.

For faster answers, join our [Discord](https://parseforge.co/discord). It's the best place to get support and suggest new actors.

# Actor input Schema

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

Which OpenSanctions collection to pull from. 'sanctions' is the consolidated global sanctions list; 'peps' covers politically-exposed persons; 'crime' covers wanted lists; 'default' is the full union of all collections.

## `schema` (type: `string`):

Restrict to a single entity type. Leave empty to include all types.

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

Filter to entities tied to a specific country (lowercase 2-letter code, e.g. 'ru', 'ir', 'kp', 'us'). Leave empty for all countries.

## `topic` (type: `string`):

Restrict to entities flagged with a specific risk topic. Leave empty for all topics.

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

Match on the canonical name or any alias. Substring match is case-insensitive; fuzzy match also strips diacritics, punctuation and casing variations. Leave empty to skip name filtering.

## `nameMatchMode` (type: `string`):

How to match the Name Filter against entity names and aliases.

## `datasetSource` (type: `string`):

Restrict to a single underlying source list. Leave empty for all sources within the chosen collection.

## `maxAliases` (type: `integer`):

Cap the aliases array per record to keep payloads compact. Some entities have hundreds of transliteration variants.

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

How many entities to collect per run.

## Actor input object example

```json
{
  "dataset": "sanctions",
  "schema": "",
  "country": "",
  "topic": "",
  "nameQuery": "",
  "nameMatchMode": "substring",
  "datasetSource": "",
  "maxAliases": 50,
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

# 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 = {
    "country": "",
    "nameQuery": "",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/opensanctions-entities-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 = {
    "country": "",
    "nameQuery": "",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/opensanctions-entities-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 '{
  "country": "",
  "nameQuery": "",
  "maxItems": 10
}' |
apify call parseforge/opensanctions-entities-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XRZ4e6nTOtvQGCm9a/builds/FN4o51JQ6kge27Df7/openapi.json
