OpenAI API error 429 rate limit exceeded
You're running API calls and suddenly everything stops with "Error 429: Rate limit exceeded." Your application grinds to a halt, and you're losing users or data processing time right now.
OpenAI API error 429 rate limit exceeded
You're running API calls and suddenly everything stops with "Error 429: Rate limit exceeded." Your application grinds to a halt, and you're losing users or data processing time right now.
What's actually happening
Error 429 means you've hit OpenAI's usage limits for your current tier. The API tracks three separate limits: requests per minute (RPM), tokens per minute (TPM), and requests per day (RPD). When you exceed any one of these, the API blocks further requests until your quota resets.
If you're on the free tier, you're capped at 3 RPM and 40,000 TPM for GPT-3.5, which runs out fast. Paid accounts get higher limits based on your spending history — tier 1 starts at $5 total spend with 500 RPM, tier 2 unlocks at $50 spent with 5,000 RPM, and it scales up from there. The system checks your limits every single minute, and one burst of requests can trigger the block even if your average usage looks fine.
You'll see this error most often when looping through batch operations, handling multiple concurrent users, or processing large documents that consume tokens faster than you estimated. The error response usually includes headers showing your current limit and when it resets, but many API wrappers hide these details.
How to fix it
1. Check your current tier and limits
Go to platform.openai.com/settings/organization/limits. This page shows your exact RPM, TPM, and RPD limits for each model. Compare these numbers to what your application actually needs. If you're hitting 500 RPM but need 2,000, you're in the wrong tier.
2. Add exponential backoff to your code
Implement retry logic that waits progressively longer between attempts. Start with a 1-second wait, then 2 seconds, 4 seconds, 8 seconds. Most API libraries support this — in Python with the `openai` library, wrap calls in a try-except block that catches `RateLimitError` and uses `time.sleep()` with doubling intervals. This handles temporary spikes without hammering the API.
3. Batch and throttle your requests
Instead of firing 100 requests simultaneously, queue them and send 10 per minute. Use a task queue like Celery or a simple `asyncio` semaphore to control concurrency. For processing user uploads, add them to a background job that respects your rate limit rather than processing everything immediately.
4. Upgrade your tier
If you legitimately need higher limits, increase your API spending. Add $50 to your account to reach tier 2, which gives you 10x the request capacity. Go to platform.openai.com/settings/organization/billing, add a payment method, and purchase credits. Your tier upgrades automatically within 24 hours after hitting the spending threshold. You can track your tier progression on the limits page.
5. Switch to batch API for large jobs
For non-urgent processing of thousands of requests, use the Batch API at platform.openai.com/batches. It costs 50% less than real-time API calls and doesn't count against your rate limits. Upload a JSONL file with all your requests, and OpenAI processes them within 24 hours. Perfect for data analysis, content generation backlogs, or overnight processing tasks.
If that doesn't work
Contact OpenAI through platform.openai.com/account/support if you've upgraded tiers but still hit limits. Provide your organisation ID (found at platform.openai.com/settings/organization/general), the specific model you're using, your current tier, and the limit increase you need. Include real usage metrics showing why you need higher limits — "processing 10,000 customer support tickets daily" gets better responses than "might need more someday."
Response times vary wildly. Billing and limit requests typically get answered within 2-5 business days, though complex tier upgrade requests can take longer. For detailed guidance on reaching support effectively, see how to contact OpenAI support.
Questions people actually ask
Q: Can I pay for higher limits immediately without waiting for tier upgrades?
A: No. Tiers unlock automatically based on total spending history over time. You can't skip ahead by depositing $500 upfront — you need to actually spend through the tiers. Some organisations qualify for enterprise contracts with custom limits, but that requires sales team approval.
Q: Do rate limits reset at midnight or rolling windows?
A: Rolling windows. Your RPM limit tracks the last 60 seconds continuously, not calendar minutes. If you send 500 requests at 3:47:30, you can't send more until 3:48:30. The limits page shows when your current restriction lifts.
Q: Why am I getting 429 errors when my dashboard shows I haven't hit limits?
A: The dashboard updates with a delay. Real-time enforcement happens at the API level, which can block requests before the usage graph reflects them. Also check that you're looking at the right model — GPT-4 and GPT-3.5 have separate limits.
What to remember
- Check platform.openai.com/settings/organization/limits for your exact current limits and tier
- Implement exponential backoff in all API call code to handle temporary rate spikes gracefully
- Use request queuing or concurrency limits to stay under RPM caps during batch operations
- Tier upgrades require actual spending history and process within 24 hours of hitting thresholds
- Switch to Batch API for large non-urgent jobs to avoid rate limits and save 50% on costs
Related help
- OpenAI API error 429 and other API errors
- How to contact OpenAI support
- Unexpected OpenAI charge — refund guide
---
*openai-support.com is an independent resource, not affiliated with OpenAI Inc.*