Skip to main content
Every error response uses the same JSON envelope. Branch on code, not on the message — messages are English-only (for your logs) and may be reworded; code is stable and documented.

HTTP status mapping

Stable error codes

These codes are part of the contract and will not be renamed within v1.
Unrecognized codes may be added over time (additive, never breaking). Treat an unknown code as a generic failure of its HTTP status class.