Skip to main content
Every error uses the same JSON envelope, so you can branch on a stable machine-readable shape instead of parsing messages:
  • type — the failure class (see table).
  • code — the HTTP status code (mirrors the response status).
  • message — a human-readable explanation.

Status codes & types

Handling tips

  • Validation (400) — fix the request; retrying unchanged won’t help. Bulk requests still return 200 with per-row failed results for row-level problems; a 400 means the whole request was rejected.
  • Auth (401/403) — check the token, the x-customer-id, and that your key carries the scope for the endpoint.
  • Conflict (409) — reuse an Idempotency-Key only for the identical retry; use a new key for a new operation.
  • Rate limit (429) — honor Retry-After.