OpenAI API error 429 rate limit exceeded

You're getting "Rate limit reached for requests" or error code 429 when calling the OpenAI API. Your code worked fine yesterday, but now every request fails with a cryptic message about RPM or TPM limits.

OpenAI API error 429 rate limit exceeded

You're getting "Rate limit reached for requests" or error code 429 when calling the OpenAI API. Your code worked fine yesterday, but now every request fails with a cryptic message about RPM or TPM limits.

What's actually happening

Error 429 means you've hit OpenAI's rate limits — hard caps on how many requests you can make per minute (RPM) or how many tokens you can process per minute (TPM). These limits exist for every API key and vary based on your usage tier.

When you see "Rate limit reached for gpt-4 in organization org-xyz on requests per min (RPM): Limit 500, Used 500, Requested 1", you've maxed out your allocated requests. The API rejects your call immediately and returns a 429 status code. The error message tells you exactly which limit you hit: RPM (requests per minute), TPM (tokens per minute), or RPD (requests per day).

Your usage tier determines your limits. New accounts start at Tier 1 with tight restrictions — maybe 500 RPM and 200,000 TPM for GPT-4. If you've spent $100 total, you move to Tier 2 with higher limits. Tier 5 accounts that have spent $1,000+ get much more headroom. Check your current tier at platform.openai.com/settings/organization/limits.

How to fix it

1. Check your current limits and usage

Go to platform.openai.com/settings/organization/limits. You'll see your tier and exact RPM/TPM numbers for each model. If you're hitting 500 RPM on gpt-4, that's your ceiling right now.

2. Implement exponential backoff in your code

When you get a 429, wait before retrying. Start with 1 second, then double it each time: 1s, 2s, 4s, 8s. The `Retry-After` header in the 429 response tells you how many seconds to wait. Most API libraries handle this automatically — check if yours does.

```python

Example backoff logic

import time

for retry in range(5):

try:

response = openai.chat.completions.create(...)

break

except openai.RateLimitError:

wait_time = (2 ** retry)

time.sleep(wait_time)

```

3. Batch your requests or reduce frequency

If you're sending 600 requests in one minute but your limit is 500, spread them out. Add a small delay between calls — even 200ms helps. Or use the Batch API for non-urgent requests, which has separate, much higher limits.

4. Upgrade your usage tier

Your tier increases automatically after you spend money. If you've spent $5 total, you're stuck at Tier 1. Spend $50 and you jump to Tier 2 with 5,000 RPM. The limits page shows what you need to spend to reach the next tier. You can also request a rate limit increase at platform.openai.com/settings/organization/limits by clicking "Request increase", but approval isn't guaranteed.

5. Switch to a different model temporarily

If you're rate limited on gpt-4, try gpt-4o-mini or gpt-3.5-turbo. Each model has independent rate limits. You might have 10,000 RPM available on gpt-3.5-turbo while gpt-4 is maxed out.

If that doesn't work

Contact OpenAI through platform.openai.com/account/support — click "Help" in the bottom right, then "Messages". Include your organization ID (from the limits page), the exact error message, your use case, and current tier. Response times vary from 24 hours to several days.

Enterprise customers can request custom limits, but standard accounts are subject to the published tier system. If you're building a production app, budget for Tier 4 or 5 limits, which require $1,000+ in cumulative spend. See our guide on how to contact OpenAI support for more escalation paths.

Questions people actually ask

Q: Why did I suddenly start getting 429 errors when nothing changed in my code?

A: Your usage probably increased — maybe you launched a feature, got more users, or started a batch job. Check your usage dashboard at platform.openai.com/usage to see the spike.

Q: Can I pay to increase my rate limits immediately?

A: No. Tier upgrades happen automatically based on total spend over time. You can't pay $500 today to jump to Tier 4 — you need to actually use $500 worth of API calls across at least 7 days. See unexpected OpenAI charges if your spend accelerates faster than expected.

Q: Does error 429 mean I'm being billed for failed requests?

A: No. Failed requests don't cost anything. You're only charged for successful API calls that return a response.

Q: I'm on Tier 3 but still hitting limits constantly. What now?

A: Implement request queueing in your application. Use a job queue like Celery or Bull to control outgoing request rate. Or migrate batch workloads to the Batch API, which has 50% lower costs and separate limits.

What to remember

  • Error 429 means you've hit your RPM, TPM, or RPD cap for that specific model
  • Your usage tier (viewable at platform.openai.com/settings/organization/limits) determines your limits
  • Add exponential backoff to your code — wait and retry when you get 429
  • Tier upgrades require cumulative spend over time, not a one-time payment
  • Different models have independent rate limits — switch models if one is maxed out

For more details on API errors beyond rate limits, see our full guide on OpenAI API error 429 and other API errors.

---

*openai-support.com is an independent resource, not affiliated with OpenAI Inc.*

Related help