Rate limits
Limits protect the platform and keep latency predictable. Design clients to read the limit headers and back off.
Response headers
Rate-limited responses carry your current budget so you can throttle proactively:
http
RateLimit-Limit: 60
RateLimit-Remaining: 54
RateLimit-Reset: 1792710460RateLimit-Reset is the Unix timestamp when the limiting window resets. Effective limits depend on your program and the endpoint's policy. Only anonymous public metadata routes such as health and OpenAPI are exempt; authenticated identity, usage, log, provider, and resource routes remain rate limited.
When you exceed a limit
You receive 429 with the same headers. Back off and retry after the reset, adding jitter so retrying clients don't synchronise:
python
import time, random, requests
def call_with_backoff(fn, attempts=5):
for i in range(attempts):
r = fn()
if r.status_code != 429:
return r
reset = int(r.headers.get("RateLimit-Reset", "0"))
wait = max(0, reset - int(time.time())) or (2 ** i)
time.sleep(wait + random.uniform(0, 1))
return rCache reads that change slowly and prefer webhooks over polling once webhook delivery is enabled for your organization.