Skip to main content
Every non-2xx response from the Zest Public API uses the same envelope. Always parse code first, fall back on detail for human display, and feed errorId into your support ticket if you ever need to escalate.

Envelope shape

Top-level codes

Validation error codes

Inside the validationErrors[].code field. Every code is stable and machine-actionable.

Sample envelopes

400 validation_error

401 invalid_token

409 conflict (idempotency)

413 payload_too_large

Working with errorId

errorId is generated server-side and persisted in our logs. Bake it into your operator dashboards next to every red-flagged event so support can trace incidents in seconds.