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/complyadvantage:complyadvantage-searches-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
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: ComplyAdvantage Searches API
description: The ComplyAdvantage REST API screens people and companies against sanctions and watchlists, warnings and fitness-probity lists, politically exposed persons (PEPs and RCAs), and adverse media, and keeps them under ongoing monitoring.
version: '1.0'
contact:
name: ComplyAdvantage
url: https://complyadvantage.com
servers:
- url: https://api.complyadvantage.com
description: EU (default)
- url: https://api.us.complyadvantage.com
description: US
- url: https://api.ap.complyadvantage.com
description: APAC
security:
- apiKeyAuth: []
tags:
- name: Searches
description: Create and manage AML screening searches against sanctions, PEP, warning, and adverse media data.
paths:
/searches:
post:
operationId: createSearch
tags:
- Searches
summary: Create a new search
description: Screens a search term (person, company, organisation, vessel, or aircraft name) against ComplyAdvantage's sanctions, warning, fitness-probity, PEP, and adverse media data, returning matching entities as hits. Supports fuzziness, exact match mode, filters, tags, client references, and pagination via offset/limit.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchRequest'
responses:
'200':
description: The created search with matching hits.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchEnvelope'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
get:
operationId: listSearches
tags:
- Searches
summary: List previous searches
description: Lists previous searches with filtering (match status, risk level, assignee, searcher, created date range, client reference, tags, monitored state), sorting, and pagination.
parameters:
- name: search_term
in: query
schema:
type: string
- name: client_ref
in: query
schema:
type: string
- name: monitored
in: query
schema:
type: string
- name: page
in: query
schema:
type: integer
- name: per_page
in: query
schema:
type: integer
responses:
'200':
description: A paginated list of searches.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchListEnvelope'
'401':
$ref: '#/components/responses/Unauthorized'
/searches/{id}:
get:
operationId: getSearch
tags:
- Searches
summary: Retrieve a search
description: Retrieves the overview of a single search by ID or ref.
parameters:
- $ref: '#/components/parameters/SearchId'
responses:
'200':
description: The search overview.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchEnvelope'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateSearch
tags:
- Searches
summary: Update search details
description: Updates case-management details of a search - the assigned user, match status (no_match, false_positive, potential_match, true_positive, true_positive_approve, true_positive_reject), and risk level (low, medium, high, unknown).
parameters:
- $ref: '#/components/parameters/SearchId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
match_status:
type: string
risk_level:
type: string
assignee_id:
type: integer
responses:
'200':
description: The updated search.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchEnvelope'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteSearch
tags:
- Searches
summary: Delete a search
description: Deletes a search from your account.
parameters:
- $ref: '#/components/parameters/SearchId'
responses:
'200':
description: Deletion confirmation.
'404':
$ref: '#/components/responses/NotFound'
/searches/{id}/details:
get:
operationId: getSearchDetails
tags:
- Searches
summary: Retrieve full search results
description: Retrieves the full detail of a search including all hits, each with the matched entity document (name, aka, associates, sources, types, fields, media), match types, score, whitelisting, and match status.
parameters:
- $ref: '#/components/parameters/SearchId'
responses:
'200':
description: Full search details with hits.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchEnvelope'
'404':
$ref: '#/components/responses/NotFound'
/searches/{ref}/entities/{entity_provider}:
get:
operationId: getSearchEntities
tags:
- Searches
summary: Retrieve paginated search entities
description: Retrieves the matching entities of a search in paginated form.
parameters:
- name: ref
in: path
required: true
schema:
type: string
description: The search ref.
- name: entity_provider
in: path
required: true
schema:
type: string
description: The entity data provider.
responses:
'200':
description: Paginated entities for the search.
'404':
$ref: '#/components/responses/NotFound'
/searches/{id}/certificate:
get:
operationId: getSearchCertificate
tags:
- Searches
summary: Download search certificate
description: Downloads a PDF certificate of the search for audit and recordkeeping purposes.
parameters:
- $ref: '#/components/parameters/SearchId'
responses:
'200':
description: The search certificate PDF.
content:
application/pdf:
schema:
type: string
format: binary
'404':
$ref: '#/components/responses/NotFound'
/searches/{id}/entities:
patch:
operationId: updateSearchEntities
tags:
- Searches
summary: Update entity details on a search
description: Updates details of matched entities within a search - whitelist status (suppress recurring false positives), risk level, and per-entity match status.
parameters:
- $ref: '#/components/parameters/SearchId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
entities:
type: array
items:
type: string
is_whitelisted:
type: boolean
match_status:
type: string
risk_level:
type: string
responses:
'200':
description: The updated entities.
'404':
$ref: '#/components/responses/NotFound'
/searches/references:
post:
operationId: createSearchReferences
tags:
- Searches
summary: Create search references
description: Creates search references for tracking searches by your own identifiers.
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: The created references.
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
Search:
type: object
properties:
id:
type: integer
ref:
type: string
search_term:
type: string
match_status:
type: string
risk_level:
type: string
total_hits:
type: integer
total_matches:
type: integer
created_at:
type: string
updated_at:
type: string
tags:
type: array
items:
type: object
share_url:
type: string
hits:
type: array
items:
$ref: '#/components/schemas/Hit'
Hit:
type: object
properties:
doc:
type: object
description: The matched entity - id, name, entity_type, aka, associates, sources, types, fields, and media references.
match_types:
type: array
items:
type: string
match_types_details:
type: object
score:
type: number
is_whitelisted:
type: boolean
match_status:
type: string
SearchListEnvelope:
type: object
properties:
status:
type: string
content:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Search'
SearchRequest:
type: object
required:
- search_term
properties:
search_term:
description: The name to screen, either a string (max 255 chars) or an object with last_name (required), first_name, and middle_names.
oneOf:
- type: string
- type: object
properties:
first_name:
type: string
middle_names:
type: string
last_name:
type: string
client_ref:
type: string
description: Your internal reference; enables client-scoped whitelisting.
fuzziness:
type: number
minimum: 0.0
maximum: 1.0
description: Match strictness from 0.0 (exact) to 1.0 (broad).
exact_match:
type: boolean
description: Disables fuzzy matching when true; overrides fuzziness.
search_profile:
type: string
description: ID of a predefined search profile configuration.
offset:
type: integer
default: 0
limit:
type: integer
default: 100
maximum: 100
share_url:
type: integer
enum:
- 0
- 1
description: Include a publicly shareable URL in the response.
tags:
type: object
description: Key-value pairs using pre-configured tag names.
filters:
type: object
properties:
types:
type: array
items:
type: string
description: Risk categories such as sanction, warning, fitness-probity, pep, pep-class-1 through pep-class-4, adverse-media, and adverse media subcategories.
birth_year:
type: integer
remove_deceased:
type: string
enum:
- '0'
- '1'
country_codes:
type: array
items:
type: string
description: ISO 3166-1 alpha-2 codes; applies to PEP entities.
entity_type:
type: string
enum:
- person
- company
- organisation
- vessel
- aircraft
SearchEnvelope:
type: object
properties:
status:
type: string
content:
type: object
properties:
data:
$ref: '#/components/schemas/Search'
responses:
Unauthorized:
description: Missing or invalid API key.
NotFound:
description: The search or resource was not found.
TooManyRequests:
description: Rate limit exceeded (600 calls/minute on standard contracts, 300 on sandbox). Retry with exponential backoff starting at 2 seconds, capped at 60 seconds.
parameters:
SearchId:
name: id
in: path
required: true
schema:
type: string
description: The search ID or ref.
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: Authorization
description: 'API key sent as: Authorization: Token YOUR_API_KEY. Keys are generated in the ComplyAdvantage web platform.'