Are API requests rate limited?
Yes, Zencoder limits how many times you can call a particular method inside a give timeframe. Limits are tracked on a per-method (resource) basis (meaning that, for example,
POST requests are tracked separately), with the exception of progress requests, which are tracked per-output. For example, calls to get job and output info all count towards the same limit, while calls for output progress are tracked separately per output.
Each account is allowed 60 requests per minute, with the exception of job creation requests, which are limited to 1,000 requests per minute, and output progress requests, which are limited to 60 requests per minute per output.
Each HTTP response contains a header called "
X-Zencoder-Rate-Remaining". This header lists the number of calls you can make to a given resource within the current time frame.
If you exceed your quota, Zencoder will return a 403 error with a body of "
403 Forbidden (Rate Limit Exceeded)". We'll also send back an additional header, "
Retry-After", which contains the number of seconds until your quota is reset.
Why are API requests rate limited?
We limit API requests to a reasonable number in order to ensure that one customer's use of Zencoder does not adversely affect other customers. Without rate limiting, one customer could flood our system with requests in a way that would prevent another customer from being able to use the system. This happens periodically by accident when customers are first working with an API - a simple programming error could flood the API with requests that the customer doesn't mean to send.
As long as your application is set up properly, rate limiting should not be a problem. When we return a 403 with "Rate Limit Exceeded" in the body, just retry your request after the the specified period of time.
If you find that you are regularly running in to these limits, contact us to discuss your setup and options.