Rate Limits
Per-minute and daily limits by plan, and how to handle 429 cleanly.
Rate limits are enforced per plan tier. Two independent limits apply: a per-minute request rate and a daily cap. Exceeding either returns 429.
#Limits by plan
| Plan | Requests / minute | Daily cap |
|---|---|---|
| Starter | 50 | 100 |
| Professional | 200 | 1,000 |
| Business | 500 | 5,000 |
| Enterprise | 1,000 | Unlimited |
| Dedicated | 5,000 – 10,000 | Unlimited |
| Sandbox (keyless) | 10 / min | 100 / day (50 / hour) |
Note
Enterprise and Dedicated QPM and daily caps are set per contract; the figures above are the defaults. A short burst allowance of roughly one-tenth of your per-minute rate absorbs spikes.
#Handling 429
On 429, back off and retry. Use exponential backoff with jitter; honour any Retry-After header when present.
import time, requests
def call_with_backoff(fn, tries=5):
delay = 1.0
for attempt in range(tries):
r = fn()
if r.status_code != 429:
return r
wait = float(r.headers.get("Retry-After", delay))
time.sleep(wait)
delay *= 2
return r