API
API Documentation
Integrate sanctions screening directly into your applications with our REST API.
Getting Started
The OFACScreen API allows you to programmatically screen names and entities against OFAC and other sanctions lists. Follow these steps to get up and running:
Create an Account
Sign up for a Business or Enterprise plan to access the API.
Generate API Key
Go to your dashboard settings to generate a Bearer token.
Make Your First Call
Use the examples below to start screening against sanctions lists.
Authentication
All API requests must include a Bearer token in the Authorization header. You can generate API keys from your account dashboard.
Authorization: Bearer your_api_key_here
Keep your API key secret. Do not expose it in client-side code, public repositories, or browser requests.
Screen (Single)
/api/v1/screen/
Screen a single name or entity against all enabled sanctions lists. Returns match results with confidence scores.
Request
curl -X POST https://api.ofacscreen.com/api/v1/screen/ \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "John Smith",
"type": "individual",
"threshold": 0.3
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Name or entity to screen (max 500 characters) |
type |
string | No | "individual", "entity", "vessel", or "aircraft". Defaults to all types. |
threshold |
number | No | Minimum match score between 0.0 and 1.0. Defaults to 0.3. |
Response
{
"query": "John Smith",
"screened_at": "2026-03-04T14:30:00Z",
"total_matches": 1,
"matches": [
{
"id": 281578,
"name": "John Ka-chiu LEE",
"entry_type": "individual",
"list_code": "OFAC_SDN",
"list_name": "OFAC Specially Designated Nationals (SDN)",
"program": "HK-EO13936",
"remarks": "",
"score": 0.333,
"score_pct": 33,
"matched_alias": "John LEE",
"aliases": ["John LEE", "Ka Chiu LEE"],
"addresses": [{"city": "Kowloon", "country": "Hong Kong"}],
"identifications": [{"type": "National ID No.", "number": "G0286787"}],
"match_level": "low"
}
]
}
Screen (Batch)
/api/v1/screen/batch/
Screen multiple names or entities in a single request. Supports up to 100 names per batch. For larger batches, use the CSV upload feature in the web dashboard.
Request
curl -X POST https://api.ofacscreen.com/api/v1/screen/batch/ \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"names": ["John Smith", "Acme Trading LLC", "Jane Doe"],
"type": "individual",
"threshold": 0.3
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
names |
array | Yes | Array of name strings to screen (max 100) |
type |
string | No | "individual", "entity", "vessel", or "aircraft". Defaults to all types. |
threshold |
number | No | Minimum match score between 0.0 and 1.0. Defaults to 0.3. |
Response
{
"screened_at": "2026-03-04T14:30:00Z",
"total_screened": 3,
"results": [
{
"query": "John Smith",
"total_matches": 1,
"matches": [...]
},
{
"query": "Acme Trading LLC",
"total_matches": 0,
"matches": []
},
{
"query": "Jane Doe",
"total_matches": 0,
"matches": []
}
]
}
Lists
/api/v1/lists/
Retrieve information about all available sanctions lists, including the last update timestamp. This endpoint does not require authentication.
Request
curl https://api.ofacscreen.com/api/v1/lists/
Response
{
"lists": [
{
"code": "OFAC_SDN",
"name": "OFAC Specially Designated Nationals (SDN)",
"description": "The primary US sanctions list maintained by the Office of Foreign Assets Control.",
"country": "United States",
"last_updated": "2026-03-04T12:00:00Z"
},
{
"code": "EU_FSF",
"name": "EU Financial Sanctions (FSF)",
"description": "The European Union consolidated list of persons, groups and entities subject to EU financial sanctions.",
"country": "European Union",
"last_updated": "2026-03-04T11:00:00Z"
}
]
}
Monitoring
/api/v1/monitoring/
Manage entities for continuous monitoring. Monitored entities are automatically re-screened on every sanctions list update. You'll receive an email alert when a new match is detected.
List Entities
curl https://api.ofacscreen.com/api/v1/monitoring/ \
-H "Authorization: Bearer your_api_key_here"
{
"entities": [
{
"id": 42,
"name": "John Smith",
"entity_type": "individual",
"last_checked_at": "2026-03-04T12:00:00Z",
"last_match_found": false,
"last_match_score": 0.0
}
],
"total": 1
}
Add Entity
curl -X POST https://api.ofacscreen.com/api/v1/monitoring/ \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"name": "John Smith", "entity_type": "individual"}'
{
"id": 42,
"name": "John Smith",
"entity_type": "individual",
"created": true
}
Remove Entity
curl -X DELETE https://api.ofacscreen.com/api/v1/monitoring/ \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"id": 42}'
{"id": 42, "deleted": true}
Note: The number of monitored entities is limited by your plan. Entities are automatically screened on every sanctions list update. Email alerts are sent when a new match is detected.
Rate Limits
API usage is subject to your plan's monthly search quota. Rate limit headers are included in every response.
| Plan | Monthly Quota |
|---|---|
| Business | 10,000 searches |
| Enterprise | Unlimited |
Rate Limit Headers
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9955
If you exceed your monthly quota, you will receive a 429 Too Many Requests response with a Retry-After header.
Error Codes
The API uses standard HTTP status codes to indicate success or failure.
| Status | Description |
|---|---|
200 |
Success. Results returned. |
400 |
Bad request. Check your request parameters. |
401 |
Unauthorized. Invalid or missing API key. |
403 |
Forbidden. Your plan does not include API access. |
429 |
Rate limit exceeded. Retry after the reset period. |
500 |
Internal server error. Contact support if this persists. |
Error Response Format
{
"error": "name field is required"
}
API
Ready to Integrate?
API access is available on our Business and Enterprise plans. Start your free trial to get your API key.