ThinkFacility

Error messages

Rate limit reached for

The message

Rate limit reached for
OpenAI API 3.19.2 read September 25, 2026OpenAI APIrate limits429

What it means

Your organization or project used up its tokens-per-minute (or requests-per-minute) budget for that model, and this request would have pushed it over.

What to do

Wait the few seconds the message gives and retry, and cut tokens per request if Requested is a large share of Limit. For a lasting fix, check the limits page for your tier.

The OpenAI API sends this 429 when a request would go over your per-minute budget for a model. It fills in the model, your organization ID and three numbers, so every copy looks a little different. Here's one from a June 2026 bug report, with the organization ID blanked out:

Rate limit reached for gpt-5.4-mini in organization org-xxxxxxxxxxxxxxxxxxxxxxxx on tokens per min (TPM): Limit 200000, Used 192160, Requested 13370. Please try again in 1.659s. Visit https://platform.openai.com/account/rate-limits to learn more.

And the full body, as openai-python printed it in the same report:

openai.RateLimitError: Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-5.4-mini in organization org-xxxxxxxxxxxxxxxxxxxxxxxx on tokens per min (TPM): Limit 200000, Used 192160, Requested 13370. Please try again in 1.659s. Visit https://platform.openai.com/account/rate-limits to learn more.', 'type': 'tokens', 'param': None, 'code': 'rate_limit_exceeded'}}

It's one of the commonest OpenAI errors on GitHub: 13,486 issues contain "Rate limit reached for" as of September 25, 2026.

Reading Limit, Used and Requested

Limit is your budget per minute for that model. Used is what's already been spent in the current window. Requested is this call's estimated size. In the example, 192,160 plus 13,370 comes to more than 200,000, so the request was refused even though the budget wasn't yet empty.

That arithmetic is worth doing on your own copy. If Requested is a big slice of Limit (say a long document plus a high output cap), a single call can trip it, and adding more workers makes things worse. If Used sits at the limit with a small Requested, it's traffic volume.

The unit in brackets tells you which budget ran out. TPM is tokens per minute. You'll also see RPM (requests per minute), which a Codex report showed as Limit 3000, Used 3000, Requested 1. OpenAI's rate-limit guide lists daily versions too (RPD and TPD).

Whose limit is it?

OpenAI's rate-limit guide says limits are set per organization and per project, "not user level". Everyone sharing an organization draws on the same pool, so a colleague's batch job can be what fills it. Some model families also share one limit, which is why a message can name one model and add "(for limit ...)" with another, as in this August 2026 report.

Limits rise with your usage tier. The tiers go from Free up to Tier 5 ($1,000 paid), and your current numbers are on the organization limits page. Response headers carry the live state: x-ratelimit-remaining-tokens and x-ratelimit-reset-tokens tell you how close you are before you hit the wall.

One thing that surprised us: in January 2026 Codex users on ChatGPT plans got this exact error, all naming the same organization. A Codex team member said a service issue made the Responses API "incorrectly report rate limit errors" and that it had been mitigated. So a message naming an org you don't recognize may not be about your usage at all.

What the Python SDK does before you see it

We read openai-python 3.19.2. Every 429 becomes RateLimitError and is retried twice by default. The SDK honors a retry-after-ms or Retry-After header up to two minutes, and gives up at once if the server asks for longer. Without a header it backs off from half a second, doubling up to 8 seconds. The "Please try again in 1.659s" text in the message isn't parsed by the SDK (Codex does parse it).

So when the error reaches your code, it has usually already failed three times. More SDK retries rarely help for TPM. Sending fewer tokens per call or spreading calls out does.

A different 429: slow_down

OpenAI also documents a 429 with type rate_limit_error and code slow_down. That one means traffic grew too fast, and it can happen while you're under your limits. The docs suggest growing by no more than 50% every 15 minutes once you're past about 1 million TPM. If your body says insufficient_quota instead, it's billing: see the quota page.

Other lines the same feature prints

Match yours against these if the one at the top of the page is not quite it. They come from the same code and mean related things.

  • Rate limit reached for gpt-5.4-mini in organization org-xxxxxxxxxxxxxxxxxxxxxxxx on tokens per min (TPM): Limit 200000, Used 192160, Requested 13370. Please try again in 1.659s. Visit https://platform.openai.com/account/rate-limits to learn more.
  • Rate limit reached for organization org-<> on requests per min (RPM): Limit 3000, Used 3000, Requested 1. Please try again in 20ms.
  • rate_limit_exceeded
  • openai.RateLimitError: Error code: 429