Rate Limit Calculator
Convert an API rate limit between requests per second, minute, hour and day, find the minimum spacing between requests, how long a job of N requests takes at the limit (with burst capacity and concurrency), and how a limit splits between clients.
Result…
How it's calculated
Rate r = requests allowed ÷ window in seconds Minimum spacing = 1 ÷ r Job time = max((N − burst) ÷ r, N × response time ÷ concurrency) Each client = r ÷ clients
A rate limit caps how many requests a client may make in a window of time, such as 600 a minute. Dividing by the window gives the average rate per second, and its inverse is the smallest gap between requests that stays under it. A job of N requests then takes about N ÷ r seconds. Many APIs use a token bucket: a full bucket lets a burst of requests through at once, and it refills at the steady rate, so only the requests beyond the burst wait. The time can also be limited by your own concurrency: with c requests in flight and each taking t seconds, you can do at most c ÷ t per second. When several clients share one quota, each gets r ÷ clients if they split it evenly.
Your numbers, step by step
About the Rate Limit calculator
This rate limit calculator turns an API quota into numbers you can plan with. Enter a limit such as 900 requests per 15 minutes and it converts it to requests per second, minute, hour and day, with the minimum spacing between requests that stays under it. Switch to a job and it works out how long N requests take at the limit, letting a token bucket's burst capacity go first and checking whether your own concurrency and response time slow things down more than the limit does. A third mode splits the limit between several clients and shows how many clients with a given need fit in it. Developers use it to size batch jobs, set client-side throttles and decide whether to ask a provider for a higher quota. The working is shown with your numbers.
How to use it
- Enter the “Requests allowed”, the “Window length” and the “Window unit”, such as 900, 15 and minute.
- Choose what to “Find”: “Convert the limit”, “Time for a job” or “Share between clients”.
- For a job, enter the “Requests in the job”, and optionally the “Burst capacity (optional)”, the “Requests in flight at once” and the “Response time per request (optional)”.
- For sharing, enter the “Clients sharing the limit” and, if you know it, the “Requests each client needs a minute (optional)”.
Worked example
A limit of 900 requests per 15 minutes is 900 ÷ 900 s = 1 request per second: 60 a minute, 3600 an hour and 86,400 a day, with requests at least 1 s apart. A job of 20,000 requests with a burst capacity of 100 takes (20,000 − 100) ÷ 1 = 19,900 s, which is 5 h 31 min 40 s. Shared between 3 clients, each gets 20 requests a minute, one every 3 s, and 4 clients needing 15 a minute would fit.
Updated
Questions people ask
How do I convert requests per minute to requests per second?
Divide by 60. For any window, divide the requests allowed by the window's length in seconds, so 900 requests per 15 minutes is 900 ÷ 900 = 1 per second.
How long will N API requests take at a rate limit?
About N divided by the rate per second. If a token bucket allows a burst, the first burst of requests goes at once and only the rest wait, so the time is (N − burst) ÷ rate.
What is a token bucket rate limit?
A bucket holds up to a set number of tokens and refills at a steady rate. Each request spends a token, so a full bucket allows a short burst, then requests are held to the refill rate.
Why is my job slower than the rate limit allows?
Your own concurrency can be the bottleneck. With c requests in flight that each take t seconds, you can make at most c ÷ t requests a second, and the calculator shows which limit sets the time.
What does this rate limit calculator not account for?
It treats the limit as a smooth rate. Fixed windows, per-endpoint limits, retries and other traffic on the same key change the real picture, so check your provider's documentation. For spacing retries after a refusal, use the exponential backoff calculator.