Throttled responses
30 illustrates a delay in seconds. Clients should also accept an HTTP-date form of Retry-After. The error body uses rate_limited and includes a request ID.
Bounded retry policy
- Retry only a transient condition and an operation you can safely repeat.
- Respect the server’s
Retry-After; do not retry earlier than that time. - Otherwise use exponential backoff with jitter, a maximum attempt count, and an overall deadline.
- Keep the same idempotency key and payload for a retried POST action.
- Stop when the retry budget is exhausted and retain the request/job ID for reconciliation.
Retry-After exceeds the overall client deadline, schedule a later attempt instead of shortening the server’s delay.
Manage load deliberately
- Bound concurrent requests per tenant and provider.
- Avoid starting overlapping syncs for the same connection and time window.
- Use pagination and narrow documented filters.
- Cache reference data according to your release agreement; no cache lifetime is asserted here.
- Prefer lifecycle events to tight polling loops, with reconciliation for missed or delayed events.
401, 403, 409, 412, or validation errors blindly. A network timeout leaves a command’s outcome uncertain; idempotency and reconciliation determine the next step.