Rate Limits

Rate limits are applied per API key. Exceeding a limit returns 429 Too Many Requests.

Endpoint groupLimit
POST /v1/search30 requests / minute
POST /v1/upload10 requests / minute
GET /v1/jobs/*60 requests / minute
GET /v1/videos/*60 requests / minute
Collections (read)60 requests / minute
Collections (write)20 requests / minute
API Keys10 requests / minute
Agent tools30 requests / minute

Handling 429s

Retry with exponential backoff. The response includes a Retry-After header (in seconds) when the limit is time-based.

1import time, httpx
2
3def search_with_retry(client, payload, max_retries=3):
4 for attempt in range(max_retries):
5 resp = client.post("/v1/search", data=payload)
6 if resp.status_code == 429:
7 wait = int(resp.headers.get("Retry-After", 2 ** attempt))
8 time.sleep(wait)
9 continue
10 resp.raise_for_status()
11 return resp.json()