# Trade Screening Intelligence - Consolidated Screening List (`ntriqpro/trade-screening-intelligence`) Actor

Screen entities against 12+ US government restricted party lists including SDN, Entity List, and DPL. Batch screening, compliance reports, and list analysis via Trade.gov API. Replaces Descartes Visual Compliance.

- **URL**: https://apify.com/ntriqpro/trade-screening-intelligence.md
- **Developed by:** [daehwan kim](https://apify.com/ntriqpro) (community)
- **Categories:** AI, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$150.00 / 1,000 charged when trade screening analysis is successfus

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Trade Screening Intelligence - Consolidated Screening List

Screen entities against 12+ US government restricted party lists using the Trade.gov Consolidated Screening List API. Perform single entity screening, batch screening of multiple parties, list composition analysis, and generate comprehensive compliance reports — capability that typically requires expensive subscriptions to services like Descartes Visual Compliance ($10K-$50K/year).

### What This Actor Does

This actor connects to the official Trade.gov Consolidated Screening List (CSL) API to screen entities against all major US government restricted party lists. The CSL consolidates 12+ export screening lists from the Departments of Commerce, State, and Treasury into a single searchable database. Essential for any company engaged in international trade, export compliance, or due diligence.

### Features

- **Single Entity Screening**: Screen any person, company, or entity against all restricted party lists with risk assessment
- **Batch Screening**: Screen multiple entities at once with consolidated risk report
- **List Analysis**: Analyze composition and statistics of screening lists by country, type, and source
- **Compliance Reports**: Generate comprehensive compliance reports with risk levels and recommendations
- **Risk Classification**: Automatic HIGH/MEDIUM/CLEAR risk assessment based on list severity
- **12+ Screening Lists**: SDN, Entity List, DPL, UVL, FSE, ISN, SSI, CAPTA, ITAR, CMC, and more
- **Pay-Per-Event Pricing**: Only $0.05 per successful analysis

### Screening Lists Covered

| List Code | Full Name | Agency |
|-----------|-----------|--------|
| SDN | Specially Designated Nationals | OFAC (Treasury) |
| EL | Entity List | BIS (Commerce) |
| DPL | Denied Persons List | BIS (Commerce) |
| UVL | Unverified List | BIS (Commerce) |
| FSE | Foreign Sanctions Evaders | OFAC (Treasury) |
| ISN | Nonproliferation Sanctions | State Dept |
| SSI | Sectoral Sanctions | OFAC (Treasury) |
| CMC | Chinese Military Companies | OFAC (Treasury) |
| MEU | Military End-User List | BIS (Commerce) |
| CAPTA | CAPTA List | Treasury |
| ITAR | ITAR Debarred | DDTC (State) |
| 561 | 561 List | OFAC (Treasury) |

### Analysis Modes

#### 1. `entity_screening` — Screen Single Entity
Screens a single entity name against all consolidated screening lists. Returns all matches with detailed information including addresses, IDs, programs, and an automatic risk assessment.

**Output includes:**
- All matching entries with full details
- Risk level assessment (CLEAR/MEDIUM/HIGH)
- Compliance recommendation
- Breakdown by source list

#### 2. `batch_screening` — Screen Multiple Entities
Screens multiple comma-separated entity names against all lists. Provides individual and aggregate risk assessments.

**Output includes:**
- Per-entity match count and risk level
- Top matches for each entity
- Aggregate risk summary
- Clear vs. flagged entity counts

#### 3. `list_analysis` — List Statistics
Analyzes the composition and distribution of screening list entries. Shows breakdowns by source list, country, and entity type.

**Output includes:**
- Entry count per screening list
- Country distribution
- Entity type breakdown (individual, entity, vessel, aircraft)
- Top countries per list

#### 4. `compliance_report` — Full Compliance Report
Generates a comprehensive compliance report for an entity, searching across both entity and individual types. Provides detailed risk assessment, recommendations, and a compliance disclaimer.

**Output includes:**
- Overall risk assessment with detailed explanation
- Compliance recommendations tailored to risk level
- Lists matched with full names
- Countries and programs involved
- Legal disclaimer

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `mode` | string | Yes | `entity_screening` | Analysis mode to run |
| `searchTerm` | string | No | `Huawei` | Entity name(s) to screen (comma-separated for batch) |
| `country` | string | No | — | Country filter (ISO 2-letter code) |
| `listSource` | string | No | — | Filter by specific list (e.g., SDN, EL) |
| `entityType` | string | No | `all` | Entity type filter |
| `limit` | integer | No | `50` | Maximum results per search (1-500) |
| `tradeGovApiKey` | string | No | — | Trade.gov API key (free from developer.trade.gov) |

### Getting an API Key

1. Visit [https://api.trade.gov/apps/register](https://api.trade.gov/apps/register)
2. Subscribe to the Consolidated Screening List API
3. Copy your API key
4. Paste it into the `tradeGovApiKey` input field

The API key is free and provides access to all Trade.gov APIs.

### Example Output

```json
{
    "source": "Trade.gov Consolidated Screening List API",
    "mode": "entity_screening",
    "title": "Screening Results — \"Huawei\"",
    "summary": {
        "searchTerm": "Huawei",
        "totalMatches": 152,
        "riskLevel": "HIGH",
        "recommendation": "HIGH RISK: Entity matches restricted party list(s). Do NOT proceed without legal review.",
        "listsMatched": [
            { "list": "EL", "fullName": "Entity List (BIS)", "count": 148 },
            { "list": "SDN", "fullName": "Specially Designated Nationals (OFAC)", "count": 4 }
        ]
    },
    "matches": [
        {
            "name": "Huawei Technologies Co., Ltd.",
            "type": "entity",
            "source": "EL",
            "sourceFullName": "Entity List (BIS)",
            "country": "CN"
        }
    ],
    "riskLevel": "HIGH",
    "timestamp": "2024-01-15T10:30:00.000Z"
}
````

### Use Cases

- **Export Compliance**: Screen business partners before engaging in international trade
- **KYC/AML Due Diligence**: Check counterparties against sanctions and denied party lists
- **Supply Chain Risk**: Verify suppliers are not on restricted party lists
- **Financial Compliance**: Banks and financial institutions screening wire transfers and account holders
- **Legal Due Diligence**: Law firms screening clients and transaction parties
- **Insurance Underwriting**: Verify policyholders against sanctions lists
- **Government Contracting**: Screen subcontractors and vendors for ITAR/EAR compliance

### Cost Comparison

| Solution | Annual Cost | Coverage |
|----------|------------|----------|
| Descartes Visual Compliance | $10,000 - $50,000 | Trade compliance screening |
| Dow Jones Risk & Compliance | $15,000 - $50,000 | Sanctions screening |
| LexisNexis WorldCompliance | $10,000 - $30,000 | Global screening |
| **This Actor** | **$0.05/query** | **US government screening lists** |

### Technical Details

- **Runtime**: Node.js 22
- **Timeout**: 30 seconds per API call with 3 retries
- **Rate Limits**: Respects Trade.gov API rate limits with delays for batch operations
- **Error Handling**: Graceful error handling with per-entity error reporting in batch mode
- **Pricing**: $0.05 per successful analysis (pay-per-event)

### Important Notes

- The Consolidated Screening List is updated regularly by US government agencies. Always verify critical decisions against the most current data.
- This tool does not constitute legal advice. Consult qualified trade compliance counsel for definitive guidance.
- The 50% rule (OFAC) means entities 50%+ owned by SDN-listed parties are also blocked, even if not explicitly listed.
- Screening results should be part of a broader compliance program, not a standalone solution.

### Changelog

- **1.0.0** — Initial release with 4 analysis modes

# Actor input Schema

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

Select the type of screening analysis to run

## `searchTerm` (type: `string`):

Entity name to screen (e.g., 'Huawei', 'ZTE Corporation'). For batch\_screening, use comma-separated names.

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

Filter results by country (e.g., 'CN' for China, 'RU' for Russia). Leave empty for all countries.

## `listSource` (type: `string`):

Filter by specific screening list (e.g., 'SDN', 'EL', 'DPL'). Leave empty for all lists.

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

Filter by entity type

## `limit` (type: `integer`):

Maximum number of results per search

## `tradeGovApiKey` (type: `string`):

Free API key from developer.trade.gov. Subscribe at https://api.trade.gov/apps/register to get one.

## Actor input object example

```json
{
  "mode": "entity_screening",
  "searchTerm": "Huawei",
  "country": "",
  "listSource": "",
  "entityType": "all",
  "limit": 50
}
```

# Actor output Schema

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

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ntriqpro/trade-screening-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("ntriqpro/trade-screening-intelligence").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call ntriqpro/trade-screening-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ntriqpro/trade-screening-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trade Screening Intelligence - Consolidated Screening List",
        "description": "Screen entities against 12+ US government restricted party lists including SDN, Entity List, and DPL. Batch screening, compliance reports, and list analysis via Trade.gov API. Replaces Descartes Visual Compliance.",
        "version": "1.0",
        "x-build-id": "Lhd5mEFFBWAJfofO9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ntriqpro~trade-screening-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ntriqpro-trade-screening-intelligence",
                "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/ntriqpro~trade-screening-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-ntriqpro-trade-screening-intelligence",
                "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/ntriqpro~trade-screening-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-ntriqpro-trade-screening-intelligence",
                "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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Analysis Mode",
                        "enum": [
                            "entity_screening",
                            "batch_screening",
                            "list_analysis",
                            "compliance_report"
                        ],
                        "type": "string",
                        "description": "Select the type of screening analysis to run",
                        "default": "entity_screening"
                    },
                    "searchTerm": {
                        "title": "Search Term",
                        "type": "string",
                        "description": "Entity name to screen (e.g., 'Huawei', 'ZTE Corporation'). For batch_screening, use comma-separated names.",
                        "default": "Huawei"
                    },
                    "country": {
                        "title": "Country Filter",
                        "type": "string",
                        "description": "Filter results by country (e.g., 'CN' for China, 'RU' for Russia). Leave empty for all countries.",
                        "default": ""
                    },
                    "listSource": {
                        "title": "List Source Filter",
                        "type": "string",
                        "description": "Filter by specific screening list (e.g., 'SDN', 'EL', 'DPL'). Leave empty for all lists.",
                        "default": ""
                    },
                    "entityType": {
                        "title": "Entity Type",
                        "enum": [
                            "all",
                            "individual",
                            "entity",
                            "vessel",
                            "aircraft"
                        ],
                        "type": "string",
                        "description": "Filter by entity type",
                        "default": "all"
                    },
                    "limit": {
                        "title": "Result Limit",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of results per search",
                        "default": 50
                    },
                    "tradeGovApiKey": {
                        "title": "Trade.gov API Key",
                        "type": "string",
                        "description": "Free API key from developer.trade.gov. Subscribe at https://api.trade.gov/apps/register to get one."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
