OpenAI API error 429 rate limit exceeded
You're building something with the OpenAI API and suddenly hit a wall: "Error 429: Rate limit reached." Your requests stop going through, your app breaks, and you're not sure if you're being throttled permanently or just
OpenAI API error 429 rate limit exceeded
You're building something with the OpenAI API and suddenly hit a wall: "Error 429: Rate limit reached." Your requests stop going through, your app breaks, and you're not sure if you're being throttled permanently or just need to slow down.
What's actually happening
Error 429 means you've exceeded OpenAI's rate limits — the number of requests or tokens you can send within a specific time window. OpenAI sets different limits based on your usage tier, which ranges from free tier (extremely limited) to tier 5 (enterprise-level access).
The full error message usually looks like this: `{"error":{"message":"Rate limit reached for requests","type":"rate_limit_error","param":null,"code":"rate_limit_exceeded"}}`. Sometimes it'll specify token limits instead of request limits: "Rate limit reached for tokens per minute."
These limits exist on multiple levels simultaneously. You might hit a requests-per-minute (RPM) limit, a tokens-per-minute (TPM) limit, a requests-per-day (RPD) limit, or a tokens-per-day (TPD) limit. On the free tier with gpt-3.5-turbo, you're capped at 3 RPM and 40,000 TPM. Paid tier 1 users get 500 RPM and 200,000 TPM. If you're running production code on a low tier, you'll hit these walls constantly.
Your usage tier automatically increases as you spend more and time passes since your first successful payment. You can check your current tier at platform.openai.com/settings/organization/limits. The page shows exactly which limits apply to your account right now.
How to fix it
1. Check your current rate limits
Go to platform.openai.com/settings/organization/limits and look at the "Rate limits" section. Note your RPM, TPM, RPD and TPD for each model you're using. If you're on free tier or tier 1, you're working with very restrictive limits.
2. Implement exponential backoff in your code
When you get a 429 error, wait before retrying. Start with a 1-second wait, then double it with each subsequent 429: 1s, 2s, 4s, 8s. Most OpenAI SDKs have built-in retry logic, but if you're making raw HTTP requests, you need to code this yourself. The error response includes a `Retry-After` header telling you exactly how long to wait — use that value.
3. Batch your requests efficiently
If you're sending many short prompts, you're wasting your RPM limit. Instead of 100 separate API calls for 100 questions, send them in batches using the Batch API (platform.openai.com/batches) or combine multiple prompts into a single request where possible. This shifts you from hitting RPM limits to TPM limits, which are usually higher.
4. Add rate limiting on your end
Don't rely on hitting OpenAI's limits. Track your own request count and enforce a ceiling below the official limit — if your limit is 500 RPM, cap yourself at 450 RPM. Use a token bucket algorithm or a simple request queue that prevents sending more than X requests per minute.
5. Increase your usage tier
Make a qualifying payment if you haven't already (at least $5). Then wait — tier progression happens automatically based on time and spend, but there's no way to manually request an upgrade. Tier 2 requires 7+ days since first payment and $50+ spent. Check the limits page to see requirements for higher tiers. For more details on API errors and tier-specific issues, see our guide on OpenAI API error 429 and other API errors.
If you're hitting limits despite reasonable usage, calculate your actual needs. A tier 3 account gets 5,000 RPM with gpt-4o — if you need more, you may need to contact support for tier 4 or 5 consideration, though approval isn't guaranteed.
If that doesn't work
If you're still getting 429 errors after implementing backoff and staying under your stated limits, something else is wrong. Check platform.openai.com/usage to verify you're not miscounting requests. Look for runaway loops in your code making excessive calls.
If your legitimate use case requires higher limits than your current tier allows, you can request a limit increase by going to platform.openai.com/settings/organization/limits and clicking "Request increase" next to the specific model limit. Include details about your use case, expected request volume, and why the current limit blocks you. Response times vary from days to weeks. For more escalation options, see our article on how to contact OpenAI support.
Questions people actually ask
Q: Does error 429 mean I'm banned?
A: No. It's temporary throttling, not a ban. Wait and retry with backoff. If you're actually banned, you'll get error 401 or 403, not 429.
Q: Can I pay to immediately increase my rate limit?
A: Not directly. Tier progression is automatic but requires both spending history and time. There's no "instant upgrade" purchase option.
Q: How long does the rate limit last?
A: It's a rolling window. If you hit 500 requests in a minute, you can send more requests as soon as time passes and old requests fall outside the 1-minute window. It's not a daily quota that resets at midnight.
What to remember
- Error 429 is throttling, not blocking — implement exponential backoff and retry
- Check platform.openai.com/settings/organization/limits for your exact current limits
- Tier progression is automatic based on spend and time, not manual requests
- Batch requests and add your own rate limiting before hitting OpenAI's limits
- TPM limits are usually higher than RPM limits — consider request structure
---
*openai-support.com is an independent resource, not affiliated with OpenAI Inc.*