Screen anyone against sanctions, PEP & adverse media — in one call.
PROOViD AML is a multi-tenant screening API. Send a subject; get back a decision
(Pass / Review / Fail), a risk band, and the matched
watchlist entities — with ongoing monitoring and signed webhooks built in.
https://aml-screening.dloizides.com# Screen a subject (authenticate as a tenant with your API key)
curl -X POST https://aml-screening.dloizides.com/v1/screenings/check \
-H "X-Api-Key: aml_live_…" \
-H "Content-Type: application/json" \
-d '{ "fullName": "Vladimir Petrov", "nationality": "ru", "threshold": 0.85 }'
→ 201 Created with decision, riskScore, riskBand and matchedEntities[].
Quickstart in five steps
- Get a token Authenticate to PROOViD's IdP —
client_credentialsfor machines, hosted login (PKCE) for humans. Authentication → - Onboard a tenant One call (
POST /v1/tenants) provisions the tenant, its first API key, a risk profile and an optional webhook. The API key + webhook secret are returned once. - Screen a subject
POST /v1/screenings/checkwith the API key. Act ondecision. - Bulk & monitor Screen up to 1,000 subjects per request (JSON or CSV) and set
monitor: trueto be alerted when a subject's outcome changes. - Receive webhooks Verify the HMAC-SHA256 signature on
screening.completed/monitoring.alertdeliveries. Webhooks →
Explore the docs
Authentication
Machine client_credentials, human hosted-login, tenant X-Api-Key, and the dual-authority model.
API reference
The live, interactive OpenAPI reference — every endpoint, schema and status code.
Webhooks
Events, payloads and the exact HMAC-SHA256 verification recipe (Node & Python).
Errors & quota
RFC 7807 problem details, the full status-code map, and monthly screening quotas.
The screening model
Every screen returns a decision you can act on directly:
| decision | Meaning | Typical action |
|---|---|---|
| Fail | Strong sanctions / criminal hit. | Block / escalate. |
| Review | PEP or a possible match. | Route to a human reviewer. |
| Pass | Clean — no relevant matches. | Proceed. |
Each result also carries a numeric riskScore (0–100) and a riskBand
(Low/Medium/High) computed by the risk engine, plus the
matchedEntities[] that drove it.