Every failed response uses a stable envelope with error.code, error.message, error.docs_url, and meta.request_id.
| Code | HTTP | Message | Retry |
|---|---|---|---|
| invalid_request | 400 | The request payload or query parameters are invalid. | No |
| invalid_api_key | 401 | The API key is missing, invalid, or expired. | No |
| missing_scope | 403 | The API key does not include the required scope. | No |
| not_found | 404 | The requested resource was not found. | No |
| conflict | 409 | The request conflicts with the current resource state. | No |
| rate_limited | 429 | The request exceeded the configured rate limit. | Yes |
| idempotency_conflict | 409 | The idempotency key was already used with a different request. | No |
| webhook_signature_invalid | 401 | The webhook signature is missing, expired, or invalid. | No |
| internal_error | 500 | An unexpected server error occurred. | Yes |
Deep links use the stable form https://docs.statxe.com/api/errors/invalid_request.