Skip to content
Docs / API reference / Errors and limits
Your account
API reference

Errors and limits

Every error is a status code and a body {"error": "…"} with the reason in plain words. Some carry one extra field, noted below.

Status codes

CodeWhen
400a field is missing or malformed; the reason names it
401no token, or an expired one
403the token is valid but the account may not do this
404nothing under this identifier, or nothing you may see
409the state does not allow it: a closed gate, a second open application, the 30th service, the owner erasing itself, a stale token ("fresh_required": true)
410a sign-in link that was used or has expired
411, 413, 415a file upload without a length, too large, or of a kind not accepted
429a rate limit reached; try again later
502a mail could not be sent
503the database does not answer; GET /api/healthz says so

Rate limits

Counted in memory per hour, not stored.

WhatLimit
sign-in and confirmation links5 an hour per address, 5 per origin
proposals5 an hour per address, 5 per origin
mails in total60 an hour; beyond it, links and notifications wait
searches1200 an hour per origin
journal entries60 an hour per account
points120 changes an hour per account
«check now» on a service60 an hour per account
heartbeats600 an hour per address
file uploads60 an hour per account

Sizes

WhatLimit
request bodyJSON of a few kilobytes; a file upload up to 50 MB
services per account30
files per account200, 400 MB in total
journal entry2000 characters
proposal summary4000 characters; trail 12000; 10 file links
module text4000 characters; 12 facts; 8 links

Last updated 2026-09-11