Rate Limits
Per-Minute Rate Limits
Each plan has a per-minute request limit:
| Plan | Rate Limit | Monthly Quota |
|---|---|---|
| Free | 10 req/min | 500 |
| Starter | 30 req/min | 3,000 |
| Pro | 60 req/min | 15,000 |
| Scale | 120 req/min | 50,000 |
| Enterprise | 300 req/min | Custom |
Rate Limit Headers
Every API response includes rate limit headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute |
X-RateLimit-Remaining | Requests remaining this minute |
X-Credits-Used | Total credits used this month |
X-Credits-Remaining | Credits remaining this month |
Exceeding Limits
Per-minute limit
When you exceed your per-minute rate limit, you’ll receive a 429 response with error code RATE_LIMITED. Wait until the next minute to retry.
Monthly quota
- Free plan: Requests are blocked with
QUOTA_EXCEEDEDuntil the next billing cycle - Paid plans: You can continue making requests. Overage is billed at your plan’s per-screenshot rate
Overage Rates
| Plan | Overage Rate |
|---|---|
| Starter | $0.005 per screenshot |
| Pro | $0.003 per screenshot |
| Scale | $0.002 per screenshot |
Best Practices
- Implement retry with backoff — on 429 responses, wait 1s, then 2s, then 4s
- Use caching — set
cache_ttlto avoid redundant renders of the same URL - Monitor usage — check the dashboard to track consumption
- Batch wisely — if you need many screenshots, spread requests across minutes