Developer docs
AML Shield API Reference
Get a key from your dashboard's API Keys page and start making requests immediately — no sales call required.
Authentication
Every request is authenticated with an API key from your dashboard's API Keys page.
X-API-Key: amlk_live_xxxxxxxxxxxx
# or
Authorization: Bearer amlk_live_xxxxxxxxxxxx
Rate limits & quotas
Every response carries two headers:
X-Request-Id: 8f14e45f-...
X-Quota-Remaining: 9482
Errors
| Status | Meaning |
|---|---|
| 401 | Missing, invalid, or revoked API key |
| 403 | Your plan does not include this endpoint, or your key's IP allowlist blocked the request |
| 422 | Validation failed |
| 429 | Rate limit or monthly quota exceeded |
| 502 | The Didit verification session could not be created |
| 503 | Didit verification is not configured on this platform yet |
Webhooks
Register endpoints from your dashboard's Webhooks page to receive case.updated, monitoring.match, screening.run, and kyc.completed events (the last one fires automatically when a Didit verification session completes).
X-AML-Signature: sha256=<hmac of body using your endpoint's secret>
X-AML-Event: kyc.completed
/v1/me
Check your organization, plan, environment, and current quota usage.
curl https://ekedosltd.com//api/v1/me \ -H "X-API-Key: $KEY"
/v1/identity/didit/sessions
Didit Verification Session — real identity verification
ID document scan (OCR/MRZ), liveness detection, face match, and — depending on how the
workflow is configured — AML/PEP/adverse-media screening too. This is the comprehensive,
real verification path, powered by didit.me.
Unlike the other endpoints, this is asynchronous: create a session, redirect your end-user
to the returned URL, and receive the result via your registered kyc.completed webhook.
Request
curl https://ekedosltd.com//api/v1/identity/didit/sessions \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"name":"Jane Smith","callback_url":"https://yourapp.com/verification-complete"}'Response
{
"success": true,
"session_id": "11111111-2222-3333-4444-555555555555",
"verification_url": "https://verify.didit.me/session/abcdef123456",
"status": "Not Started",
"customer_reference": "3fa85f64-..."
}Check status — GET /v1/identity/didit/sessions/{session_id}
curl https://ekedosltd.com//api/v1/identity/didit/sessions/11111111-2222-3333-4444-555555555555 \ -H "X-API-Key: $KEY"
/v1/identity/verify
Identity Verification
Fast local structural validation. first_name, last_name, date_of_birth required.
Request
curl https://ekedosltd.com//api/v1/identity/verify \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"first_name":"Jane","last_name":"Smith","date_of_birth":"1990-05-02","email":"jane@example.com","country":"GB"}'Response
{"success":true,"status":"verified","confidence":92,"checks":{"first_name":true,"last_name":true},"issues":[],"note":"This is a fast local structural check..."}/v1/kyc/verify
KYC Verification
Local identity check + AML screening + risk score, with an optional real Didit session.
Request
curl https://ekedosltd.com//api/v1/kyc/verify \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"first_name":"Jane","last_name":"Smith","date_of_birth":"1990-05-02","email":"jane@example.com","country":"GB","request_didit_session":true}'Response
{"success":true,"decision":"approve","customer_reference":"3fa85f64-...","identity":{"status":"verified"},"screening":{"status":"clear"},"risk":{"score":8,"level":"low"},"didit_session":{"session_id":"...","verification_url":"https://verify.didit.me/session/..."}}/v1/aml/screen
AML Screening
Sanctions + PEP + adverse media in one call, against real OFAC/UN/EU/UK data.
Request
curl https://ekedosltd.com//api/v1/aml/screen \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"name":"Viktor Petrov","country":"RU"}'Response
{"success":true,"reference":"a1b2...","status":"potential_match","match_count":1,"risk_score":96,"matches":[{"name":"Viktor Petrov","score":96,"list_type":"sanction","source":"OFAC_SDN"}]}/v1/pep/screen
PEP Screening
Politically exposed person check. name required.
Request
curl https://ekedosltd.com//api/v1/pep/screen \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"name":"Robert Kingsley","country":"GB"}'Response
{"success":true,"reference":"c3d4...","status":"potential_match","is_pep":true,"match_count":1,"risk_score":60}/v1/sanctions/screen
Sanctions Screening
OFAC/UN/EU/UK list matching. name required.
Request
curl https://ekedosltd.com//api/v1/sanctions/screen \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"name":"Jane Smith","country":"GB"}'Response
{"success":true,"reference":"d4e5...","status":"clear","match_count":0,"risk_score":0}/v1/transactions/monitor
Transaction Monitoring
amount required. Optional counterparty/customer fields.
Request
curl https://ekedosltd.com//api/v1/transactions/monitor \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"amount":15000,"currency":"USD","counterparty_country":"RU"}'Response
{"success":true,"transaction_id":812,"risk_score":75,"is_flagged":true,"triggered_rules":[{"rule":"large_amount"}],"recommendation":"review"}/v1/fraud/assess
Fraud Detection
All fields optional: email, ip_address, ip_country, billing_country, device_id, amount.
Request
curl https://ekedosltd.com//api/v1/fraud/assess \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"email":"x@mailinator.com","ip_country":"NG","billing_country":"US","amount":6000}'Response
{"success":true,"fraud_score":75,"signals":["disposable_email","geo_mismatch"],"decision":"decline"}/v1/risk/score
Risk Scoring
Combine signals from other endpoints into one explainable score.
Request
curl https://ekedosltd.com//api/v1/risk/score \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"pep_hit":true,"country":"RU","flagged_transactions":2}'Response
{"success":true,"score":50,"level":"medium","factors":{"pep_hit":25},"persisted":false}/v1/documents/verify
Document Verification
Fast local metadata checks. type required.
Request
curl https://ekedosltd.com//api/v1/documents/verify \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"type":"passport","document_number":"X1234567","country":"GB","expiry_date":"2030-01-01"}'Response
{"success":true,"status":"verified","authenticity_score":100,"issues":[]}Continuous Monitoring
Enroll a previously-persisted customer for scheduled re-screening. New matches fire a monitoring.match webhook.
/v1/monitoring/enroll
curl https://ekedosltd.com//api/v1/monitoring/enroll \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"customer_reference":"3fa85f64-...","frequency":"daily","webhook_url":"https://you.example/hook"}'/v1/monitoring/subscriptions
curl https://ekedosltd.com//api/v1/monitoring/subscriptions -H "X-API-Key: $KEY"
/v1/monitoring/run
curl https://ekedosltd.com//api/v1/monitoring/run \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"customer_reference":"3fa85f64-..."}'/v1/monitoring/{reference}
curl -X DELETE https://ekedosltd.com//api/v1/monitoring/3fa85f64-... -H "X-API-Key: $KEY"
Ready to get a key?
Create your workspace →