openapi: 3.0.3
info:
title: sanctions.io Account Management Batch Screening API
description: The sanctions.io API provides sanctions, PEP (politically exposed persons), and criminal watchlist screening for AML compliance. It covers the Screening API (v2.3) - real-time single search, batch screening of up to 10,000 records per request, adverse media search, data source listing, and full database export - and the Monitoring API (v3.1) for continuous monitoring with alerts, plus account management (tokens, company and webhook configuration, users, plans, usage). All requests require a Bearer API token in the Authorization header; the API version is selected with the Accept header, for example "application/json; version=2.3" (the adverse media endpoint requires version=3.0). Sign up for a self-serve 7-day free trial at https://api.sanctions.io/users/signup to obtain a key.
version: '2.3'
contact:
name: sanctions.io
url: https://www.sanctions.io
email: info@sanctions.io
termsOfService: https://www.sanctions.io/terms-of-service
servers:
- url: https://api.sanctions.io
description: Production
security:
- bearerAuth: []
tags:
- name: Batch Screening
description: Screen up to 10,000 names in a single request.
paths:
/search/batch/:
get:
operationId: listBatchScreenings
tags:
- Batch Screening
summary: List batch screenings
description: Returns a paginated list of batch screening requests submitted by your account.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/page'
responses:
'200':
description: Paginated list of batch screenings.
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createBatchScreening
tags:
- Batch Screening
summary: Create a batch screening
description: Screens up to 10,000 names in a single API request - ideal for periodic customer base audits, bulk vendor onboarding, or regulatory reporting. Each record supports the same parameters as real-time screening. Webhook events notify you when batch results are ready.
parameters:
- $ref: '#/components/parameters/acceptVersion'
requestBody:
required: true
content:
application/json:
schema:
type: array
maxItems: 10000
items:
$ref: '#/components/schemas/BatchScreeningRecord'
example:
- external_identifier: customer-identifier-1
name: Walther White
min_score: '0.88'
entity_type: individual
data_source: FSL
- external_identifier: customer-identifier-2
name: Pied Piper
entity_type: entity
min_score: '0.88'
data_source: FSL
responses:
'201':
description: Batch screening accepted for processing.
'401':
$ref: '#/components/responses/Unauthorized'
/search/batch/{batch_query_id}/:
get:
operationId: retrieveBatchScreening
tags:
- Batch Screening
summary: Retrieve a batch screening
description: Retrieves a batch screening request and its processing status by ID.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/batchQueryId'
responses:
'200':
description: Batch screening detail.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteBatchScreening
tags:
- Batch Screening
summary: Delete a batch screening
description: Deletes a batch screening request by ID.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/batchQueryId'
responses:
'204':
description: Batch screening deleted.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/search/batch-result/{batch_result_id}/:
get:
operationId: getBatchScreeningResult
tags:
- Batch Screening
summary: Get a batch screening result
description: Retrieves the results of a completed batch screening by result ID.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- name: batch_result_id
in: path
required: true
description: The batch result identifier.
schema:
type: string
responses:
'200':
description: Batch screening results.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
batchQueryId:
name: batch_query_id
in: path
required: true
description: The batch screening identifier.
schema:
type: string
acceptVersion:
name: Accept
in: header
required: false
description: Selects the API version, e.g. "application/json; version=2.3". Without the header, version 1.0 is used by default.
schema:
type: string
example: application/json; version=2.3
page:
name: page
in: query
required: false
description: Page number for paginated results.
schema:
type: integer
example: 1
schemas:
BatchScreeningRecord:
type: object
required:
- name
- min_score
- data_source
properties:
external_identifier:
type: string
name:
type: string
min_score:
type: string
example: '0.88'
entity_type:
type: string
enum:
- individual
- entity
- vessel
- aircraft
data_source:
type: string
country:
type: string
date_of_birth:
type: string
format: date
identifier:
type: string
name_match_boosting_threshold:
type: number
format: float
Error:
type: object
properties:
detail:
type: string
PaginatedList:
type: object
properties:
count:
type: integer
next:
type: string
nullable: true
previous:
type: string
nullable: true
results:
type: array
items:
type: object
responses:
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication credentials were not provided or are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
detail: Authentication credentials were not provided.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API token from the sanctions.io user portal, passed as "Authorization: Bearer {token}". The token may also be sent as a URL parameter, but the Authorization header is recommended.'