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

PlanRequests / minuteDaily cap
Starter50100
Professional2001,000
Business5005,000
Enterprise1,000Unlimited
Dedicated5,000 – 10,000Unlimited
Sandbox (keyless)10 / min100 / 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

#Staying under the limit