Rate Limits

API Reference

API Rate Limits

Overview

Rate limits define how many API requests a client can make within a specific time window. They control the frequency of API calls, not the total amount of data processed over time. When the allowed limit is exceeded, the API responds with an error code of 429 and an error message of Too many requests. Try again after 1 min. until the limit resets.

Why Rate Limits Exist

1. Protect Against Abuse: Prevents malicious or misconfigured clients from overwhelming the system, reducing the risk of service disruptions and DDoS attacks.

2. Ensure Fair Access: Controls resource allocation so one client doesn’t consume a disproportionate amount of resources, maintaining stable performance for all users.

3. Maintain System Stability: Helps smooth traffic patterns and maintain consistent, reliable performance across shared infrastructure.

How Rate Limits Are Enforced

Rate limits are enforced per API key, which means:

  • Each API key has its own independent rate limit
  • All requests using the same API key count toward the same limit
  • Multiple applications/services sharing the same API key share the same quota
  • Separate API keys have separate rate limits

The table below shows the limits applied per API key:

EndpointRate LimitTime Window
Upload20per minute
Convert100per minute
Bulk Convert100per minute
Status100per minute
Result100per minute

Best Practices

1. Implement Exponential Backoff

When you receive a rate limit error (429):

  • Wait for a short time before retrying
  • If the retry fails, wait longer and try again
  • Keep increasing the delay until success or maximum retries reached
  • Add random jitter to prevent synchronized retries

Important: Failed requests still count toward your rate limit, so repeatedly retrying without delay will not solve the problem.

Below is an example solution for Python that uses exponential backoff:

2. Use Separate API Keys

If different applications or services require independent rate limits, generate and use separate API keys to avoid shared throttling.

3. Using Bulk Convert for Higher Throughput

If the Upload endpoint’s rate limit (20 requests/min) is too restrictive for your use case, consider using the Bulk Convert endpoint instead. This endpoint is specifically designed for high-volume workflows and bulk data imports as it accepts up to 30 pre-signed URLs in a single request and is subject to a 100 requests/min rate limit.

4. Monitor Request Patterns

Regularly track your request patterns to identify bottlenecks or spikes. If your use case requires higher limits, contact support to discuss an appropriate rate limit increase.