sanctions.io Monitoring API
Continuous monitoring entries, alerts, and result review.
Continuous monitoring entries, alerts, and result review.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/sanctions-io-monitoring-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: sanctions.io Account Management Monitoring 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: Monitoring
description: Continuous monitoring entries, alerts, and result review.
paths:
/monitoring/:
get:
operationId: getMonitoringList
tags:
- Monitoring
summary: List monitoring entries
description: Returns the list of monitored entities. Supports pagination and search, filtering by alerts, review status, and combined filters.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/page'
- name: page_size
in: query
required: false
description: Number of entries per page.
schema:
type: integer
- name: search
in: query
required: false
description: Search term to filter monitoring entries.
schema:
type: string
- name: alerts
in: query
required: false
description: Filter entries by whether they have open alerts.
schema:
type: boolean
- name: review_status
in: query
required: false
description: Filter entries by review status.
schema:
type: string
responses:
'200':
description: Paginated list of monitoring entries.
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createMonitoringEntry
tags:
- Monitoring
summary: Create a monitoring entry
description: Adds an entity to continuous monitoring. The entity is re-screened against the selected data sources as lists update, and new matches or record changes raise alerts (deliverable by webhook).
parameters:
- $ref: '#/components/parameters/acceptVersion'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MonitoringEntryCreate'
example:
min_score: 0.88
data_source: sdn,nonsdn
name: Walter White
country: US
entity_type: individual
date_of_birth: '1956-01-01'
external_identifier: ABC123
responses:
'201':
description: Monitoring entry created.
'401':
$ref: '#/components/responses/Unauthorized'
/monitoring/{monitoring_entry_id}/:
get:
operationId: getMonitoringEntryDetail
tags:
- Monitoring
summary: Get a monitoring entry
description: Retrieves a monitoring entry and its current match state by ID.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/monitoringEntryId'
responses:
'200':
description: Monitoring entry detail.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteMonitoringEntry
tags:
- Monitoring
summary: Delete a monitoring entry
description: Removes an entity from continuous monitoring.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/monitoringEntryId'
responses:
'204':
description: Monitoring entry deleted.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/monitoring/result/{monitoring_result_id}/:
get:
operationId: getMonitoringResultDetail
tags:
- Monitoring
summary: Get a monitoring result
description: Retrieves the detail of a monitoring result (a match raised for a monitored entity) by ID.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/monitoringResultId'
responses:
'200':
description: Monitoring result detail.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateMonitoringResult
tags:
- Monitoring
summary: Update a monitoring result
description: Reviews or resolves a monitoring result, for example marking it as a Real Positive with reviewer notes.
parameters:
- $ref: '#/components/parameters/acceptVersion'
- $ref: '#/components/parameters/monitoringResultId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: Real Positive
text:
type: string
example: Entity matches with sanctions record
responses:
'200':
description: Monitoring result updated.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
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.
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
monitoringEntryId:
name: monitoring_entry_id
in: path
required: true
description: The monitoring entry identifier.
schema:
type: string
page:
name: page
in: query
required: false
description: Page number for paginated results.
schema:
type: integer
example: 1
monitoringResultId:
name: monitoring_result_id
in: path
required: true
description: The monitoring result 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
schemas:
Error:
type: object
properties:
detail:
type: string
MonitoringEntryCreate:
type: object
required:
- name
- min_score
- data_source
properties:
min_score:
type: number
format: float
example: 0.88
data_source:
type: string
example: sdn,nonsdn
name:
type: string
example: Walter White
country:
type: string
example: US
entity_type:
type: string
enum:
- individual
- entity
- vessel
- aircraft
date_of_birth:
type: string
format: date
example: '1956-01-01'
identifier:
type: string
external_identifier:
type: string
example: ABC123
name_match_boosting_threshold:
type: number
format: float
PaginatedList:
type: object
properties:
count:
type: integer
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
type: object
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.'