OpenAI API error 429 rate limit exceeded
You're sending requests to the OpenAI API and getting slammed with error 429: "Rate limit exceeded". Your application grinds to a halt, and you're left wondering what rate limit you hit and how to fix it without breaking
OpenAI API error 429 rate limit exceeded
You're sending requests to the OpenAI API and getting slammed with error 429: "Rate limit exceeded". Your application grinds to a halt, and you're left wondering what rate limit you hit and how to fix it without breaking your code.
What's actually happening
Error 429 means you've exceeded one of OpenAI's rate limits — either requests per minute (RPM), tokens per minute (TPM), or requests per day (RPD). OpenAI sets different limits based on your usage tier, which ranges from free tier (severely restricted) to tier 5 (highest limits for consistent spenders).
The actual error message looks like this:
```
{
"error": {
"message": "Rate limit reached for requests",
"type": "requests",
"param": null,
"code": "rate_limit_exceeded"
}
}
```
You'll also see a variation that says "Rate limit reached for tokens" if you're hitting the TPM limit instead. The free tier gets 3 RPM and 40,000 TPM for GPT-4o, while tier 1 jumps to 500 RPM and 200,000 TPM — but you only reach tier 1 after spending at least $5 and waiting 7 days since your first successful payment.
Your tier shows up at https://platform.openai.com/settings/organization/limits under "Rate limits". If you're still at free tier despite adding payment details, you haven't met both requirements yet.
How to fix it
1. Check your current tier and limits
Go to https://platform.openai.com/settings/organization/limits. You'll see your exact RPM, TPM, and RPD limits for each model. If you're on free tier, you need to add a payment method and spend $5 to unlock tier 1.
2. Implement exponential backoff
Add retry logic to your code that waits longer between each retry attempt. Here's what that looks like in practice:
- First retry: wait 1 second
- Second retry: wait 2 seconds
- Third retry: wait 4 seconds
- Fourth retry: wait 8 seconds
Most API libraries have built-in retry logic. If you're using the official OpenAI Python library, update to version 1.0.0+ where retries happen automatically.
3. Add request queuing
Instead of firing all requests simultaneously, queue them and send at a controlled rate. If your limit is 500 RPM, don't exceed 8 requests per second. Build a simple queue that releases requests every 120-150 milliseconds.
4. Batch your requests
The Batch API endpoint lets you send up to 50,000 requests in a single file, processed within 24 hours at 50% cost. Go to https://platform.openai.com/batches, upload your JSONL file, and wait for results. This completely bypasses rate limits for non-urgent workloads.
5. Increase your spending to reach higher tiers
Tier 2 requires $50 total spend and 7 days. Tier 3 needs $100 and 7 days. Tier 4 wants $250 and 14 days. Tier 5 demands $1,000 and 30 days. Each tier multiplies your limits — tier 5 gets 10,000 RPM on GPT-4o versus tier 1's 500 RPM.
If spending doesn't immediately increase your tier, you haven't waited the required number of days yet. There's no way to skip the waiting period.
If that doesn't work
You might be hitting an OpenAI API error that's not rate-related — error 429 sometimes masks other issues like insufficient quota or account problems. Check https://status.openai.com to confirm the API is actually running.
If you've spent enough and waited long enough but your tier hasn't updated, contact OpenAI support at help.openai.com. Include your organization ID (found at https://platform.openai.com/settings/organization/general), exact spend amount, and date of first payment. Response times typically run 2-4 business days.
For suspected billing errors where you're being charged but limits aren't increasing, document your transaction history from https://platform.openai.com/settings/organization/billing/overview before reaching out. The unexpected charge guide covers what details to include.
Questions people actually ask
Q: Can I pay to instantly increase my rate limits?
A: No. You must both spend the tier threshold amount AND wait the required number of days. A $1,000 payment today still means waiting 30 days for tier 5.
Q: Do rate limits reset every minute exactly?
A: Yes. If you hit 500 requests at 2:00 PM, you can send another 500 starting at 2:01 PM. The limits use a sliding window, not a fixed daily reset.
Q: Why am I getting 429 errors with credits remaining?
A: Rate limits and account balance are separate. You can have $100 in credits but still hit the 3 RPM free tier limit if you haven't spent $5 yet.
What to remember
- Check your tier at platform.openai.com/settings/organization/limits — it shows exact RPM/TPM numbers
- Tier upgrades require both spending thresholds AND waiting periods you can't skip
- Implement exponential backoff in your code — wait longer between each retry
- Use the Batch API for non-urgent bulk requests to bypass rate limits entirely
- Error 429 sometimes indicates account issues, not just speed problems
---
*openai-support.com is an independent resource, not affiliated with OpenAI Inc.*