Skip to main content
Every JSON API error uses the same envelope, so a client can branch on a stable code rather than parsing prose:
CLI messaging is friendlier, but it branches on the same codes.

General

Device linking

Sync and reports

Sharing

Too many wrong passwords on one link returns RATE_LIMITED: 10 attempts per 10 minutes. Correct attempts are not counted, so one attacker cannot lock out the link’s legitimate readers.

Client versions

Platform support

Operator-only. You will only see this on a deployment you run, acting as its platform administrator. The endpoints that produce it are not documented here.

Rate limits

Per-endpoint budgets from apps/web/lib/rate-limit.ts: Login and recovery throttles are keyed on both the network and the account being signed in to, because a caller who rotates X-Forwarded-For has no trustworthy network identity to be throttled by.

Request body limits

A declared Content-Length over the limit is refused before a byte is read; a chunked body that lies about its size is refused mid-stream and the remainder is never buffered.

CLI exit codes