Skip to main content

Rate limits

Rate limits restrict how many requests you can make per minute to prevent abuse and ensure fair usage.

Monthly quotas

Monthly quotas cap the total number of API requests per calendar month.
The Free plan is an evaluation tier: 50 requests per month, static QR codes only, and at most 1 active API key. Analytics and webhooks (analytics:read, webhooks:read, webhooks:write) require a paid plan. Free-tier requests are also subject to per-IP ceilings of 10 requests per minute and 200 per month, shared across all workspaces behind the same address.
Both the per-minute limit and the monthly quota apply to your whole workspace — creating extra keys does not increase either. A workspace can hold at most 10 active API keys (1 on the Free plan). If you need higher limits, contact us about a custom plan.

Response headers

Every API response includes rate limit headers: Example headers:

Handling 429 errors

When you exceed the rate limit, the API returns a 429 status with a Retry-After header:

Retry with backoff

Best practices

1

Check remaining quota

Monitor X-RateLimit-Remaining to avoid hitting the limit.
2

Use exponential backoff

When retrying after a 429, use the Retry-After header value or exponential backoff.
3

Use batch creation

Use the Batches API to create up to 1,000 QR codes in a single request instead of making individual calls.
4

Cache responses

Cache GET responses to reduce unnecessary API calls.