Docs / REST API

GET /v1/search

Hybrid search (FTS + vector, RRF) across jurisdictions and languages

Endpoint

GET https://api.lexatlas.creatora.app/v1/search

Parameters

NameInRequiredTypeDescription
qqueryyesstringquery in any corpus language
jurquerynostringjurisdiction filter (csv), e.g. ru,kz
kquerynointegertop-k (default 8); `limit` is accepted as a synonym
limitquerynointegersynonym of k

Example

curl -H "X-API-Key: lxa_YOUR_KEY" \
  "https://api.lexatlas.creatora.app/v1/search?q=<q>"

Responses and error codes

StatusMeaningSchema
200ranked hits with cite ids, snippets, licence and signal (vector/FTS); `jur_filter` (present only when `jur` was given) states whether we KNOW the named jurisdictions: {requested, unknown[], known, rows, note}. unknown is a LIST, so a mixed `ru,zz` names which one we lack. Empty results with known=true is an honest zero about the LAW; known=false is a fact about OUR coverageobject
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.