429 rate_limit_exceeded, your integration sent more requests than the current allowance for that type of operation. The response tells you how long to wait.
Wait, then retry safely
- Read the latest
Retry-Afterfrom each429response. - Wait at least that interval, then add a small random delay. On subsequent
429responses, honor the newestRetry-Afterand increase the randomized delay up to a caller-defined cap to avoid a tight, unbounded retry loop. - Retry only when the operation is safe and within a caller-defined maximum-attempt count or elapsed-time/deadline budget. Stop and surface the error when that budget is exhausted. For the same logical write, within the documented idempotency boundary, preserve the same HTTP method, path, API version, semantically identical body, and original
Idempotency-Key.
Three independent counters
Operations consume one of three independent buckets:
Cancellation and pause operations consume
write, not execution. Telephony work initiated by an accepted execution request does not consume another HTTP request allowance.
Read the response headers
Use these values instead of assuming that every organization or key has the same allowance.
Queued is not rate-limited
Telephony concurrency is a different control. When capacity is temporarily full, already accepted work remainsqueued; it does not become a 429 and is not dropped. Poll the API resource and treat queueing as lifecycle state, not a request-throttling signal.