API error codes
Every error is a JSON problem document with a stable code, a human detail, a request_id to quote to support, and a type link to the page for its code below.
| Code | HTTP | Meaning | Retry? |
|---|---|---|---|
MALFORMED_REQUEST | 400 | Malformed request | No |
UNAUTHENTICATED | 401 | Authentication required | No |
INVALID_API_KEY | 401 | Invalid API key | No |
EXPIRED_API_KEY | 401 | Expired API key | No |
REVOKED_API_KEY | 401 | Revoked API key | No |
FORBIDDEN | 403 | Forbidden | No |
INSUFFICIENT_SCOPE | 403 | Insufficient scope | No |
PLAN_LIMIT_EXCEEDED | 403 | Plan limit exceeded | No |
NOT_FOUND | 404 | Not found | No |
IDEMPOTENCY_KEY_REUSED | 409 | Idempotency key reused | No |
CONFLICT | 409 | Conflict | After waiting |
PAYLOAD_TOO_LARGE | 413 | Payload too large | No |
VALIDATION_FAILED | 422 | Request validation failed | No |
UNSUPPORTED_CONSTRAINT | 422 | Unsupported constraint | No |
OBJECTIVE_NOT_SUPPORTED_FOR_MODE | 422 | Objective not supported for this mode | No |
STOCK_TYPE_MISMATCH | 422 | Stock type mismatch | No |
UNKNOWN_MATERIAL | 422 | Unknown material | No |
RATE_LIMITED | 429 | Rate limited | After waiting |
QUOTA_EXCEEDED | 429 | Quota exceeded | No |
INTERNAL_ERROR | 500 | Internal error | Yes |
SERVICE_UNAVAILABLE | 503 | Service unavailable | After waiting |