OpenAI API error 429 rate limit exceeded

You're calling the OpenAI API and getting hit with error 429 — "Rate limit exceeded." Your requests are being blocked, your app's hanging, and you're not sure if it's your code or your account that's broken.

OpenAI API error 429 rate limit exceeded

You're calling the OpenAI API and getting hit with error 429 — "Rate limit exceeded." Your requests are being blocked, your app's hanging, and you're not sure if it's your code or your account that's broken.

What's actually happening

Error 429 means you've sent too many requests to the API in too short a time. OpenAI enforces rate limits based on your account tier — free tier, paid tier, or usage tier — and these limits apply separately to requests per minute (RPM), tokens per minute (TPM), and sometimes requests per day (RPD).

The actual error message usually looks like this: `Rate limit reached for requests` or `You exceeded your current quota, please check your plan and billing details`. The first means you're hitting speed limits. The second means you've run out of credits entirely — different problem, covered in our guide to unexpected charges and quota issues.

Your rate limits depend on which tier you're on. Free tier accounts get severely restricted access — often 3 RPM and 40,000 TPM on GPT-3.5, sometimes zero access to GPT-4. Paid accounts (those with a payment method and usage history) get higher limits that scale with how much you've spent historically. You can check your exact limits at platform.openai.com/account/limits.

How to fix it

1. Check your current rate limits

Go to https://platform.openai.com/account/limits. You'll see exact numbers for RPM, TPM, and RPD for each model. If you're on the free tier and trying to use GPT-4, you might see 0 RPM — that means you need to add a paid plan first.

2. Add exponential backoff to your code

Don't just retry immediately when you get a 429. Wait, then retry with increasing delays. Here's what that looks like in Python:

```python

import time

import openai

max_retries = 5

for attempt in range(max_retries):

try:

response = openai.ChatCompletion.create(...)

break

except openai.error.RateLimitError:

if attempt < max_retries - 1:

time.sleep(2 ** attempt) # 1s, 2s, 4s, 8s

else:

raise

```

3. Batch your requests or reduce frequency

If you're making 100 API calls in a loop, you're going to hit limits fast. Instead, add delays between calls (`time.sleep(1)` between requests), or batch operations — process data in chunks rather than one item at a time. For high-volume needs, consider the Batch API, which processes requests asynchronously at 50% cost but with 24-hour turnaround.

4. Upgrade your account tier

If you've added a payment method but are still getting 429s constantly, you might need to increase your usage history. OpenAI raises limits automatically as you spend more over time. Go to platform.openai.com/settings/organization/billing and check your current usage tier. There's no way to manually request higher limits — the system increases them based on payment history and successful API usage.

If you need higher limits immediately for a production application, you can fill out the rate limit increase request form at platform.openai.com/account/rate-limits, but approval isn't guaranteed and typically takes several days.

If that doesn't work

If you've implemented backoff, reduced request frequency, and you're still hitting 429 errors on a paid account with available credits, check these:

  • Verify your API key is correct and tied to the right organization (check the org ID in your request headers)
  • Make sure you're not sharing an API key across multiple services — each service hits the same rate limit pool
  • Check if you're accidentally making requests in parallel threads or async functions without rate limiting

For persistent issues that seem like account-level problems, you'll need to contact OpenAI support through the help widget at platform.openai.com. Include your organization ID, the specific model you're calling, your current rate limits from the limits page, and example timestamps of 429 errors. Response times typically run 2-5 business days.

Questions people actually ask

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

A: Not directly. Adding credits increases your spending ceiling but not your rate limits. Limits increase automatically as you build usage history over weeks and months. There's a request form for production apps, but it's not instant.

Q: Why do I get 429 on a paid account with credits remaining?

A: Rate limits and quota are separate. You can have $100 in credits but still hit 429 if you're sending requests too fast. Check platform.openai.com/account/limits for your RPM and TPM numbers — those are speed limits, not spending limits.

Q: Does switching to a different model help?

A: Sometimes. GPT-3.5-turbo typically has higher rate limits than GPT-4. Check your limits page — each model has separate RPM/TPM allocations.

What to remember

  • Error 429 is about request speed, not account balance — check platform.openai.com/account/limits for exact numbers
  • Add exponential backoff to every API call — don't retry immediately
  • Rate limits increase automatically with usage history — there's no instant upgrade
  • Batch API costs 50% less but takes 24 hours for processing
  • If you're blocked on a paid account with credits, verify you're not sharing keys across services

---

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

Related help