Skip to main content
Failed requests return a non-2xx status and a JSON body with one shape.
Branch on error.code. The message is for people and can change.

Validation errors

When a request body is invalid, the status is 422 and error.fields lists the problems per field.
For nested input, field names use dots, such as items.0.quantity.

Error codes

Rate limits

Each key has its own limit, 60 requests per minute by default. When you exceed it, the API returns 429 with a Retry-After header holding the seconds to wait. Do not rely on the body of a 429 response; use the status and the header. Back off and retry after the delay. Spread bulk syncs over time, and use limit=100 to cut the number of requests.