Rate limits
Rate limits restrict how many requests you can make per minute to prevent abuse and ensure fair usage.| Plan | Requests per minute |
|---|---|
| Free | — |
| Starter | 20 |
| Plus | 60 |
| Pro | 120 |
| Ultra | 300 |
| Agency | 300 |
Monthly quotas
Monthly quotas cap the total number of API requests per calendar month.| Plan | API access | Requests per month |
|---|---|---|
| Free | Not available | — |
| Starter | Yes | 500 |
| Plus | Yes | 3,000 |
| Pro | Yes | 10,000 |
| Ultra | Yes | 50,000 |
| Agency | Yes | 50,000 |
Per-minute limits apply per API key. The monthly quota applies to your whole workspace — creating extra keys does not increase it. If you need higher limits, contact us about a custom plan.
Response headers
Every API response includes rate limit headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per window |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait before retrying (only on 429 responses) |
Handling 429 errors
When you exceed the rate limit, the API returns a429 status with a Retry-After header:
Retry with backoff
Best practices
Use exponential backoff
When retrying after a 429, use the
Retry-After header value or exponential backoff.Use batch creation
Use the Batches API to create up to 1,000 QR codes in a single request instead of making individual calls.

