2xx means success, 4xx means the request must be fixed before retrying, and 5xx means something went wrong on our side.
Error body
Every error response is a JSON object with anerror string. Validation errors add a details array that lists each problem:
There is no
message key. Messages are meant for developers and may change: branch on the HTTP status, not on the exact text.
Status codes
400 Bad Request
The request is malformed or a field is invalid. Fix the request before retrying.Invalid JSON
Unknown or read-only field
Empty update
api_name in a PATCH) returns 400.
401 Unauthorized
The token is missing or not valid.Missing token
Invalid token
Invalid or expired token is returned for an unknown token, a deleted (revoked) token, or a token whose role was deleted. Tokens do not expire on their own. See Authentication.
403 Forbidden
The token is valid but its role lacks the right required by the endpoint.404 Not Found
The object does not exist, was deleted, or belongs to another workspace.404 when a referenced ID does not exist, for example an unknown catalog_ids entry when creating a product:
409 Conflict
The request conflicts with existing data.Duplicate api_name
Category in use
429 Too Many Requests
You sent too many requests in a short time. Wait and retry with exponential backoff. See Rate limits and retries.500 Internal Server Error
An unexpected error occurred.Failed to create payment term. You can retry 500 errors with backoff; if the error persists, contact support.

