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

Screening Detail

Retrieve the full details of a previous screening by its ID.

GET /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.

GET /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.

GET /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.

POST /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.

GET /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.

GET /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