Errors & rate limits
The single error envelope, the status codes it arrives with, and the rate limit.
Errors use conventional HTTP status codes with a consistent JSON body:
errorobjectEvery failure arrives in this one envelope, whatever the status code.alwayscodestringThe machine-readable reason. Branch on this, never on the message.alwaysmessagestringHuman-readable and safe to log. Not written for an end client to read.alwaysJSON
{
"error": {
"code": "not_found",
"message": "No deal CV93A41205 exists on your lane."
}
}See the full catalog with handling advice on the Error codes reference page.
Rate limits
Each key may make 120 requests per minute, a fixed one-minute window enforced per key. Webhooks remove most polling needs; if you still need a higher limit for a bulk backfill, contact your partnership manager.
