The envelope
Every response — success or error — shares one shape.integer
The HTTP status code, repeated in the body.
string
A human-readable summary of the outcome.
enum
Either
SUCCESS or ERROR.object | null
The payload.
null on error.array
A list of
{code, message, field} objects. Empty on success. Body-validation failures return one entry per offending field.Status codes
There is no
429. Rate limits surface as 400, so do not build retry logic around a 429 response.