sanctions.io Monitoring API

Continuous monitoring entries, alerts, and result review.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sanctions-io-monitoring-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sanctions-io-monitoring-api-openapi.yml Raw ↑
openapi: 3.0.3
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:
  parameters:
    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
    monitoringResultId:
      name: monitoring_result_id
      in: path
      required: true
      description: The monitoring result identifier.
      schema:
        type: string
    page:
      name: page
      in: query
      required: false
      description: Page number for paginated results.
      schema:
        type: integer
        example: 1
  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.
  schemas:
    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
    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
  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.'