Get started
Rate limits
The API uses a sliding-window rate limiter to keep the service responsive. Limits are applied per category of request.
Limits by category
| Category | Limit |
|---|---|
| Text inference | 60 requests / minute |
| Image diffusion | 20 requests / minute |
| Audio synthesis | 30 requests / minute |
Concurrency
In addition to request-rate limits, concurrent in-flight jobs are capped to protect throughput and keep latency predictable. If all slots are busy, requests queue briefly rather than failing.
When you exceed a limit
Requests over the limit receive 429 Too Many Requests with a Retry-After header indicating how many seconds to wait.
text
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 10json
{
"error": "Rate limit exceeded",
"message": "Rate limit of 60 requests per minute exceeded.",
"retry_after": 10
}Honor Retry-After
When you receive a
429, wait for the number of seconds in the Retry-After header before retrying, then apply exponential backoff for any further retries.Best practices
- Batch or queue bursts of requests rather than firing them all at once.
- Retry only on
429and5xx, with backoff and jitter. - Cache responses where possible to reduce repeat calls.