Structured errors
Unsuccessful requests return an error object with a stable code and a human-readable message. Where available, the response also carries source context and an upstream status. Record x-request-id when contacting support.
EXAMPLE ERROR RESPONSE
{
"error": {
"code": "invalid_request",
"message": "Missing required query parameter: q",
"source": null,
"upstreamStatus": null
}
}Handle the common statuses
400Check the request parameters or body.401Use a valid, active bearer key.404The requested product or route was not found.429Wait for Retry-After, then retry.502 / 503The service or an upstream source is temporarily unavailable.Partial snapshots
A full product snapshot marks each data section with a status. If a secondary source fails, that section is null and marked unavailable. If a source succeeds with no records, the section is an empty array. Never turn a missing price into zero.