Skip to content

API Reference

Rate Limits

Per-tier rate limits, 429 response shape, and backoff strategy.

Limits by tier

TierRequests/minuteRequests/day
Starter10200
Pro30500
Pro+40750
Enterprise602000

Polling GET /jobs/{job_id} counts against your rate limit. Poll no faster than once every 2 seconds.


429 response

When you exceed a rate limit, the API returns HTTP 429:

{
  "ok": false,
  "error": "Rate limit exceeded. Please slow down.",
  "code": "RATE_LIMIT_EXCEEDED"
}

Backoff strategy

On a 429, wait before retrying. Use exponential backoff with jitter:

import time
import random

def request_with_backoff(fn, max_retries=4):
    for attempt in range(max_retries):
        resp = fn()
        if resp.status_code != 429:
            return resp
        wait = (2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("Rate limit: max retries exceeded")

Monthly spend limits

Separate from rate limits, each tier has a monthly LLM spend allowance. When your allowance is exhausted, write operations return HTTP 402. Top up from the account page or upgrade your plan.


What’s next