Skip to main content

Error format

All errors follow a consistent JSON structure:

Error codes

reason

Some errors carry a machine-readable reason next to code, for cases the HTTP status alone does not tell apart:

Example responses

400 — Invalid request

401 — Unauthorized

403 — Billing paused

While a workspace’s billing is paused, every API call with its keys is refused until billing restarts. The workspace owner can resume billing earlier from the QRKit dashboard. Existing QR codes keep redirecting and scanning during the pause.

404 — Not found

422 — Plan limit reached

422 — Restore refused by the plan limit

409 — Restore of a switched-off code

429 — Rate limited

Handling errors