Docs / REST API

GET /v1/norm/{cite}

Article text + act + status + freshness + provenance; as_of=YYYY-MM-DD → point-in-time

Returns the article with the trust envelope. With as_of, the text is served from the amendment reconstruction (point-in-time, 'git for law') with the governing act attributed; without it — the current consolidated text.

Endpoint

GET https://api.lexatlas.creatora.app/v1/norm/{cite}

Parameters

NameInRequiredTypeDescription
citepathyesstringNormalized citation id: jur:code:article_no[:lang], e.g. ru:gk_rf_1:196 or kz:gk_kz_1:178. One scheme across all jurisdictions.
langquerynostringru|en trust-envelope language
as_ofquerynostringYYYY-MM-DD — reconstruct the text as of this date
contextquerynostringthe request text (a claim, a question). When the cite names an act by number without a year and several acts carry that number (not_found_reason=ambiguous_number, e.g. ru:fz_244:5), the act whose meaning matches this text is chosen: resolved_reason=act_number_context, context_scores, same_number_acts. No clear winner — the candidates as before

Example

curl -H "X-API-Key: lxa_YOUR_KEY" \
  "https://api.lexatlas.creatora.app/v1/norm/ru:gk_rf_1:196"

Responses and error codes

StatusMeaningSchema
200article + trust envelope (+ as_of_state, governing_act when as_of)object
400bad request — see error_code (missing_parameter, invalid_parameter, invalid_body, invalid_cursor, empty_batch, batch_too_large, unsupported)Error
401missing/invalid API key (when auth is enabled) — error_code=unauthorizedError
413body too large — error_code=payload_too_largeError
429rate limit exceeded (per-key, per-minute window) — error_code=rate_limitedError

Errors use one envelope everywhere: error, error_code, hint, http_status. The full list of codes is served by GET /v1/errors.