Every error is RFC 9457 application/problem+json: type, title, status, our stable code, and sometimes detail, request_id and per-field errors. Branch on code, never on the words. New codes may be added; treat an unknown one by its HTTP status.
| Code | Status | Meaning |
|---|---|---|
invalid_request | 400 | A field or parameter is wrong; |
unsupported_locale | 400 | Not |
unauthorized | 401 | No valid credential |
session_expired | 401 | The member session ended or was revoked: get a new one |
sign_in_failed | 401 | The sign-in proof was refused (no reason given) |
under_13 | 403 | The member is under 13 |
forbidden | 403 | Not allowed |
browser_not_allowed | 403 | A partner API key was used from a browser |
partner_inactive | 403 | The partner, or its live access, is suspended |
live_not_approved | 403 | Live access is not approved yet |
not_found | 404 | No such thing for this member and partner (a journey switched off is not found) |
conflict | 409 | Conflicts with the current state |
limit_reached | 409 | For example, the 11th webhook endpoint |
idempotency_key_required | 400 |
|
idempotency_key_reused | 422 | The same key with another body |
idempotency_in_progress | 409 | The same key is still being processed |
idempotent_replay | 409 | A partner create already done with this key returned a secret, which is never shown again; see |
environment_mismatch | 403 | A key reached for the other environment (test and live never cross through the API) |
compliance_not_shown | 422 | The answer would complete a lesson whose compliance blocks were not all in |
jwks_unreachable | 422 | The JWKS address could not be read, or is not a valid public JWKS |
jwks_invalid | 422 | The JWKS address could not be read, or is not a valid public JWKS |
rate_limited | 429 | Wait |
internal | 500 | An error on our side |