REST API v1
API Reference
Integrate sanctions screening into your applications. Screen entities, set up continuous monitoring, and receive alerts via webhooks.
Quick Start
Get started with the SanctScan API in minutes
Create an API key in your organization settings at Settings → API Keys
curl -X POST https://sanctscan.app/api/v1/screen \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"name": "John Smith"}'Authentication
All API requests require authentication using an API key. Include your API key in the x-api-key header.
curl -H "x-api-key: your_api_key" https://sanctscan.app/api/v1/screeningsKeep your API key secure
Never expose your API key in client-side code or public repositories. Use environment variables to store your key.
Base URL
Endpoints
/screennameThe name of the entity to screen
entityTypeType of entity: 'person', 'business', or 'organization'
countryCountry code or name for better matching
birthDateDate of birth in ISO format (YYYY-MM-DD)
curl -X POST https://sanctscan.app/api/v1/screen \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{
"name": "Viktor Sokolov",
"entityType": "person",
"country": "RU"
}'{
"success": true,
"data": {
"screeningId": "scr_abc123",
"entityId": "us_ofac:12345",
"entityName": "Viktor Sokolov",
"riskScore": 85,
"riskLevel": "high",
"confidence": 92,
"matchedSources": ["us_ofac", "eu_csl"],
"matchDetails": [
{
"dataset": "us_ofac",
"datasetLabel": "OFAC SDN",
"matchScore": 92,
"entity": {
"id": "us_ofac:12345",
"name": "Viktor SOKOLOV",
"entityType": "person",
"country": "Russia",
"programs": ["RUSSIA-EO14024"],
"listingDate": "2022-03-15"
}
}
],
"isMonitored": false
}
}/screeningspagePage number (default: 1)
pageSizeResults per page (default: 20, max: 100)
riskLevelFilter by risk level: 'low', 'medium', or 'high'
dateFromFilter screenings from this date (ISO format)
dateToFilter screenings up to this date (ISO format)
searchSearch by entity name
curl "https://sanctscan.app/api/v1/screenings?riskLevel=high&pageSize=10" \
-H "x-api-key: your_api_key"{
"success": true,
"data": [
{
"id": "scr_abc123",
"entityId": "us_ofac:12345",
"entityName": "Viktor Sokolov",
"query": "Viktor Sokolov",
"riskScore": 85,
"riskLevel": "high",
"matchedSources": ["us_ofac", "eu_csl"],
"isMonitored": true,
"timestamp": "2024-01-15T10:30:00Z"
}
],
"meta": {
"pagination": {
"page": 1,
"pageSize": 10,
"total": 42,
"totalPages": 5
}
}
}/monitorsscreeningIdThe ID of a previous screening to monitor
riskThresholdAlert threshold for risk score changes (default: 30)
curl -X POST https://sanctscan.app/api/v1/monitors \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{
"screeningId": "scr_abc123",
"riskThreshold": 50
}'{
"success": true,
"data": {
"id": "mon_xyz789",
"screeningId": "scr_abc123",
"isActive": true,
"isNew": true
}
}/monitorspagePage number (default: 1)
pageSizeResults per page (default: 20, max: 100)
curl https://sanctscan.app/api/v1/monitors \
-H "x-api-key: your_api_key"Webhooks
Configure webhooks in your organization settings to receive real-time notifications when monitored entities have status changes.
When a monitored entity's risk status changes, we'll send a POST request to your webhook URL.
{
"event": "alert.created",
"timestamp": "2024-01-15T14:30:00Z",
"organization": {
"id": "org_abc123",
"slug": "acme-corp",
"name": "Acme Corporation"
},
"alert": {
"id": "alt_def456",
"monitorId": "mon_xyz789",
"entityId": "us_ofac:12345",
"entityName": "Viktor Sokolov",
"oldRiskScore": 45,
"newRiskScore": 85,
"oldRiskLevel": "medium",
"newRiskLevel": "high",
"oldLists": [],
"newLists": ["OFAC SDN"],
"timestamp": "2024-01-15T14:30:00Z"
}
}When a monitored entity's risk status increases
When an alert is resolved by a user
Error Codes
All errors follow a consistent format with a code and message.
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Name is required"
}
}| Code | Status | Description |
|---|---|---|
INVALID_API_KEY | 401 | Invalid or missing API key |
VALIDATION_ERROR | 400 | Invalid request parameters |
NOT_FOUND | 404 | Resource not found |
CONFLICT | 409 | Entity already being monitored |
TIER_LIMIT_EXCEEDED | 403 | Monthly quota exceeded |
INTERNAL_ERROR | 500 | Server error |
Supported Sanctions Lists
We screen against the following major sanctions lists, updated daily.
| Source ID | Name | Region |
|---|---|---|
us_ofac | OFAC SDN List | US |
us_csl | US Consolidated Screening List | US |
eu_csl | EU Consolidated Sanctions List | EU |
uk_csl | UK Sanctions List | UK |
un_csl | UN Consolidated Sanctions List | Global |
au_dfat | DFAT Consolidated List | AU |
ch_seco | Swiss SECO Sanctions List | CH |
ca_gac | Canada Global Affairs (GAC) Autonomous Sanctions | CA |
jp_mof | Japan Ministry of Finance Sanctions | JP |
Cookie Preferences
We use cookies to analyze site traffic and improve your experience. You can choose to accept or decline non-essential cookies.