# Codex says "You’ve hit your usage limit": when it resets and what to do

> Markdown mirror of https://router.one/codex-usage-limit for AI assistants and crawlers. Router One is a unified, OpenAI-compatible LLM API gateway.
> Last updated: 2026-10-19

Codex prints a message that starts `You’ve hit your usage limit` when a session signed in with ChatGPT reaches its plan's usage limit. Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), Codex shows it for an HTTP 429 whose error type is usage_limit_reached, does not retry the request, and ends the message with the reset time in your computer's local time when the server sends one, or tells you to try again later when it does not. The limit belongs to your ChatGPT plan, so you can wait for the reset, add usage if your plan offers it, or move local sessions to another billing path. A Codex session that uses Router One as its model provider sends its requests to https://api.router.one/v1 with your Router One key, not through the ChatGPT sign-in, so it is billed by Router One, not by your ChatGPT plan.

## What the message means

The text is Codex's own wording for one kind of 429. Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), Codex reads the error object in a 429's JSON body, and when error.type is usage_limit_reached it builds this message from the plan type and the reset time in that body and from extra details in the response headers, instead of the generic `exceeded retry limit, last status: 429 Too Many Requests` (the other 429 messages are in the last section). In the Codex terminal UI the line shows in red after a ■. OpenAI's Codex pricing page (checked 2026-10-19) says how much you can send depends on the model, the size and complexity of your tasks, and whether you run them locally or in the cloud, that weekly limits may also apply, and that if you reach your usage limits during an active turn, the agent can continue working on that turn, subject to fair use limits.

## The variants and what each asks you to do

Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), the rest of the message depends on the plan type the 429 reports and on extra details the server sends. Every message that starts `You’ve hit your usage limit` ends with when to try again (next section); the workspace credit and spend-cap messages do not:

| What Codex prints | When it appears | What to do |
| --- | --- | --- |
| `You’ve hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus), or try again at …` | The 429 reports a Free or Go plan type | Wait for the reset, or upgrade as the message suggests |
| `You’ve hit your usage limit. Upgrade to Pro (https://chatgpt.com/explore/pro), visit https://chatgpt.com/settings/usage to purchase more credits or try again at …` | A Plus plan type | Wait, buy credits, or upgrade |
| `You’ve hit your usage limit. Visit https://chatgpt.com/settings/usage to purchase more credits or try again at …` | A Pro plan type | Wait or buy credits |
| `You’ve hit your usage limit. To get more access now, send a request to your admin or try again at …` | A Team, Business or some Enterprise plan type | Ask your workspace admin, or wait |
| `You’ve hit your usage limit. Try again at …`, or `Try again later.` at the end | Other Enterprise and Edu plan types, or a plan type that is missing or that Codex does not recognize | Wait for the reset |
| `You’ve hit your usage limit for <limit name>. Switch to another model now, or try again at …` | The server names a usage limit other than the general Codex one | Pick another model with /model, or wait |
| `You’ve hit your usage limit.` followed by a note from the server, then when to try again | The server attaches a note of its own | Follow the note, or wait |
| `Your workspace is out of credits. Add credits to continue.`, or for a member `Your workspace is out of credits. Ask your workspace owner to refill in order to continue.` | The server reports that the workspace is out of credits | The owner adds credits; members ask the owner |
| `You hit your spend cap set in your workspace. Increase your spend cap to continue.`, or for a member `You hit your spend cap set by the owner of your workspace. Ask an owner to increase your spend cap to continue.` | The server reports a workspace spend cap | The owner raises the cap; members ask an owner |

- Codex picks the text in this order: a usage limit the server names, then a workspace credit or spend-cap state, then a note from the server, then the plan type.
- The Free or Go row is the text Codex has for that plan type. OpenAI's Codex pricing page (checked 2026-10-19) lists Codex in the CLI on its plan cards from Plus up. Its Free and Go cards list only the desktop app, subject to rollout.

## Other wordings you may see

Per the same source, the terminal UI can replace the workspace texts with its own wording for a workspace owner, for example `Usage limit reached. You've reached your usage limit. Increase your limits to continue using codex.`, and can offer a workspace member a prompt to notify the owner or to request a limit increase. Before the limit, it can warn you, for example `Heads up, you have less than 25% of your 5h limit left. Run /status for a breakdown.`, and it can offer to switch to a model that uses fewer credits. The texts on this page are the Codex CLI's at rust-v0.163.0; other Codex releases and apps may word them differently.

## When it resets, and where to check

Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), Codex prints the reset time from the server in your computer's local time: the time alone, such as 3:15 PM, when the reset falls on today's date, and with the date, such as Oct 20th, 2026 3:15 PM, otherwise. Without a reset time the message says to try again later. To check where you stand:

- OpenAI's Codex pricing page (checked 2026-10-19) says your current limits and reset times are in the usage dashboard at https://chatgpt.com/codex/settings/usage, and that /status shows your remaining limits during a Codex CLI session.
- Codex's CLI docs (checked 2026-10-19) describe /usage, which shows your ChatGPT token activity and can redeem an available earned reset. Per the source, the reset action needs a ChatGPT sign-in, which a custom provider that leaves requires_openai_auth off does not use.
- On a custom model provider, /status shows the provider and the session's token usage. ChatGPT plan limits belong to the ChatGPT sign-in, and per the source the chatgpt.com usage link appears in /status only when the provider requires OpenAI authentication.

## Keep working: wait, add usage, or switch billing

The limit stays until it resets, or until you redeem an earned reset in /usage if you have one. When the message tells you to switch to another model, pick one with /model. Otherwise the choice is between waiting, paying OpenAI for more, and sending local sessions somewhere that bills differently:

- Wait for the reset time in the message.
- Add usage. Per OpenAI's Codex pricing page (checked 2026-10-19), Plus and Pro users who reach their usage limit can buy additional credits without upgrading, and Business, Edu and Enterprise plans with flexible pricing can buy workspace credits.
- Use an OpenAI API key for local sessions. Per the same page, all users may also run extra local chats using an API key, at standard API rates, and per Codex's authentication docs (checked 2026-10-19) an API-key sign-in uses API pricing instead of included ChatGPT plan credits.
- Use a custom model provider that takes its own key from an environment variable through env_key, such as Router One. Per Codex's authentication docs, env_key uses the provider-specific API key in that variable, so the session's requests go to that provider with that key and do not draw on your ChatGPT plan.
- Codex cloud stays on your plan: per Codex's authentication docs, it requires signing in with ChatGPT.

## Set up Codex with Router One

Run the one-click command with your Router One key. It installs Codex CLI if it is missing, backs up an existing config.toml, writes the configuration shown in the next section (provider router, env_key = ROUTER_ONE_API_KEY), saves the key in your shell profile and sends one test request. On Windows, use the PowerShell line, which saves the key as a user environment variable instead. You can keep your ChatGPT sign-in: a custom provider with env_key does not use it.

`terminal`

```bash
curl -fsSL https://router.one/install/codex.sh | bash -s -- sk-your-api-key
# Windows PowerShell:
$env:ROUTER_ONE_API_KEY = "sk-your-api-key"; irm https://router.one/install/codex.ps1 | iex
```

## The config.toml the setup writes

Keep the top-level model = "gpt-5.6-sol" and model_provider = "router" lines above the first [table] header, and keep wire_api = "responses" and env_key = "ROUTER_ONE_API_KEY" in the block. Leave requires_openai_auth off on this provider: Codex's authentication docs (checked 2026-10-19) say that when it is true, Codex uses OpenAI authentication and ignores env_key. This is the file the one-click install writes:

`~/.codex/config.toml`

```toml
model = "gpt-5.6-sol"
model_provider = "router"
model_reasoning_effort = "high"
model_verbosity = "high"
web_search = "live"

[model_providers.router]
base_url = "https://api.router.one/v1"
env_key = "ROUTER_ONE_API_KEY"
env_key_instructions = "Create an API key at https://router.one/dashboard/api-keys and set the ROUTER_ONE_API_KEY environment variable."
name = "Router One"
wire_api = "responses"
```

## How Router One bills these sessions

Without a Router One plan, each request is billed to your Router One wallet at the posted per-token rate of the model it names (see /models), and every request the gateway sends to a model is recorded in Dashboard → Logs with its tokens and cost. On a Router One Pro, Max or Ultra plan, a model that a plan tier lists draws on that tier's allowance first, and calls beyond the allowance are billed to the wallet at the posted rates: as of the 2026-10-19 plan response, gpt-5.6-sol, the model the one-click install writes, is in the Premium models tier of all three plans (/pricing lists each plan's allowances). Router One's request and token limits on a key and on an account are platform defaults, raised on request through support@router.one, and Router One's own error codes are in the error-codes reference (https://router.one/llm-api-error-codes).

## Messages that are not this usage limit

Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), these look related but mean something else; the last one is the server's reply as Codex's own test suite shows it:

| What Codex prints | What it means |
| --- | --- |
| `To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus.` | The 429 said Codex usage is not included in the plan (error.type usage_not_included) |
| `Quota exceeded. Check your plan and billing details.` | An API quota or spend limit is used up, such as insufficient_quota on an OpenAI API key (https://router.one/openai-insufficient-quota) |
| `exceeded retry limit, last status: 429 Too Many Requests` | A rate-limit 429 that Codex stopped retrying (https://router.one/codex-exceeded-retry-limit) |
| `Selected model is at capacity. Please try a different model.` | The server answered with the server_is_overloaded code (https://router.one/codex-model-at-capacity) |
| `The '…' model is not supported when using Codex with a ChatGPT account` | A reply from the server: your ChatGPT sign-in cannot use that model (https://router.one/codex-model-not-supported) |

## FAQ

### Is "You’ve hit your usage limit" a Router One error?

No. Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), it is Codex's text for a 429 whose error type is usage_limit_reached: the usage limit of a ChatGPT plan, on a session signed in with ChatGPT. A Codex session that uses Router One as its model provider sends its requests to https://api.router.one/v1 with your Router One key, not through the ChatGPT sign-in, and is billed by Router One. If you expected the session to use Router One, check the top-level model_provider line in ~/.codex/config.toml.

### When does my Codex usage limit reset?

At the time printed at the end of the message, in your computer's local time, when the server sends one; otherwise the message says to try again later (per the openai/codex source, rust-v0.163.0, checked 2026-10-19). OpenAI's Codex pricing page (checked 2026-10-19) says your current limits and reset times are in the usage dashboard (https://chatgpt.com/codex/settings/usage) and points to /status during a Codex CLI session; /usage can redeem an earned reset if your account has one and the session uses your ChatGPT sign-in.

### I barely used Codex. Why did I hit the limit?

Per OpenAI's Codex pricing page (checked 2026-10-19), ChatGPT Work and Codex share usage: ChatGPT Work usage inside ChatGPT uses the same pricing, credits and usage limits as Codex, and usage limits are also shared with other agentic features once their pricing is in effect, which currently includes ChatGPT for Excel on Plus and Pro. Local messages and cloud chats share your plan's allowance, and the same page says model choice, context, reasoning, tool use, retrieval and caching all affect usage.

### Why doesn't Codex wait for the reset and retry?

Per the openai/codex source (rust-v0.163.0, checked 2026-10-19), Codex treats a usage limit as final: when that 429 arrives, it ends the turn and shows the message without retrying, whatever the response says about waiting. Retrying would only meet the same limit until it resets. Rate-limit 429s are different, and the exceeded-retry-limit page (https://router.one/codex-exceeded-retry-limit) explains when Codex does retry those.

### Can an OpenAI API key or a custom model provider keep me working?

Yes, for local sessions, because they bill differently. Per OpenAI's Codex pricing page (checked 2026-10-19), all users may run extra local chats using an API key, at standard API rates. A custom model provider with env_key, such as Router One, sends the session's requests to that provider with its own key: through Router One they are billed per token from your Router One wallet, or from the allowance of a Router One plan tier that lists the model. Codex cloud requires signing in with ChatGPT, so cloud tasks stay on your ChatGPT plan's limits.

### Do I have to sign out of ChatGPT in Codex to use Router One?

No. Per Codex's authentication docs (checked 2026-10-19), a custom model provider with env_key uses the API key in that environment variable, so the stored ChatGPT sign-in can stay for Codex cloud and for any session on the built-in OpenAI provider. Leave requires_openai_auth off on the Router One provider: per the same docs, when it is true, Codex ignores env_key.

### Does this setup work from Mainland China?

Yes. The gateway is reachable from Mainland China without a VPN, and the configuration is the same as anywhere else: the same config.toml and the same ROUTER_ONE_API_KEY variable. Top up the wallet with a card, Alipay or stablecoins.

## See also

- Codex exceeded retry limit (429): https://router.one/codex-exceeded-retry-limit
- Codex model at capacity: https://router.one/codex-model-at-capacity
- Codex model not supported fix: https://router.one/codex-model-not-supported
- Codex CLI in China: https://router.one/codex-china
- Codex CLI without ChatGPT Plus: https://router.one/blog/codex-cli-without-chatgpt-plus
- insufficient_quota fix: https://router.one/openai-insufficient-quota
- Error codes reference: https://router.one/llm-api-error-codes
- CLI setup guide: https://router.one/docs/guides/cli-setup
- OpenAI's Codex pricing page: https://developers.openai.com/codex/pricing
- Canonical page: https://router.one/codex-usage-limit
- Models and per-model token rates: https://router.one/models (markdown: https://router.one/models.md)
- Pricing: https://router.one/pricing
- API docs (markdown): https://router.one/docs.md
- Company facts: https://router.one/facts/company.md
