Guides
Stay within each key’s request rate and each account’s concurrency.
| Limit | Applies to | Over it |
|---|---|---|
| 60 requests a minute | Each key, across every authenticated /v1 route. The public /v1/models catalogue isn't counted. | 429 rate_limit_exceeded |
| 2 generations at once | Your account, across keys and the Playground | 429 concurrency_limit |
| Daily generation cap | Your account, set by your plan | 429 daily_cap_reached |
| Ink cap, optional | Each key | 402 key_ink_limit_reached |
Every 429 and 503 carries Retry-After: the seconds to wait before you retry.
code | Retry-After |
|---|---|
rate_limit_exceeded | Until the minute frees a slot |
concurrency_limit | 15 |
daily_cap_reached | 3600 |
provider_unavailable | 5 or 60 |
rate_limiter_unavailable | 5 |
Responses carry no rate counters. Track your own request rate.
A submit over the concurrent limit is refused: nothing is held and nothing runs. Queue on your side, and submit the next generation when a poll returns succeeded or failed.
Retry-After, then retry.loopling.ai · grows with you, grows itself
hello@loopling.ai · for agents · community · pricing · Enterprise · API · privacy · terms