Convert Hourly Rate Limits to Per Second Rates
Convert API rate limits expressed per hour to per second equivalents. Learn the difference between sustained rate and burst rate in hourly windows.
Detailed Explanation
Hourly to Per-Second Conversion
APIs like GitHub (5,000/hour) and many enterprise APIs express limits per hour. Converting to per-second helps you design retry logic, queue processors, and worker pools.
Basic Formula
Requests per second = Hourly limit / 3,600
Example: 5,000 Requests/Hour (GitHub)
| Unit | Value |
|---|---|
| Per hour | 5,000 |
| Per minute | 83.33 |
| Per second | 1.39 |
| Per day | 120,000 |
The Burst Problem
The raw conversion tells you the sustained average rate. However, most hourly-windowed rate limiters actually allow you to send all 5,000 requests in the first few seconds if you want. The limit only prevents you from exceeding 5,000 within any given 60-minute window.
This creates two distinct rates:
- Burst rate: The maximum instantaneous rate the server accepts (often limited by a separate concurrency limit or connection pool)
- Sustained rate: The long-term average you cannot exceed (5,000/hr = 1.39/s)
Queue Design Implications
For a job queue consuming the GitHub API, you should:
- Set your worker concurrency based on the burst rate for short-lived tasks
- Set your dispatch rate based on the sustained rate for long-running processes
- Implement exponential backoff when receiving 429 responses
- Monitor
X-RateLimit-Remainingto adapt dispatch rate dynamically
Use Case
You are building a CI/CD pipeline that uses the GitHub API to check commit statuses across 50 repositories. Each check requires 3 API calls. You need to determine the maximum number of repositories you can poll per minute without exceeding the hourly limit.