Rate limits
Workspace and organization quotas, burst and sustained rates, rate-limit headers, and how to handle a 429.
FastPix limits how many API requests each workspace and organization can make, per endpoint, so a sudden burst of traffic is slowed down rather than degrading the platform for everyone. The limits are generous enough for normal use.
How limits are applied
Each request is counted against two limits at the same time:
A request goes through only when both limits have capacity left. The organization limit puts a ceiling on the combined traffic of all your workspaces. Because the organization’s sustained rate is also 1 request/second per endpoint, that rate is shared across all your workspaces.
Limits are tracked per endpoint, where an endpoint is an HTTP method plus a path. Each endpoint has its own allowance, so a burst of GET /v1/on-demand calls does not use up your allowance for POST /v1/on-demand. Calls to the same endpoint with different IDs share one allowance: GET /v1/on-demand/{mediaId} counts as one endpoint whatever the mediaId is.
Burst and sustained rate
Each limit works like a bucket of tokens:
- Burst: the maximum number of requests you can send in quick succession. It is the size of the bucket, so a read burst of 100 lets you make up to 100
GETrequests back to back. - Sustained rate: how quickly the bucket refills, which is the request rate you can keep up over time. At 1 request per second, one token returns every second.
Every request uses one token. When the bucket is empty, FastPix rejects requests until it refills.
Default limits
These limits apply to every API endpoint.
Rate-limit response headers
Successful responses include these headers. They describe whichever limit is closest to running out for that request:
When you exceed a limit
The API responds with HTTP 429 Too Many Requests:
Retry-After gives the number of seconds to wait before the request will succeed.
Best practices
- Respect
Retry-After. On a 429, wait at least the number of seconds given in theRetry-Afterheader before you retry. - Back off exponentially. If retries keep failing, increase the wait each time and add a little random jitter. This stops many clients from retrying at the same moment.
- Watch
X-RateLimit-Remaining. Slow down before you reach zero instead of waiting for a 429. - Spread out bulk jobs. For large batches, such as uploads or metadata updates, send requests at a steady pace instead of all at once.
- Use webhooks instead of polling. Listen for status-change events rather than calling
GETin a loop. See Set up webhooks. - Cache responses that rarely change, such as configurations and signing keys.
Need higher limits?
The default limits suit most integrations. If your use case needs higher limits, contact us.
Frequently asked questions
What are the FastPix API rate limits?
By default, each endpoint allows a burst of 100 read (GET) requests and 20 write (POST, PUT, PATCH, DELETE) requests per workspace, with an organization-wide ceiling of 250 reads and 50 writes. Each bucket refills at a sustained 1 request per second. Limits are counted per endpoint, so one endpoint running hot does not affect the others.
How do I fix an HTTP 429 Too Many Requests error?
Read the Retry-After header and wait at least the number of seconds it gives before retrying, then back off exponentially with jitter if retries keep failing. Watch X-RateLimit-Remaining to slow down before you hit zero, and move polling loops to webhooks. The FastPix SDKs retry 429 for you automatically.
Are rate limits shared across my workspaces?
Each request counts against both a workspace limit and an organization limit, and goes through only when both have capacity. The organization limit caps the combined traffic of every workspace, so one busy workspace can use up shared organization capacity.
Do rate limits affect video playback?
No. Rate limits apply to REST API requests only. Delivery of your videos to viewers is served over the CDN and is not rate limited.