Screen individuals against global sanctions lists, PEP registries, and adverse media databases. The Dossiers API provides three complementary endpoints:
- Screening Requests — Submit an individual for asynchronous background screening and ongoing monitoring. Matches create Screening Alerts for your compliance team to review.
- Sanctions Search — Search global sanctions lists directly by name, country, or ID number. Returns matching sanction list entries in real time.
- PEP & High-Risk Search — Search for Politically Exposed Persons and high-risk individuals by name. Returns detailed dossiers with risk scores in real time.
Screening Requests
Creating a Request
Costs 10 credits per request.
Submit a POST /screening/request with the individual's name and optional details:
Code
Request Fields
| Field | Required | Description |
|---|---|---|
fullName | Yes | Full name of the individual to screen |
externalId | No | Your own reference ID (e.g. customer ID, case number) for correlating results with your systems |
dateOfBirth | No | Date of birth in YYYY-MM-DD format |
country | No | ISO 3166-1 alpha-2 country code |
identificationDocument | No | ID document details (type, number, optional country) to improve match accuracy |
Providing additional details like dateOfBirth, country, and identificationDocument helps the screening engine reduce false positives.
Response
Code
The requestId identifies the screening request. Screening runs asynchronously — when processing completes, you'll receive webhook events and any matches will appear as Screening Alerts in the Dossiers Dashboard.
Screening Workflow
- Request created —
amlScreening.screeningRequest.createdwebhook fires - Request queued — Checked against sanctions lists, PEP registries, and adverse media
- Request completed —
amlScreening.screeningRequest.completedwebhook fires - Alerts triggered — If matches are found,
amlScreening.screeningAlert.triggeredfires for each alert
Data Sources
The screening engine checks against:
| Source | Coverage |
|---|---|
| OFAC | U.S. Office of Foreign Assets Control sanctions |
| UN | United Nations Security Council consolidated list |
| FCDO | UK Foreign, Commonwealth & Development Office sanctions |
| DFAT | Australian Department of Foreign Affairs and Trade sanctions |
| CASL | Canadian Autonomous Sanctions List |
| INTERPOL | International Criminal Police Organization notices |
| PEP Registries | Politically Exposed Persons databases |
| Adverse Media | News and media sources flagging financial crime, corruption, etc. |
Screening Alerts
A positive match raises a screening alert, delivered to you on the
amlScreening.screeningAlert.triggered webhook and reviewed in your Dossiers
Dashboard. The webhook payload carries the alert id used below.
Deleting an Alert
Code
Code
Free — this endpoint consumes no credits.
This deletes the screening behind the alert, not just the finding. Going with the alert are the screening request it was raised for, any other alerts raised from that same request, and every comment on them. That is deliberate: an alert is a verdict about a screening, so keeping the request while dropping the alert would turn "this name matched a sanctions list" into "this name was screened and matched nothing" — a materially different compliance record.
If you want to keep the screening on file and only discard the finding, mark the matches as false positives in the dashboard instead of deleting.
Deletion is immediate and irreversible, with no copy to restore from. An
amlScreening.screeningAlert.deleted webhook fires once it is done, and a
second delete of the same id returns 404.
| Status | Meaning |
|---|---|
200 | Deleted, along with everything raised with it |
401 | Missing or invalid API key |
403 | API key has no AML Screening product access |
404 | No such alert in your organization — a wrong id, or already deleted |
Alerts your organization still holds are also deleted automatically once they pass your data retention window.
Sanctions Search
Searching Sanctions Lists
Costs 5 credits per request.
Search directly against the consolidated sanctions data using POST /sanctions/search:
Code
Request Fields
| Field | Required | Description |
|---|---|---|
fullName | No* | Full name of the individual to search for |
idNumbers | No* | Identification document numbers to search for (matched independently of the name) |
sources | No | Restrict the search to specific sanction sources (e.g. ofac, un) |
countries | No | Restrict matches to specific countries |
*Provide at least a fullName or idNumbers.
Response
Returns totalHits, the parsed searchingFor terms, and an array of matching sanction list documents, each describing the listed individual and the source list it appears on.
PEP & High-Risk Individual Search
Searching for Individuals
Costs 3 credits per request.
Search for PEPs and high-risk individuals by name using POST /high-risk/search:
Code
Request Fields
| Field | Required | Description |
|---|---|---|
fullName | Yes | Full name of the individual to search for |
Every API search runs fresh against all data sources and returns high-risk profiles only.
Response
Returns an array of IndividualDossier objects. Each dossier contains:
Code
Risk Scorecard
Each dossier includes an AI-generated risk scorecard:
| Field | Description |
|---|---|
overallRiskScore | Risk score from 0.0 (low risk) to 1.0 (high risk) |
riskCategory | Classification: "high", "medium", or "low" |
riskReasoning | Narrative explanation of the risk assessment |
pepScorecard.pepLikelihoodScore | PEP likelihood from 0.0 to 1.0 |
pepScorecard.category | PEP category (e.g. "Head of State", "Senior Government Official") |
pepScorecard.reasoningSteps | Step-by-step reasoning for the PEP score |
Webhook Events
Screening Request Events
| Event | When it fires |
|---|---|
amlScreening.screeningRequest.created | Fires immediately when a new screening request is submitted. Use this to confirm receipt and track processing in your system |
amlScreening.screeningRequest.completed | Fires when the screening engine has finished processing the request against all data sources. Check for associated alerts after receiving this event |
Example: amlScreening.screeningRequest.completed payload
Code
Screening Alert Events
| Event | When it fires |
|---|---|
amlScreening.screeningAlert.triggered | Fires when a positive match is found against sanctions lists or high-risk individual dossiers. An alert is only triggered when at least one match is not marked as a false positive. The payload includes the full alert with all matches and scoring criteria |
amlScreening.screeningAlert.statusChanged | Fires when an alert's status transitions between TRIGGERED, INVESTIGATING, DISMISSED, or ACTIONED. Use this to sync alert status with your compliance workflow |
amlScreening.screeningAlert.commentAdded | Fires when a compliance team member adds a comment to an alert. Useful for audit trail integration |
amlScreening.screeningAlert.commentUpdated | Fires when a comment on an alert is edited |
amlScreening.screeningAlert.commentDeleted | Fires when a comment is removed from an alert |
amlScreening.screeningAlert.deleted | Fires when an alert is permanently deleted |
Example: amlScreening.screeningAlert.triggered payload
Code
Alert Match Scoring
Each match (dossier or watchlist) includes a scoring object with the criteria used to evaluate the match:
| Field | Description |
|---|---|
nameMatch.aggregateScore | Overall name similarity score (0.0–1.0) |
nameMatch.abbreviatedMatch | Whether the match was based on an abbreviated name |
nameMatch.nameCommonalityScore | How common the name is (higher = more common, so less distinctive) |
idDocMatch | Whether the identification document matched |
dobMatch.exactMatch | Whether the date of birth matched exactly |
dobMatch.approxAgeDelta | Approximate age difference in years |
countryMatch | Whether the country matched |
matchConfidence | Overall confidence score for the match (0.0–1.0) |
reasoning | AI-generated explanation of why this was flagged as a match |
Alert Lifecycle
Alerts move through these statuses as your compliance team reviews them:
| Status | Meaning |
|---|---|
TRIGGERED | New match found, pending review |
INVESTIGATING | Compliance team is actively reviewing the alert |
DISMISSED | Alert reviewed and determined to be a false positive or non-issue |
ACTIONED | Alert confirmed and appropriate action has been taken |
See the Webhooks guide for setup and signature verification details.

