Skip to main content
BoothZen enforces rate limits per API key — not per IP, not per tenant. One caller cannot exhaust another operator’s budget by sharing a network. Limits apply identically to API keys and OAuth access tokens.

Headers

Every /api/v1/* response — including errors — carries the IETF RateLimit headers: Example response headers on a successful call:

Buckets

Each API key has its own bucket. The default rate is 600 requests per minute per key (with a secondary burst limit of 60 requests per second). Internal hosts and admin tooling are not counted against your bucket — only /api/v1/* traffic authenticated with your key. If you need a higher limit for a legitimate use case, contact support with the X-Request-Id of a representative request and your average-and-peak RPS needs. The current numbers for any given key are always authoritative in the response headers — read RateLimit-Limit on any successful call rather than hard-coding the default. See the API Reference tab for live “Try it” calls.

429 handling

When the bucket is empty, the API returns 429 with a Retry-After header (seconds) and the standard rate-limit headers:
Recommended client behaviour:
  1. Honour Retry-After if present. Sleep for at least that many seconds.
  2. Otherwise, exponential backoff with jitter — starting at 1s and capping at 60s — until the next attempt succeeds or RateLimit-Remaining > 0.
  3. Never retry tighter than Retry-After. Aggressive retries dig a deeper hole; the bucket only refills with time.
For high-volume batch work, parallelise across multiple API keys (one per worker) instead of a single key — limits are per-key, so this scales linearly.