Tecnología

RPM to RPS Converter (API Rate Limit Calculator)

Convert RPM to RPS instantly (and RPH/RPD). RPS = RPM ÷ 60. Free API rate-limit calculator with a quick reference table and real provider limits.

🗓️ Updated June 2026 Reviewed by
Calculator Free · Private
Reviewed by: (editorial policy ) · Last reviewed:
Have a website? Embed this calculator for free Free — copy the code and paste it on your website Embed on your site
<iframe src="https://hacecuentas.com/embed/rate-limit-api-rpm-rps" width="100%" height="560" style="border:1px solid #e2e8f0;border-radius:12px;max-width:720px" loading="lazy" title="RPM to RPS Converter (API Rate Limit Calculator)"></iframe>
<p style="font-size:13px;text-align:center;margin:8px 0">Powered by <a href="https://hacecuentas.com" target="_blank" rel="noopener">Hacé Cuentas</a> — <a href="https://hacecuentas.com/rate-limit-api-rpm-rps" target="_blank" rel="noopener">RPM to RPS Converter (API Rate Limit Calculator)</a></p>
Preview →

Paste it on your site. Keep the credit link — thanks for sharing. More widgets →

An API rate limit defines how many HTTP requests a client can make to a server within a time window. The most common question is how to convert RPM (requests per minute) to RPS (requests per second) — and the answer is simply RPS = RPM ÷ 60. This calculator converts between all four common units: RPS (per second), RPM (per minute), RPH (per hour), and RPD (per day). Use it when integrating with third-party APIs (OpenAI, Twitter/X, Stripe, GitHub, etc.) that publish limits in one unit while your code needs another — for example, OpenAI publishes RPM, but your Nginx config and retry/backoff logic need RPS. The full chain is: RPS = RPM ÷ 60 = RPH ÷ 3,600 = RPD ÷ 86,400.

When to use this calculator

  • Setting the correct Thread.sleep() or asyncio delay in a polling loop so your app never exceeds a third-party API's published RPM quota
  • Calculating how many parallel workers or goroutines you can spin up before hitting a per-key RPS ceiling on services like Google Maps or Stripe
  • Estimating daily API budget consumption (RPD) against a monthly request quota to avoid overage charges on pay-per-use APIs like OpenAI or AWS
  • Configuring Nginx's limit_req_zone or an API Gateway throttling policy—both require a RPS (requests/second) value—when your SLA is documented in RPM
  • Debugging 429 Too Many Requests errors by converting the Retry-After header value and the published rate limit to a common unit for comparison

RPM → RPS Quick Reference: Common API Rate Limits

API / ProviderTier / PlanPublished LimitRPS equiv.RPD equiv.
OpenAI GPT-4oFree (Tier 1)500 RPM8.33 RPS720,000 RPD
OpenAI GPT-4oTier 25,000 RPM83.3 RPS7,200,000 RPD
OpenAI WhisperTier 150 RPM0.83 RPS72,000 RPD
GitHub REST APIAuthenticated5,000 RPH1.39 RPS120,000 RPD
GitHub REST APIUnauthenticated60 RPH0.017 RPS1,440 RPD
Google Maps JSStandard100 RPS100 RPS8,640,000 RPD
Twitter/X API v2Free1,500 RPM (read)25 RPS2,160,000 RPD
Stripe APILive mode100 RPS100 RPS8,640,000 RPD
Stripe APITest mode25 RPS25 RPS2,160,000 RPD
Twilio RESTDefault100 RPS100 RPS8,640,000 RPD

Fuente: documentación oficial de cada proveedor (OpenAI, GitHub, Google, Twitter/X, Stripe, Twilio), publicada en 2024–2025. Conversión: RPS = RPM ÷ 60 = RPH ÷ 3,600; RPD = RPS × 86,400.

How it works

How to convert RPM to RPS

All four units describe the same throughput, just over different time windows, so every conversion is exact and linear. The one most people need:

RPS = RPM ÷ 60        # requests per minute → requests per second
RPM = RPS × 60        # requests per second → requests per minute

The full chain across every unit:

RPS = RPM ÷ 60 = RPH ÷ 3,600 = RPD ÷ 86,400
RPM = RPS × 60 = RPH ÷ 60   = RPD ÷ 1,440
RPH = RPS × 3,600 = RPM × 60 = RPD ÷ 24
RPD = RPS × 86,400 = RPM × 1,440 = RPH × 24

(86,400 comes from 60 s × 60 min × 24 h = the number of seconds in a day.)

Minimum inter-request delay (the value you actually plug into a throttling loop):

delay_seconds = 1 / RPS          # e.g., 1 RPS  → 1.0 s between calls
delay_ms      = 1000 / RPS       # e.g., 10 RPS → 100 ms between calls

---

RPM → RPS quick conversion table

RPM (per minute)RPS (per second)Min. delay between callsRPD (per day)
10 RPM0.17 RPS6 s14,400
30 RPM0.50 RPS2 s43,200
60 RPM1.00 RPS1 s86,400
100 RPM1.67 RPS600 ms144,000
120 RPM2.00 RPS500 ms172,800
300 RPM5.00 RPS200 ms432,000
500 RPM8.33 RPS120 ms720,000
600 RPM10.0 RPS100 ms864,000
1,000 RPM16.67 RPS60 ms1,440,000
3,000 RPM50.0 RPS20 ms4,320,000
5,000 RPM83.3 RPS12 ms7,200,000

---

Real-world rate limits from major API providers

Published limits (as of 2024–2025) converted to a common scale so you can compare them at a glance:

API / ProviderTier / PlanPublished LimitRPS equiv.RPD equiv.
OpenAI GPT-4oFree (Tier 1)500 RPM8.33 RPS720,000 RPD
OpenAI GPT-4oTier 25,000 RPM83.3 RPS7,200,000 RPD
OpenAI WhisperTier 150 RPM0.83 RPS72,000 RPD
GitHub REST APIAuthenticated5,000 RPH1.39 RPS120,000 RPD
GitHub REST APIUnauthenticated60 RPH0.017 RPS1,440 RPD
Google Maps JSStandard100 RPS100 RPS8,640,000 RPD
Twitter/X API v2Free1,500 RPM (read)25 RPS2,160,000 RPD
Stripe APILive mode100 RPS100 RPS8,640,000 RPD
Stripe APITest mode25 RPS25 RPS2,160,000 RPD
Twilio RESTDefault100 RPS100 RPS8,640,000 RPD

> RPH (requests per hour) → RPS: divide by 3,600. GitHub publishes its limits in RPH.

---

Worked examples

Case 1 — OpenAI free tier integration (500 RPM)


Your chatbot uses the GPT-4o free tier: 500 RPM limit.
  • RPS = 500 ÷ 60 ≈ 8.33 RPS

  • Minimum safe delay between calls = 1 ÷ 8.33 ≈ 120 ms

  • RPD = 500 × 1,440 = 720,000 requests/day

  • If your app makes 1 request per user page load and expects 10,000 daily active users averaging 5 pages each = 50,000 daily requests — well within the 720,000 RPD budget, but you still need the 120 ms delay to avoid bursting.

    Case 2 — GitHub unauthenticated scraper (60 RPH)


    GitHub's unauthenticated limit is 60 RPH.
  • RPM = 60 ÷ 60 = 1 RPM

  • RPS = 1 ÷ 60 ≈ 0.0167 RPS

  • Delay = 1 ÷ 0.0167 = 60 seconds per request

  • Simply adding a personal access token bumps this to 5,000 RPH (83.3 RPM, 1.39 RPS, 16× faster).

    Case 3 — Nginx rate limiting for an internal API (120 RPM target)


    Your internal microservice SLA says "max 120 RPM per user."
  • RPS = 120 ÷ 60 = 2 RPS

  • Nginx config: limit_req_zone $binary_remote_addr zone=api:10m rate=2r/s;

  • burst=10 nodelay allows short spikes of up to 10 extra requests before the 429 kicks in.
  • ---

    Common mistakes

    1. Treating RPM as RPS — The most frequent bug. A 60 RPM limit is only 1 RPS, not 60. Setting a 1-second loop that fires 60 requests in the first second will immediately trigger a 429.
    2. Ignoring burst vs. sustained limits — Many APIs (e.g., Stripe) allow short bursts above the stated RPS but enforce the limit over a sliding window. A sustained 100 RPS over 10 seconds will be blocked even if each individual second looks fine on average.
    3. Using integer division for RPS60 RPM ÷ 60 = 1 RPS is fine, but 61 RPM ÷ 60 truncated to 1 RPS loses the fractional part. Always use floating-point division; the true value is 1.0167 RPS (delay ≈ 983 ms).
    4. Forgetting that RPD limits are calendar-day windows — A 1,000 RPD quota resets at midnight UTC (or the API's local timezone), not 24 hours after your first call. Sending all 1,000 requests at 11:55 PM leaves you with zero quota for the next 5 minutes.
    5. Not accounting for concurrent threads multiplying the rate — If you run 4 parallel threads each making 1 RPS, your effective rate is 4 RPS against the API's shared per-key limit.

    ---

    Related Calculators

    There are no related calculators configured for this tool yet. Check back soon for links to bandwidth and latency calculators on hacecuentas.com.

    Example: convert 500 RPM to RPS

    Published limit: 500 RPM (requests per minute)
    RPS = 500 ÷ 60 = 8.333… RPS
    RPD = 500 × 1,440 = 720,000 requests/day
    Minimum safe delay = 1 ÷ 8.33 ≈ 120 ms between calls
    500 RPM ≈ 8.33 RPS (720,000 RPD)

    Frequently asked questions

    How do I convert RPM to RPS?
    Divide the requests-per-minute value by 60: RPS = RPM ÷ 60. For example, 60 RPM = 1 RPS, 300 RPM = 5 RPS, and 500 RPM ≈ 8.33 RPS. The minute has 60 seconds, so a per-minute limit always spreads across 60 seconds. To reverse it, multiply: RPS × 60 = RPM.
    What is 500 RPM in RPS?
    500 RPM ÷ 60 ≈ 8.33 RPS (requests per second). That means the minimum safe delay between calls is 1 ÷ 8.33 ≈ 120 ms, and the daily ceiling is 500 × 1,440 = 720,000 requests per day. This is exactly OpenAI's GPT-4o Tier-1 free limit.
    What is the difference between RPS, RPM, RPH, and RPD?
    All four measure the same thing—API request throughput—over different time windows. RPS (per second) is used in low-latency systems and server configs like Nginx. RPM (per minute) is the most common unit in API docs (OpenAI, Stripe). RPH (per hour) is used by GitHub. RPD (per day) governs quota-based billing windows. The relationships are exact: 1 RPS = 60 RPM = 3,600 RPH = 86,400 RPD.
    Why does a 60 RPM limit mean I must wait 1 second between requests?
    60 RPM ÷ 60 seconds = 1.0 RPS, which means exactly one request is allowed per second on average. Sending two requests within the same second exhausts two seconds' worth of quota simultaneously, triggering a 429 Too Many Requests response. The safe inter-request delay is always 1 ÷ RPS seconds — in this case, 1.0 s.
    How do I convert Requests per Hour (RPH) to RPS?
    Divide by 3,600 (the number of seconds in one hour). For example, GitHub's authenticated limit of 5,000 RPH = 5,000 ÷ 3,600 ≈ 1.39 RPS, meaning a safe delay of about 720 ms between requests. To get RPM from RPH, divide by 60: 5,000 RPH ÷ 60 = 83.33 RPM.
    What HTTP status code indicates a rate limit has been exceeded?
    RFC 6585 standardized HTTP 429 Too Many Requests for rate limit violations. The response typically includes a Retry-After header (in seconds) or X-RateLimit-Reset (UNIX timestamp). Some older APIs incorrectly return 503 Service Unavailable or 403 Forbidden instead, so always check the API's documentation.
    How do I configure Nginx to enforce a rate limit of 500 RPM per IP?
    Convert 500 RPM to RPS first: 500 ÷ 60 ≈ 8.33 RPS. Then use Nginx's limit_req module: limit_req_zone $binary_remote_addr zone=myapi:10m rate=8r/s; and apply limit_req zone=myapi burst=20 nodelay; in your location block. The burst parameter absorbs short spikes (up to 20 extra requests) without immediately returning 429.
    Does running multiple API keys multiply my effective rate limit?
    Yes, if each key has an independent per-key limit. For example, if one OpenAI API key has a 500 RPM limit, using 4 keys in round-robin gives you an effective 2,000 RPM (33.3 RPS) throughput. However, some providers enforce organization-level or IP-level caps in addition to per-key limits, so check the API's terms of service before key-pooling.
    What is a sliding window vs. a fixed window rate limit, and does it affect conversion?
    The conversion math (RPS ↔ RPM ↔ RPD) is the same regardless of window type. However, behavior differs: a fixed window resets at a fixed clock interval (e.g., every minute at :00), so you can burst twice the limit across a reset boundary. A sliding window tracks the last N seconds continuously, enforcing a stricter sustained rate. Most modern APIs (Stripe, OpenAI) use sliding windows — plan your delays accordingly.
    How many requests can I make per day on a 1 RPS limit?
    1 RPS × 60 s/min × 60 min/h × 24 h/day = 86,400 RPD. This is a hard mathematical ceiling assuming 100% uptime with no gaps. In practice, network latency, retries, and downtime reduce effective throughput to 70–90% of the theoretical maximum, so real-world sustained throughput for a 1 RPS limit is typically 60,000–78,000 requests/day.

    Methodology & trust

    Editorial

    Calculadora de tecnología revisada por el equipo editorial de Hacé Cuentas, contrastada con IETF RFC 6585 – Additional HTTP Status Codes (429 Too Many Requests), según nuestra política editorial y metodología.

    Updates

    Última revisión: June 20, 2026. Los parámetros se verifican periódicamente con las fuentes citadas.

    Privacy

    Calculations run 100% in your browser. We do not store or transmit your data.

    Limitations

    Indicative results. For critical decisions, consult a professional.

    📌 How to cite this calculator

    Rodríguez, M. (2026). RPM to RPS Converter (API Rate Limit Calculator). Hacé Cuentas. https://hacecuentas.com/rate-limit-api-rpm-rps

    Contenido bajo licencia CC-BY 4.0 — reutilizable citando la fuente con enlace a Hacé Cuentas.

    ✉️ Reportar un error en esta calculadora