Error: rate_limit_exceeded

Too many requests in the current window. Honor the Retry-After header.

rate_limit_exceeded

HTTP status: 429

You sent more requests than the per-license window allows. The Retry-After header tells you how many seconds to wait before retrying.

Why this happens

  • A burst of calls exceeded the per-second or per-minute ceiling for your license tier.
  • A retry loop without backoff hammered the API after a transient failure.
  • Concurrent workers shared one license without coordinating their request rate.

This is distinct from quota_exceeded. Rate limiting is a short-window throttle (resets in seconds). Quota is a billing-cycle ceiling (resets next cycle).

What to do

  1. Read the Retry-After header and wait that many seconds before retrying. (The SDKs handle this automatically.)
  2. If you call the wire directly, use exponential backoff: start at 500 ms, cap at 30 s, and add jitter.
  3. Reuse the same Idempotency-Key across retries to avoid duplicates.
  4. For sustained high volume, spread work across the window instead of bursting. See Rate limits.

Example response

{
  "type": "https://zyins.isaapi.com/errors/rate-limit-exceeded",
  "title": "Rate limit exceeded",
  "status": 429,
  "detail": "Too many requests. Retry after 12 seconds.",
  "code": "rate_limit_exceeded",
  "advice_code": "honor_retry_after",
  "param": null,
  "request_id": "req_01HZK2N5GQR9T8X4B6FJW3Y1AS"
}

SDK exceptions

LanguageException class
TypeScriptIsaRateLimitExceededError
PythonIsaRateLimitExceededError
Go*zyins.RateLimitExceededError
PHPIsa\Sdk\Zyins\Exception\IsaRateLimitExceededException
C#IsaRateLimitExceededException

See also