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 Monitoring API
description: The sanctions.io API provides sanctions, PEP (politically exposed persons), and criminal watchlist screening for AML compliance.
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:
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
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.
parameters:
monitoringResultId:
name: monitoring_result_id
in: path
required: true
description: The monitoring result identifier.
schema:
type: string
monitoringEntryId:
name: monitoring_entry_id
in: path
required: true
description: The monitoring entry 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
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.'