Docs / REST API
POST /v1/citecheck
Check ALL legal references in a text against the corpus
Finds citations that are not in the corpus or are no longer in force; each finding carries the date the corpus last checked the source. Body: EITHER application/json {text, jur} OR text/plain. Malformed JSON or JSON without a non-empty `text` returns 400 — never a silent zero: a quiet {total:0} on a broken document would look exactly like 'no violations found'.
Endpoint
POST https://api.lexatlas.creatora.app/v1/citecheck
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| default_jur | query | no | string | jurisdiction assumed for bare citations |
Request body
JSON object.
| Field | Type | Description |
|---|---|---|
| text | string | |
| jur | string |
Example
curl -X POST -H "X-API-Key: lxa_YOUR_KEY" -H "Content-Type: application/json" \
-d '{"cites": ["ru:gk_rf_1:196"]}' \
"https://api.lexatlas.creatora.app/v1/citecheck"
Responses and error codes
| Status | Meaning | Schema |
|---|---|---|
| 200 | per-citation verdicts: ok / repealed / not_found | 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.