Error format
Every/mm/v1 error returns a JSON body with a stable error code and a fixed message:
RISK_LIMIT also names the limit that was hit:
error (and limit). The message is for people and may change. A 401 also carries WWW-Authenticate: Bearer realm="mm/v1".
Error codes
Authentication
Authorization and trading availability
Request validation
Not found and market state
Order policy
Idempotency and state conflicts
Rate limiting
Server errors
A path or method that is not part of the API returns a plain
404 from the router, not this JSON envelope.
How to handle errors
Any refusal of a placement (
400, 403, 404, 409, 422) creates nothing. See Building a reliable client for the full retry rules.