# What Happens When You Hit Your Codex Usage Limit?

ChatGPT plan limits reset on rolling windows. How limits behave, and how multi-account and API-key fallback keep production requests flowing.

*Published 2026-06-12 · https://proxyllm.ai/blog/what-happens-when-you-hit-codex-usage-limit*

Hitting a usage limit mid-workload is the first real operational question for anyone moving API traffic onto a ChatGPT subscription. The answer with [Codex Hosted](/) is: nothing dramatic. The request that would have failed runs on your next lane, a second ChatGPT account or your own API key, and the subscription lane comes back when the window resets. Here is how limits behave and how to set up the fallback so you never think about it.

## How ChatGPT plan limits work

OpenAI enforces Codex usage per plan over rolling windows rather than a monthly meter. The shape, per OpenAI's docs: limits apply over hours-scale windows, some plans add a weekly component, and the exact message counts vary by plan, by model, and over time as models rotate. OpenAI publishes current numbers on its pricing page; we deliberately do not hardcode them here because they drift.

Two properties matter for production use:

- **Limits are windows, not budgets.** You are never "out" for the month. Capacity comes back on a schedule, which is what makes a subscription behave like bandwidth instead of a wallet.
- **Limits are per account.** Two Pro accounts have two independent windows. That is the basis of multi-account fallback.

OpenAI also sells on-demand credits to Plus and Pro users who reach a limit and want to continue without upgrading. That is a manual, in-product action; useful as a relief valve, not an automation strategy.

## The fallback order

ProxyLLM's gateway treats your credentials as an ordered list of lanes:

```text
1. Codex · account A      (flat, subscription window A)
2. Codex · account B      (flat, subscription window B)
3. OpenAI API key         (metered, no window)
```

A request tries the highest available lane. When account A's window is exhausted, traffic moves to account B without dropping the request; when B exhausts too, traffic runs metered on your API key until a subscription window resets, then moves back up. Every entry in the request log names the lane that served it, so a spike in API-key traffic is visible the day it happens, not on billing day.

You choose the depth. Solo devs commonly run one account plus an API key. Agencies running steady volume add a second account because the math favors it.

## The math of a second account

A second account is rarely about doubling capacity; it is about absorbing bursts that would otherwise spill onto metered pricing. Worked example with our planning estimates (treat them as estimates, not guarantees):

| Setup                          | Monthly cost            | Sustained capacity                            |
| ------------------------------ | ----------------------- | --------------------------------------------- |
| Pro 5x + API fallback          | $100 + metered overflow | ~$3,500 API-equivalent, overflow at API rates |
| Pro 5x + Pro 5x + API fallback | $200 + rare overflow    | ~$7,000 API-equivalent across two windows     |

If your overflow regularly costs more than $100/month at API rates, the second account pays for itself. The [calculator](/calculator) does this against your actual bill, and [the full cost comparison](/blog/openai-api-vs-chatgpt-subscription-cost) walks the tier math.

## Account rules, stated plainly

Each connected account must be your own, with its own paid subscription, used for your own workloads. OpenAI's terms prohibit sharing an account or making it available to someone else; they do not prohibit one customer owning two subscriptions. Inside ProxyLLM, each account lives in its own isolated container, signed in by you on your own machine. We never pool capacity across customers in either direction. The broader policy picture, including why OpenAI keeps the final call, is in [our honest reading of the terms](/blog/is-codex-hosted-against-openai-terms).

## Setting it up

1. Connect account A from the dashboard walkthrough (login command on your machine, then one connect command, about a minute).
2. Connect account B the same way, or skip it.
3. Add your OpenAI API key as the last lane. It is encrypted at rest and only used when subscription lanes are exhausted.
4. Watch the per-lane breakdown in the request log for a week and size your setup from observed traffic, not guesses.

Limits are the one part of subscription-backed AI that people fear before trying and stop noticing after. Set the fallback order once and the gateway does the worrying. If you have not priced your current bill against a plan tier yet, the [calculator](/calculator) takes thirty seconds.
