API Documentation
Integrate PEP and sanctions screening into your application with the EasyPEPCheck API.
Data Sources
Our API screens against EU Consolidated Sanctions, OFAC SDN, UN Sanctions, UK FCDO Sanctions, and international PEP databases. Lists are updated twice daily.
Authentication
All API endpoints require authentication using a Bearer token. Include your access token in the Authorization header.
Authorization: Bearer YOUR_ACCESS_TOKEN
To obtain an access token, log in via POST /api/auth/login/json with your email and password. Tokens expire after 30 minutes. Use the refresh token to obtain a new access token.
Base URL
https://api.easypepcheck.com
Search
Screen a person or entity against sanctions lists and PEP databases. Each search consumes 1 credit.
/api/search
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Full name to search (first name + last name) |
| birth_date | string | No | Date of birth (YYYY-MM-DD). Matches within ±2 years. |
| place_of_birth | string | No | ISO 2 country code (e.g., RU, FR, US) |
| min_score | number | No | Minimum match score 0-100. Default: 90 |
| limit | integer | No | Max results (1-100). Default: 20 |
| type | string | No | sanctions, pep, or all. Default: all |
| subject_type | string | No | person, entity, or all. Default: all |
Example Request (GET)
curl -X GET "https://api.easypepcheck.com/api/search?name=Vladimir%20Putin&type=sanctions&subject_type=person" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example Request (POST)
curl -X POST "https://api.easypepcheck.com/api/search" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Vladimir Putin",
"type": "sanctions",
"subject_type": "person",
"min_score": 91
}'
Response
{
"screening_id": 12345,
"query": "Vladimir Putin",
"birth_date": null,
"place_of_birth": null,
"type": "sanctions",
"subject_type": "person",
"total_matches": 3,
"search_time_ms": 45.2,
"matches": [
{
"id": "EU-12345",
"matched_name": "Vladimir Vladimirovich PUTIN",
"query_name": "Vladimir Putin",
"score": 98.5,
"dob_match": null,
"pob_match": null,
"source_type": "sanctions",
"details": {
"source": "EU",
"entity_type": "person",
"names": ["Vladimir Vladimirovich PUTIN"],
"birth_dates": ["1952-10-07"],
"nationalities": ["RU"],
"programs": ["Russia"],
"remarks": "President of the Russian Federation"
}
}
]
}
Screening Detail
Retrieve the full details of a previous screening by its ID.
/api/screening/{screening_id}
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| screening_id | integer | The unique screening ID returned from a search |
Example Request
curl -X GET "https://api.easypepcheck.com/api/screening/12345" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
"id": 12345,
"query_name": "Vladimir Putin",
"birth_date": null,
"place_of_birth": null,
"search_type": "sanctions",
"subject_type": "person",
"min_score": 91.0,
"total_matches": 3,
"search_time_ms": 45.2,
"matches": [...],
"source_versions": {
"EU": 20260116,
"OFAC": 20260116,
"UN": 20260115
},
"created_at": "2026-01-16T10:30:00Z"
}
Export PDF
Generate an audit-ready PDF report for a screening. The PDF includes screening details, results, methodology, and a SHA-256 hash for integrity verification.
/api/export/pdf/{screening_id}
Example Request
curl -X GET "https://api.easypepcheck.com/api/export/pdf/12345" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o screening_report.pdf
Returns a PDF file with Content-Type: application/pdf.
Screening History
Retrieve a paginated list of all screenings performed by your account.
/api/history
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| page | integer | 1 | Page number (starting from 1) |
| page_size | integer | 20 | Items per page (1-100) |
Example Request
curl -X GET "https://api.easypepcheck.com/api/history?page=1&page_size=20" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
"total": 156,
"page": 1,
"page_size": 20,
"items": [
{
"id": 12345,
"query_name": "Vladimir Putin",
"birth_date": null,
"place_of_birth": null,
"search_type": "sanctions",
"subject_type": "person",
"min_score": 91.0,
"total_matches": 3,
"search_time_ms": 45.2,
"created_at": "2026-01-16T10:30:00Z"
},
...
]
}
Bulk Screening - Upload CSV
Upload a CSV file to screen multiple names in the background. Each row consumes 1 credit. Results are added to your screening history.
/api/bulk/upload
CSV Format
| Column | Required | Description |
|---|---|---|
| name | Yes | Full name to screen |
| list_type | No | sanctions, pep, or all. Default: all |
| subject | No | person, entity, or all. Default: all |
| date_of_birth | No | Date of birth (YYYY-MM-DD) |
| place_of_birth | No | ISO 2 country code |
Example CSV
name,list_type,subject,date_of_birth,place_of_birth
Vladimir Putin,sanctions,person,1952-10-07,RU
John Smith,all,person,,
ACME Corp,sanctions,entity,,
Example Request
curl -X POST "https://api.easypepcheck.com/api/bulk/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@screening_list.csv"
Response
{
"job_id": 789,
"status": "pending",
"total_rows": 150
}
Bulk Screening - List Jobs
Retrieve a list of your bulk screening jobs.
/api/bulk/jobs
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| page | integer | 1 | Page number |
| page_size | integer | 20 | Items per page (1-100) |
Example Request
curl -X GET "https://api.easypepcheck.com/api/bulk/jobs" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
"total": 5,
"page": 1,
"page_size": 20,
"items": [
{
"id": 789,
"filename": "screening_list.csv",
"status": "completed",
"total_rows": 150,
"processed_rows": 150,
"matched_rows": 23,
"failed_rows": 0,
"error_message": null,
"created_at": "2026-01-16T09:00:00Z",
"started_at": "2026-01-16T09:00:01Z",
"completed_at": "2026-01-16T09:02:30Z"
}
]
}
Bulk Screening - Job Status
Get the status and progress of a specific bulk screening job.
/api/bulk/jobs/{job_id}
Job Status Values
| Status | Description |
|---|---|
| pending | Job created, waiting to start |
| processing | Currently processing rows |
| completed | All rows processed successfully |
| failed | Job failed (see error_message) |
Example Request
curl -X GET "https://api.easypepcheck.com/api/bulk/jobs/789" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
"id": 789,
"filename": "screening_list.csv",
"status": "processing",
"total_rows": 150,
"processed_rows": 75,
"matched_rows": 12,
"failed_rows": 0,
"error_message": null,
"created_at": "2026-01-16T09:00:00Z",
"started_at": "2026-01-16T09:00:01Z",
"completed_at": null
}
Error Codes
| Code | Description |
|---|---|
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or expired token |
| 402 | Payment Required - Insufficient credits |
| 404 | Not Found - Resource doesn't exist |
| 503 | Service Unavailable - Try again later |