Quota & limits
Quota & limits

Monthly screening quota.

Each tenant has a fair-use monthly screening cap. It counts API screens for the current calendar month; ongoing-monitoring re-screens do not count against it.

What counts

  • Counted: each subject screened via POST /v1/screenings/check, and each row of a bulk request (POST /v1/screenings/bulk, max 1,000 rows).
  • Not counted: automatic re-screens performed by ongoing monitoring, and reads (GET /v1/screenings/{id}, GET /v1/lists/version, GET /v1/usage).
  • Idempotent retries: a screen replayed with the same Idempotency-Key returns the original result and is not re-counted.

The counter resets at the start of each calendar month. A null quota means unlimited.

Read your usage

Any tenant credential can read its own current-month usage:

curl https://aml-screening.dloizides.com/v1/usage \
  -H "X-Api-Key: aml_live_…"
{
  "used": 12840,
  "limit": 50000,
  "remaining": 37160,
  "unlimited": false
}

At the cap

Once the cap is reached, screening calls return 429 Too Many Requests with an RFC 7807 body. Reads and usage checks keep working.

HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json

{ "status": 429, "detail": "Monthly screening quota exceeded (50000/50000)." }
Poll GET /v1/usage and back off as you approach the limit rather than driving into repeated 429s. See retry guidance.

Setting a quota (admin)

An admin sets or clears a tenant's monthly cap. Pass null for unlimited.

curl -X PUT https://aml-screening.dloizides.com/v1/tenants/{id}/quota \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "monthlyScreeningQuota": 50000 }'

A quota can also be set at onboarding via the monthlyScreeningQuota field on POST /v1/tenants.