Errors & Rate Limits
All errors return a JSON body with a code and message field:
{
"error": {
"code": "RENDER_LIMIT_EXCEEDED",
"message": "Monthly render limit reached",
"details": { "current": 100, "max": 100 }
}
}
Error codes
| Status | Code | Description |
|---|
400 | INVALID_JSON | Request body is not valid JSON |
400 | MISSING_SOURCE | Neither project_id nor template_id was provided |
401 | UNAUTHORIZED | Missing or invalid API key |
403 | NO_API_ACCESS | Plan does not include API access |
403 | ACCESS_DENIED | Project exists but belongs to another user |
403 | RESOLUTION_LIMIT | Requested resolution exceeds your plan limit |
404 | PROJECT_NOT_FOUND | Project does not exist |
404 | TEMPLATE_NOT_FOUND | Template does not exist |
429 | RATE_LIMITED | Too many requests per minute |
429 | RENDER_LIMIT_EXCEEDED | Monthly render quota exhausted |
Rate limits & plans
| Feature | Free | Creator ($9/mo) | Pro ($29/mo) |
|---|
| API Access | — | Yes | Yes |
| Renders / month | — | 100 | 1,000 |
| API Keys | — | 3 | 10 |
| Rate limit | — | 30 req/min | 120 req/min |
| Max resolution | — | 1080p | 4K |
| Webhooks | — | Yes | Yes |
| Watermark | — | No | No |
Upgrade your plan →