Lawify Legal Corpus API
2026-08-14OpenAPI 3.1Read access to Uzbek legislation as versioned, citable provisions.
Every result carries an immutable id and the dates it was in force, so a stored citation still resolves after the article is amended.
IMPORTANT: an empty `data` array may mean the law is not yet loaded into Lawify, not that no such provision exists. `meta.coverage_note` says so when it applies, and https://lawify.uz/coverage lists what is loaded. Do not present absence of a result to an end user as absence of law.
This API returns legal information, not legal advice.
Tiykarǵı mánzil
https://lawify.uz/api/v1/domainscorpus:readList the fields of law you can filter by
The vocabulary for the `domains` parameter, with labels in every locale the platform serves. Call this rather than hard-coding the list: `available` reflects YOUR key's scope, so an unexpected 403 on a search is explained here without a support ticket.
Juwaplar
200The legal-domain taxonomy401Missing or invalid key
/searchsearch:readSearch published legislation
Exact article number, full-text and fuzzy matching, fused. Only published provisions are searchable.
Parametrler
| Atı | Qayerde | Túri | Táriyp |
|---|---|---|---|
qmájbúriy | query | string | |
language | query | string (uz-Latn | uz-Cyrl | ru) | |
as_of | query | string <date> | The law as it stood on this date. Defaults to today (Asia/Tashkent). |
limit | query | integer | |
domains | query | array | Restrict results to these fields of law (comma-separated). Omit to search everything the key can reach. At most 8 at once. An unknown value is a 400 rather than being ignored, and a value outside the key's own domain scope is a 403 rather than being silently dropped. GET /v1/domains lists them with labels and shows which ones this key may use. |
domains — qabıl etiletuǵın mánisler
constitutional- The Constitution, citizenship, referendums and the structure of the state.
civil- Contracts, property, obligations, damages and inheritance.
criminal- Offences, penalties, criminal procedure and enforcement of sentences.
administrative- Administrative offences, fines, official reports and appeals against them.
labour- Employment contracts, pay, working time, leave, dismissal and workplace safety.
family- Marriage, divorce, child support, guardianship and family property.
housing- Renting, buying a home, utilities, condominium management and eviction.
consumer- Returns, exchanges, warranties, service quality and misleading advertising.
tax- Taxes, duties, customs payments and tax administration.
business- Companies, entrepreneurship, licensing, competition and insolvency.
traffic- Road rules, traffic police stops, fines, accidents and vehicle registration.
digital- Personal data, informatization, e-signature, e-government and online content.
intellectual-property- Copyright, patents, trademarks, designs and enforcement of IP rights.
land- Land use, agricultural land, water, subsoil and environmental protection.
procedure- Filing a claim, court stages, evidence, appeals and enforcement of judgments.
Juwaplar
200Matching provisions400Invalid request401Missing or invalid key403Scope or project not enabled
/changeschanges:readWhat changed in the law
Amendments, repeals, renumberings and future-effective changes, newest first. Poll with `since` to see only what you have not seen — not a page number, which shifts under you when a new amendment lands.
Parametrler
| Atı | Qayerde | Túri | Táriyp |
|---|---|---|---|
since | query | string <date-time> | ISO 8601. Only changes detected after this. |
change_type | query | string (added | amended | repealed | renumbered | future_effective) | |
limit | query | integer |
Juwaplar
200Change events
/documents/{id}corpus:readA law and its articles
The whole document as it stood on a date, with provisions in DOCUMENT order rather than relevance order — a statute is not a search result.
Parametrler
| Atı | Qayerde | Túri | Táriyp |
|---|---|---|---|
idmájbúriy | path | string | |
as_of | query | string <date> | |
language | query | string (uz-Latn | uz-Cyrl | ru) |
Juwaplar
200The document with its in-force provisions404No such document
/mcpcorpus:readRemote MCP endpoint
JSON-RPC 2.0 over HTTP. Exposes search, citation resolution and coverage as MCP tools for AI clients. Authenticated with the same bearer API key.
Juwaplar
200JSON-RPC response202Notification accepted; no body, by protocol
/provisions/{id}corpus:readResolve a citation
Returns the exact text for an immutable provision-version id, including after the article has been amended.
Parametrler
| Atı | Qayerde | Túri | Táriyp |
|---|---|---|---|
idmájbúriy | path | string |
Juwaplar
200The provision version404No published provision with that id
Sxemalar
Hár bir endpoint qaytaratuǵın dúzilmeler. Maydan atları hám túrleri dál juwaptaǵıday.
Provision
idstringmájbúriyImmutable citation target. Store THIS to point at a specific text of a specific article at a specific time.document_idstringarticlestringmájbúriykindstringlanguagestring (uz-Latn | uz-Cyrl | ru)májbúriytextstringmájbúriyThe provision text as published.effective_fromstring <date>májbúriyInclusive.effective_tostring | null <date>EXCLUSIVE. null = still in force.in_forcebooleanmájbúriyWhether this text was in force on the requested as_of date.official_urlstring | nullOfficial source page. null when none is known — never a constructed URL.source_anchorstring | null
DomainFilter
Present only when a domain filter was applied. `mode` reports the strength of the guarantee: `exact` means nothing outside the domains was ever retrieved; `best_effort` means results were classified by document title after retrieval, so fewer results may be returned than exist — never more.
domainsarraymodestring (exact | best_effort)excludedintegerResults removed by the filter.
Meta
api_versionstringas_ofstring <date>countintegercoverage_notestring
Error
errorobject