Skip to content

Rate Limits

GroupRPMTPMRPD
default700279K14K
  • RPM = Requests per minute
  • TPM = Tokens per minute
  • RPD = Requests per day

When you hit a rate limit:

{
"error": {
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}

Do:

  • Wait for the X-RateLimit-Reset timestamp
  • Implement exponential backoff
  • Queue requests client-side

Don’t:

  • Retry immediately
  • Open multiple connections to bypass
import time
import requests
def request_with_backoff(url, headers, max_retries=5):
for attempt in range(max_retries):
resp = requests.get(url, headers=headers)
if resp.status_code != 429:
return resp
reset = int(resp.headers.get("X-RateLimit-Reset", time.time() + 60))
wait = max(reset - time.time(), 1)
print(f"Rate limited, waiting {wait:.0f}s (attempt {attempt + 1})")
time.sleep(wait)
raise RuntimeError("Max retries exceeded")

If you need higher limits for production workloads, contact support with:

  • Your expected RPM/TPM
  • Your use case
  • Your current token group