Rate limits & trust
Rate limits
Section titled “Rate limits”The free tier allows [X] requests per minute and [X] per day, enforced per API key. When
you exceed a window, the API returns 429 Too Many Requests with a Retry-After header (seconds
until the window resets).
Ping support@lexcel.ai if you need more.
Freshness
Section titled “Freshness”Indexed weekly. Every /v1/ask, /v1/statute, /v1/compare, and /v1/verify response carries
the as_of date the answer was grounded against. If a section changed after your query, the next
call surfaces the update.
How citations are validated
Section titled “How citations are validated”Every statute chunk is:
- Extracted from an official source (Secretary of State code portal, LegisAPI, or bulk feed).
- Tagged with its effective date and legislative history.
- Cross-checked against a section registry — a canonical list of every valid section number per code. Any citation that does not resolve to a live registry entry is rejected before the response leaves the API.
The API refuses to return a paraphrase without at least one citation. It refuses to fabricate a section that does not exist.
What it is not
Section titled “What it is not”Security and privacy
Section titled “Security and privacy”- No client data is required to call the API. Send only the question and the jurisdiction.
- We do not train on your queries.
- All traffic served over TLS 1.2+.
See our Privacy Policy and Terms of Service for the specifics.
Uptime
Section titled “Uptime”Best-effort during beta. Target 99.5% once we exit beta, published on our status page as we run more traffic against it.
Errors
Section titled “Errors”| Status | Meaning |
|---|---|
400 | Malformed request (missing jurisdiction, unknown code) |
401 | Missing or invalid API key |
403 | Key revoked or expired |
422 | Jurisdiction not supported |
429 | Rate limit exceeded — retry after the Retry-After interval |
503 | Temporarily unavailable — retry after Retry-After |
Error bodies are JSON: { "detail": "..." }.