> ## Documentation Index
> Fetch the complete documentation index at: https://docs.captioncraft.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limits

> Keep polling predictable and stay within your account's capacity.

## Request rate

Authenticated API operations share an account-level token bucket:

| Setting                      | Value                   |
| ---------------------------- | ----------------------- |
| Refill rate                  | 120 requests per minute |
| Burst capacity               | 30 requests             |
| Recommended polling interval | 5 seconds per job       |

All API keys belonging to the account share the same allowance. This is a refill rate, not permission to send 120 simultaneous requests. The public presets endpoint does not use the authenticated request bucket.

## Concurrent jobs

Each account has a separate active-job limit. Read `concurrency_limit` and `active_jobs` from [Get usage](/api-reference/get-usage). Queued jobs count toward this limit.

A create request may return `429` with either:

* `RATE_LIMITED`: too many API requests.
* `CONCURRENCY_LIMIT`: too many active jobs on the account.

## Back off and retry

Both return a `Retry-After` header, currently `5` seconds. Wait at least that long before retrying. For a concurrency limit, also wait for an active job to complete, fail, or be canceled.

Use bounded retries with increasing delays and jitter for polling and requests rejected with `429`. Each accepted create request starts a new job. If a submission times out, loses its response, or returns `500`, check your recent jobs in the console before retrying to avoid creating and paying for duplicate jobs.
