Docs / REST API
GET /v1/screen
Multipolar sanctions screening: name / alias / registered ID → measures across lists
Verbatim match against the 4 published official lists (US OFAC, UK, EU, Canada): exact name → alias → registered ID (Tax ID, IMO, registration number) → trigram-fuzzy with score. No generative step. A hit is not a determination; a no-hit is qualified by list coverage and freshness (screened_lists in the response). Canadian hits carry an `attribution` line ("retrieved {date}", Open Government Licence – Canada) and a `licence_url`.
Endpoint
GET https://api.lexatlas.creatora.app/v1/screen
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| q | query | yes | string | name, alias or registered ID |
| kind | query | no | string | entity|person|vessel|aircraft (csv) |
| jur | query | no | string | imposing jurisdiction: us,uk,eu,ca (csv); outside keys: only the open lists |
| limit | query | no | integer | max matches (default 25, cap 200) |
Example
curl -H "X-API-Key: lxa_YOUR_KEY" \
"https://api.lexatlas.creatora.app/v1/screen?q=<q>"
Responses and error codes
| Status | Meaning | Schema |
|---|---|---|
| 200 | matches with match_via/score + screened_lists coverage + notes | object |
| 400 | bad request — see error_code (missing_parameter, invalid_parameter, invalid_body, invalid_cursor, empty_batch, batch_too_large, unsupported) | Error |
| 401 | missing/invalid API key (when auth is enabled) — error_code=unauthorized | Error |
| 413 | body too large — error_code=payload_too_large | Error |
| 429 | rate limit exceeded (per-key, per-minute window) — error_code=rate_limited | Error |
Errors use one envelope everywhere: error, error_code, hint, http_status. The full list of codes is served by GET /v1/errors.