Rate Limits
SilvaMux applies two layers of limits to model calls: request rate (requests per minute) and generation concurrency (simultaneous image/video tasks). Requests over the limit return 429.
Request Rate (RPM)
- Rate limiting is counted per organization: requests from all API keys under the same organization are counted together, regardless of key or user.
- The default quota is 3600 requests per minute; contact the platform for a higher quota.
- Counting uses fixed UTC minute windows.
Rate limiting runs after authentication and before billing; requests rejected by the rate limiter are not charged.
When the limit is exceeded the API returns HTTP 429 with error code RATE_LIMITED; the error body is rendered in the API's protocol:
- OpenAI format:
{"error":{"message":"rate limited","type":"gateway_error","code":"RATE_LIMITED"}} - Anthropic format:
{"type":"error","error":{"type":"rate_limit_error","message":"rate limited"}} - Gemini format:
"status":"RESOURCE_EXHAUSTED" - Volcengine format:
{"error":{"code":"RATE_LIMITED","message":"rate limited"}}
Generation Concurrency
Image and video generation are asynchronous tasks with a per-organization concurrency cap (default 5) adjusted by administrators:
| Capability | Error code | Description |
|---|---|---|
| Image generation | CONCURRENCY_LIMIT_EXCEEDED (429) | Simultaneous image generation tasks exceed the cap |
| Video generation | CONCURRENCY_LIMIT_EXCEEDED (429) | Simultaneous video generation tasks exceed the cap |
Wait for in-flight tasks to finish before submitting new ones.
Retry Advice
On 429, retry with exponential backoff (1s, 2s, 4s, ...) and check:
RATE_LIMITED: request frequency exceeds the RPM quota — lower the request rate.CONCURRENCY_LIMIT_EXCEEDED: wait for generation tasks to finish, or contact the platform to raise the cap.
The platform does not return
X-RateLimit-* or Retry-After headers; clients should implement backoff based on the error code.