Rate limits
Request budgets, 429s and how to stay under the limit.
Current limits
Fixed 60-second windows, enforced per API key (per IP for unauthenticated calls):
| Endpoint | Limit |
|---|---|
POST /api/v1/generate | 60 requests / minute |
GET /api/v1/status/{jobId} | 120 requests / minute |
POST /api/v1/publish | 60 requests / minute |
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers so you can pace client-side.
Limits by plan
Generation throughput is bounded by your plan's credits, not by a separate API quota - every key on a paid plan gets the limits above. Agency / content-farm workloads that need a raised ceiling: contact us on the Pro plan.
Staying under
- Use webhooks instead of polling
GET /api/v1/status/{jobId}in a loop - at 120 req/min a single long-running job can burn the whole window. - Batch generation requests rather than firing hundreds at once.
- Back off on
429- retry with exponential delay.
429 response
{ "error": { "code": "rate_limited", "message": "Too many requests. Retry later." } }Respect the Retry-After header. Sustained bursts can be throttled further.
Higher limits
Need more headroom for an agency or content-farm workload? Contact us about a raised limit on the Pro plan.