Rate limits
Two limits apply, both counted at the gateway:
| Limit | Default | Scope | Error code |
|---|---|---|---|
| Requests per minute | 600 | Per API key | rate_limit_exceeded |
| Concurrent in-flight requests | 20 | Per organisation (all keys together) | concurrency_limit_exceeded |
A streaming request counts as in flight until its last byte is sent or the
connection closes. There is no token-per-minute limit; spend is bounded by your
balance. GET /v1/models and GET /v1/models/{id} are not rate limited (and
not balance-checked), so listing what’s available never counts against either
limit.
When a limit is hit you get HTTP 429 with an error.type of rate_limit_error
and a Retry-After header in seconds. The two limits compute it differently:
rate_limit_exceededcounts requests in a fixed calendar-minute window, not a rolling one.Retry-Afteris the seconds left until that minute ends, so it can be anywhere from 1 to 60.concurrency_limit_exceededalways carriesRetry-After: 1— retry almost immediately once one of your in-flight requests finishes.
The OpenAI SDKs honour Retry-After and retry twice by default; for
high-volume batch jobs, add your own client-side throttle so you stay under
600 per minute instead of relying on retries.
siema_ai does not send X-RateLimit-* headers in V1.
Raising limits
Section titled “Raising limits”Email support@siema-ai.pl with your organisation name and the peak requests per
minute and concurrency you need. Limits are set per organisation and take effect
without a new key.