# OFAC Sanctions Name Screening (`automation-lab/ofac-sanctions-name-screening`) Actor

Screen supplied names against official public OFAC SDN and alias CSV files; export per-name candidate matches, SDN IDs, aliases and source provenance. Informational only.

- **URL**: https://apify.com/automation-lab/ofac-sanctions-name-screening.md
- **Developed by:** [Automation Lab](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.44 / 1,000 item extracteds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## OFAC Sanctions Name Screening

Screen supplied counterparty names against the current public US Treasury OFAC Specially Designated Nationals (SDN) CSV. Each candidate row identifies the input, SDN ID, listed name, matching primary name or alias, similarity, and the official source downloads. The Actor downloads the list on each run and compares names locally; it does not send your names to OFAC.

**Candidate matches are informational, not sanctions or compliance verdicts.** A name match cannot establish identity, and no match cannot establish clearance. Review identifiers and official records with your compliance team.

### Who is this for?

Vendor onboarding teams, counterparty analysts, and researchers who need a reproducible list of candidate names for human review. This tool screens the SDN CSV only; it does not cover all OFAC lists, historical removals, ownership, beneficial owners, or all denied-party registers.

### Why use this Actor?

- Submit up to 100 names in one input; download the official SDN and ALT (alias) CSV files once per run.
- Receive per-input match provenance, SDN IDs and aliases rather than a full-list export.
- Compare recurring exported datasets yourself to spot changed candidates. No built-in alerts, identity verification or automatic decisions.

### Getting started

1. Enter one or more names into **Names to screen**.
2. Set **Minimum name similarity** (default 0.88). Set 1 for normalized exact matches.
3. Run the Actor and inspect the default dataset; no-match names produce no rows.
4. Independently check candidate identifiers and the official OFAC data before any decision.

### Input parameters

| Field | Default | Description |
| --- | --- | --- |
| `names` | Required | 1–100 names, each 3–150 characters. |
| `minimumScore` | 0.88 | Whole-name normalized edit similarity, 0.8–1. |
| `maxMatchesPerName` | 10 | Highest-scoring candidates per input, 1–50. |

Example: `{"names":["BANCO NACIONAL DE CUBA","BNC","A Name Not In The List"],"minimumScore":0.88}`.

### Output fields

One row per candidate, in the default dataset. `inputName` is the supplied name; `sdnId` is the OFAC identifier; `sdnName` is the primary entry; `matchedName` and `matchType` identify which name matched (`primary` or `alias`). `similarity` ranges from 0 to 1. `aliases` includes ALT CSV entries and quoted aliases in the SDN remarks. `sdnType`, `programs`, and `remarks` reflect fields in the SDN CSV (nullable). `sourceUrl`, `aliasSourceUrl`, and `fetchedAt` record provenance.

For example, a current official-list input `BNC` matched SDN ID `306`, primary name `BANCO NACIONAL DE CUBA`, alias `BNC`, score `1`; the alias source is `https://www.treasury.gov/ofac/downloads/alt.csv`. Actual source records may change.

### How much does it cost to screen OFAC SDN names?

Pay-per-event pricing includes one `start` charge per run and one `item` charge for each returned candidate row, not each submitted name. Check the current Actor pricing panel for active plan-tier rates. For example, at the current $0.0035 start and $0.0024 BRONZE item price, one match costs $0.0059 and ten matches $0.0275 in Actor fees; zero matches still incur the start charge. Platform usage costs may vary by run. Other tiers differ: FREE $0.00276, SILVER $0.001872, GOLD/PLATINUM/DIAMOND $0.00144 per candidate.

### Integrations and recurring review

Export the dataset as CSV or JSON to a spreadsheet or internal case queue. Schedule another run with the same inputs and compare retrieved timestamps, IDs and matched names in your own workflow; the Actor does not monitor changes or email alerts. Keep an audit trail of manual review and source timestamps.

### API usage

Start an Apify run with the Actor API (replace `YOUR_TOKEN`):

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~ofac-sanctions-name-screening/runs?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' -d '{"names":["BNC"]}'
```

JavaScript with `apify-client`:

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/ofac-sanctions-name-screening').call({ names: ['BNC'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Python with `apify-client`:

```python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/ofac-sanctions-name-screening').call(run_input={'names': ['BNC']})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

Read the returned default dataset ID through the Apify API to retrieve match rows. Protect your API token and handle sensitive input data according to your own policies.

### MCP usage

For Claude Code: `claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/ofac-sanctions-name-screening"`. Ask: “Screen BNC against the current OFAC SDN CSV and list candidate IDs for review.” Claude Desktop, Cursor and VS Code MCP clients can configure `{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/ofac-sanctions-name-screening"}}}`. Example prompts: “Screen BANCO NACIONAL DE CUBA and return official SDN IDs” and “Screen these supplier names and summarize the candidate alias fields.”

### Legality and responsible use

This is a string similarity tool, not an official OFAC screening or legal opinion. Names may be duplicated across people or entities; spelling variants, non-Latin scripts, changed records and non-SDN lists can lead to missed matches. Similarity scores do not represent probability of identity. Download failures or malformed source files fail the run rather than silently using stale data. Do not use results as the sole basis for denying services or asserting sanctions status. Consult the official OFAC search and applicable legal professionals.

### FAQ

**Why did I get no rows?** No candidate met the minimum similarity threshold in the downloaded SDN file. Try a supported spelling variant or lower the threshold, then review results manually.

**Why did the run fail?** The official files may be unavailable or structurally changed; retry later and inspect the run log. A failed run is not evidence that a name is clear.

**Is this the complete US denied-party database?** No. Only official public SDN and associated ALT CSV names are screened.

### Related Actors

[OFAC Sanctions List Export Scraper](https://apify.com/automation-lab/ofac-sanctions-list-export-scraper) exports bulk list records rather than mapping supplied names to candidates. [SAM.gov Entity Exclusions Scraper](https://apify.com/automation-lab/sam-gov-entity-exclusions-scraper) covers a different government exclusion source.

# Changelog

This Actor's version history is a separate document: https://apify.com/automation-lab/ofac-sanctions-name-screening/changelog.md

# Actor input Schema

## `names` (type: `array`):

Person or organization names to compare with current SDN names and aliases (1–100 names).

## `minimumScore` (type: `number`):

Whole-name normalized edit similarity required to return a candidate (0.8–1). 1 requires an exact normalized match.

## `maxMatchesPerName` (type: `integer`):

Return the highest-scoring candidates per input name, up to this limit. Inputs with no matches produce no dataset rows.

## Actor input object example

```json
{
  "names": [
    "BANCO NACIONAL DE CUBA",
    "A Name Not In The List"
  ],
  "minimumScore": 0.88,
  "maxMatchesPerName": 10
}
```

# Actor output Schema

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

Ranked name and alias candidates with SDN IDs, similarity and official CSV provenance

# 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 = {
    "names": [
        "BANCO NACIONAL DE CUBA",
        "A Name Not In The List"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/ofac-sanctions-name-screening").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 = { "names": [
        "BANCO NACIONAL DE CUBA",
        "A Name Not In The List",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/ofac-sanctions-name-screening").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "names": [
    "BANCO NACIONAL DE CUBA",
    "A Name Not In The List"
  ]
}' |
apify call automation-lab/ofac-sanctions-name-screening --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/ofac-sanctions-name-screening"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0DLejQEYvIawhpbaM/builds/4241dJD27jKce5beT/openapi.json
