Content-Type: application/problem+json and a consistent JSON body.
Error Response Format
Fields
HTTP Status Codes
400 — Invalid Request
The request was malformed and could not be parsed — for example, the body is not valid JSON or a field has the wrong type.- Malformed or unparseable JSON body
- Field value of the wrong type (e.g., string where integer expected)
- Invalid resource ID format
401 — Authentication Required
The request did not include valid credentials, or the provided credentials are invalid or expired.- Missing
Authorizationheader - Expired or revoked API key
- Expired OAuth access token — re-authenticate and retry
- Unrecognized credential format
Authorization: Bearer <credential> header. See Authentication.
403 — Access Forbidden
The caller is authenticated but lacks permission for the requested action on a resource they can read. This is distinct from 404: a 403 confirms the resource exists but the action is not allowed.404 — Resource Not Found
The requested resource does not exist, or the caller has no read access to it. The API intentionally does not distinguish between these two cases to prevent resource enumeration.405 — Method Not Allowed
The HTTP method used is not supported by this endpoint.409 — Resource Conflict
The request conflicts with the current state of the server, typically because a resource with the same unique identifier already exists.415 — Unsupported Media Type
TheContent-Type header is missing or not supported. Endpoints that accept a request body require Content-Type: application/json.
422 — Validation Error
The request was well-formed but failed semantic validation — for example, a required field is missing or a value is outside the allowed range.- Missing required fields
- Value outside the allowed range or not in the allowed enum set
429 — Rate Limit Exceeded
The caller has exceeded the allowed request rate. The response includes aRetry-After header indicating how many seconds to wait before retrying.
500 — Internal Server Error
An unexpected error occurred on the server. This is not caused by the client request and is safe to retry with exponential backoff.502 — Bad Gateway
The server received an invalid response from an upstream service. Retry with exponential backoff.503 — Service Unavailable
The service is temporarily unavailable, usually due to maintenance or overload. Retry with exponential backoff.Error Codes
Theerror_code field provides a stable, machine-readable identifier for the specific error subtype. It is only present on 4xx responses where the distinction is actionable by the client. Server errors (5xx) do not include error_code.