Rate Limits & Errors
Rate limits
Section titled “Rate limits”Limits are per-key, per-minute.
| Plan | RPM | Monthly renders |
|---|---|---|
| Starter | 30 | 1,500 |
| Pro | 120 | 15,000 |
Rate limit info is returned in response headers on every request:
| Header | Description |
|---|---|
x-ratelimit-limit | Requests allowed per minute |
x-ratelimit-remaining | Requests remaining this window |
x-ratelimit-reset | Unix timestamp when the window resets |
x-usage-monthly-limit | Monthly render cap |
x-usage-monthly-used | Renders used this month |
Error responses
Section titled “Error responses”Errors return JSON with an error field:
{ "error": "Description of what went wrong." }Status codes
Section titled “Status codes”| Code | Meaning | What to do |
|---|---|---|
400 | Missing or invalid form fields | Check that text or overlays are present, plus either asset or width + height |
401 | Missing or invalid API key | Verify your x-api-key header |
413 | File exceeds 50 MB limit | Reduce file size before uploading |
415 | Unsupported file type | Use JPEG, PNG, WebP, MP4, MOV, or WebM |
429 | Rate limit or quota exceeded | Wait for the rate limit window to reset, or upgrade your plan |
500 | Render failed | The file may be corrupt or unsupported. Try a different file |
Handling 429 responses
Section titled “Handling 429 responses”When you hit the rate limit, wait until the x-ratelimit-reset timestamp before retrying. For monthly quota exhaustion, upgrade your plan or wait for the next billing cycle.