Claude Code 2.1.280, released on September 22, 2026, made Claude Opus 5.5 its default model and moved the opus alias to it. Claude Code also treats any gateway set in ANTHROPIC_BASE_URL as the Claude API. Through Router One that means an updated Claude Code sends claude-opus-5-5 unless you pin a model — and as of the 2026-09-24 plan response no Pro, Max or Ultra tier lists that id, so those requests are billed per token to your wallet.
Below are three ready-to-paste setups and the details behind them: the bare id, the 1M window, effort, and what does not work. For curl, SDKs and endpoints, see the Claude Opus 5.5 API guide; for your own code, the Opus 5.5 migration guide covers the breaking changes and their 400 errors.
What changed in Claude Code 2.1.280
The Claude Code changelog entry for 2.1.280 reads: "Added Claude Opus 5.5 (claude-opus-5-5), now the default Opus model". The model configuration docs show what moved for an Anthropic API connection:
| Setting | v2.1.219 to v2.1.279 | v2.1.280 and later |
|---|---|---|
default model | Opus 5 | Opus 5.5 |
opus alias | Opus 5 (claude-opus-5) | Opus 5.5 (claude-opus-5-5) |
| Starting effort on that model | high | medium |
| Thinking on that model | can be turned off | always on |
The same page states that "Opus 5.5 requires Claude Code v2.1.280 or later." The LLM gateway protocol page adds that with ANTHROPIC_BASE_URL set, "Claude Code treats the gateway as the Claude API" — so a Router One session gets the right-hand column.
Anthropic's Opus 5.5 overview positions the model "For long-running agentic coding and knowledge work", with a 1M-token context window, up to 128K output tokens on the synchronous Messages API, always-on adaptive thinking and medium as the default effort. Those are the vendor's statements; Router One vouches for its catalog entry and how the gateway routes and bills the model.
What it means on Router One
- The id works as is. Since 2026-09-24 the gateway resolves
claude-opus-5-5to the catalog idanthropic/claude-opus-5.5and serves it on/v1/messages, the endpoint Claude Code calls. The catalog lists a 1,048,576-token window, text and image input, and one rate line across the whole window; the model page carries the live rate. - It is not in a plan. As of the 2026-09-24 plan response, no tier of Pro, Max or Ultra lists
claude-opus-5-5, so every Opus 5.5 call bills per token to the wallet, plan or no plan. Claude Opus 5 stays in the Premium models tier of all three plans. A subscriber whose Claude Code drew Premium quota on Opus 5 starts paying from the wallet once Claude Code updates to 2.1.280, and with an empty or nearly empty wallet those requests fail with HTTP 402, abilling_errorwhose message starts with "insufficient balance" (API error codes). - Background work follows the main model. For a session that connects with
ANTHROPIC_AUTH_TOKEN, the gateway protocol page gives the background-task model as "The main model", unlessANTHROPIC_DEFAULT_HAIKU_MODELpins one. Subagents that don't name a model run on the session model too. - No silent model swaps. Router One never answers an Opus 5.5 request with Opus 5 or any other model, and a 400 parameter error goes back to Claude Code instead of being retried. As of 2026-09-24 there is no AWS or Google Cloud channel id for Opus 5.5 either; the
aws/andvertex/Claude ids stop at Opus 5 (channel model ids guide). - Rates differ by id. Claude Opus 5.5 vs Claude Opus 5 renders both from the live catalog; check it rather than assuming the newer model costs less per token. The prices in Claude Code's
/modelpicker are Claude Code's own display label, not Router One's rates.
Dashboard → Logs shows each request with its model, input and output tokens, cost and status (per-request observability), so the next few rows after a change tell you which model Claude Code really sends.
Three setups, ready to paste
All three keep the two variables from the Claude Code setup: ANTHROPIC_BASE_URL=https://api.router.one (no /v1) and ANTHROPIC_AUTH_TOKEN set to your Router One key. ANTHROPIC_API_KEY is not required — leave it unset. Each setup comes as shell exports for ~/.zshrc or ~/.bashrc and as the env block of ~/.claude/settings.json, where the Router One one-click install writes its values. Keep each variable in one place: an env block in the settings file replaces the value inherited from the shell. Run claude update first; everything below assumes 2.1.280 or later.
Setup A: Opus 5.5, billed to the wallet
The new default, pinned so a later change of default doesn't move you without notice:
export ANTHROPIC_BASE_URL=https://api.router.one
export ANTHROPIC_AUTH_TOKEN=sk-your-api-key
export ANTHROPIC_MODEL=claude-opus-5-5
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.router.one",
"ANTHROPIC_AUTH_TOKEN": "sk-your-api-key",
"ANTHROPIC_MODEL": "claude-opus-5-5"
}
}
Every request here bills to the wallet; add setup C to keep background calls off Opus 5.5.
Setup B: stay on plan quota with Opus 5
For Pro, Max and Ultra subscribers who want Claude Code to keep drawing the Premium models quota:
export ANTHROPIC_BASE_URL=https://api.router.one
export ANTHROPIC_AUTH_TOKEN=sk-your-api-key
export ANTHROPIC_MODEL=claude-opus-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.router.one",
"ANTHROPIC_AUTH_TOKEN": "sk-your-api-key",
"ANTHROPIC_MODEL": "claude-opus-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5"
}
}
ANTHROPIC_MODEL sets the session model; ANTHROPIC_DEFAULT_OPUS_MODEL points the opus alias at Opus 5 too, which covers /model opus, the planning phase of opusplan and subagents defined with model: opus. When the Premium tier's quota for the cycle runs out, further calls bill to the wallet at posted rates; the pricing page shows each plan's model lists and quotas, and Router One plans for Claude Code covers how overage is billed.
Setup C: background tasks on Haiku 4.5
Add one line to setup A or B, as an export or inside the same env block. The JSON below is setup A with the line added; for setup B, add the same last line to its block:
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.router.one",
"ANTHROPIC_AUTH_TOKEN": "sk-your-api-key",
"ANTHROPIC_MODEL": "claude-opus-5-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}
This sets the model behind the haiku alias and Claude Code's background functionality. Router One accepts claude-haiku-4-5 as an alias of anthropic/claude-haiku-4.5, which sits in the Standard models tier of all three plans.
To switch one session only, launch with claude --model claude-opus-5; at launch, --model and ANTHROPIC_MODEL take precedence over a model saved with /model.
Why the bare id and not the catalog id
Router One accepts both claude-opus-5-5 and anthropic/claude-opus-5.5, but Claude Code reads them differently. It picks per-model defaults from the model id, and it recognizes Opus 5.5 by the official id. The catalog id contains the text claude-opus-5, and Claude Code's docs note that an id containing a Claude model name it knows, such as anthropic/claude-opus-4-8, resolves to that model. So with the catalog id you get Opus 5 defaults: effort starts at high, /model shows Opus 5, and some side requests turn thinking off or force a tool call, which Opus 5.5 does not accept. Router One rewrites those two settings for Opus 5.5 so those requests no longer fail, but a forced tool call becomes optional — WebSearch, for one, may answer in plain text without searching — and the defaults and the label stay wrong.
| Model value | On Router One | Claude Code treats it as |
|---|---|---|
claude-opus-5-5 | accepted (alias) | Opus 5.5 — use this |
opus | Claude Code sends claude-opus-5-5 (unless ANTHROPIC_DEFAULT_OPUS_MODEL is set) | Opus 5.5 |
anthropic/claude-opus-5.5 | accepted (catalog id) | Opus 5 — avoid it, or map it |
claude-opus-5.5, anthropic/claude-opus-5-5, claude-opus-5-5-thinking | rejected with HTTP 404 (model not supported) | — |
If a shared config has to keep the catalog id, map it with modelOverrides in the settings file, keyed by the Anthropic id, as Claude Code's error reference describes. Claude Code then sends the catalog id while treating the session as Opus 5.5:
{
"modelOverrides": {
"claude-opus-5-5": "anthropic/claude-opus-5.5"
}
}
The 1M context window
Opus 5.5 has a 1M-token window on Anthropic's API, and the Router One catalog lists 1,048,576 tokens with one rate line across the whole window — no long-context tier. Behind a gateway, though, Claude Code's docs say it "can't verify 1M support" and name the [1m] selection as the way to use the full window (written there for Sonnet 5). Without the suffix, Claude Code may budget the session as if the window were smaller and compact long before 1M. Add the suffix for Opus 5.5:
export ANTHROPIC_MODEL='claude-opus-5-5[1m]'
export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-5-5[1m]'
# or for a single launch
claude --model 'claude-opus-5-5[1m]'
Inside a session, /model opus[1m] does the same. Keep the quotes: zsh reads an unquoted [1m] in a command argument as a filename pattern and stops with "no matches found". Claude Code strips the suffix before sending, so Router One still receives claude-opus-5-5; on ANTHROPIC_DEFAULT_OPUS_MODEL it extends the window to everything that uses the opus alias. If either variable already sits in the env block of ~/.claude/settings.json, as in the JSON form of the setups above, change it there, for example "ANTHROPIC_MODEL": "claude-opus-5-5[1m]": the settings value wins over a shell export.
A larger window is not free: Claude Code resends the conversation every turn, so a longer history means more input per turn. CLAUDE_CODE_AUTO_COMPACT_WINDOW (a plain integer from 100000 to 1000000) compacts earlier; the Claude Code token cost breakdown covers the other levers.
Effort is the thinking control
Thinking is always on for Opus 5.5; effort decides how much of it happens. Claude Code offers low, medium, high, xhigh and max, and starts Opus 5.5 at medium:
claude --effort high # this launch only
export CLAUDE_CODE_EFFORT_LEVEL=high # every session; overrides --effort and /effort
# inside a session: /effort high # saved for the current model
Two details from the model configuration docs: "a top-level effortLevel in your user settings file doesn't count for Opus 5.5", so a level kept there for Opus 5 does not carry over, and max lasts for the current session only unless it comes from CLAUDE_CODE_EFFORT_LEVEL. Claude Code sends the level with each request, and Router One's /v1/messages passes output_config.effort through unchanged. Higher effort means more thinking tokens, which are billed as output tokens, the same as on Anthropic's API.
What does not work: thinking off and fast mode
Turning thinking off. Claude Code's docs are explicit: "You can't turn thinking off on Opus 5.5 or the Fable models. The session toggle, alwaysThinkingEnabled, and MAX_THINKING_TOKENS=0 have no effect there, and the model decides per step how much to think based on the effort level." To spend less on thinking, lower the effort.
Fast mode. /fast is not available through Router One. Claude Code's fast mode docs say a session authenticating with ANTHROPIC_AUTH_TOKEN alone treats fast mode as disabled by your organization, and Router One rejects a fast-mode request for Opus 5.5 with HTTP 400 before it reaches the model.
Balance, keys and version
- Keep a healthy balance. Before a request runs, Router One sets aside an estimate of its cost that grows with the requested
max_tokens, and Claude Code asks for a large output allowance on Opus 5.5. When the balance cannot cover that estimate, the gateway lowersmax_tokensto what it covers, and with thinking always on, a long answer can stop early. Parallel subagents each need their own allowance, so top up before long sessions: card or Alipay through one hosted checkout, or USDT/USDC on six chains. - One key per tool. Give Claude Code its own key with a
maxSpendcap. When the key reaches its cap, it cannot spend past that amount and your other keys keep working; a key can also carry an expiry date. Dashboard → API Keys shows how much of its cap that key has spent (per-key cost tracking). - Check the version. Opus 5.5 needs 2.1.280 or later:
claude --version # should print 2.1.280 or later
claude update
Version 2.1.281 (September 23, 2026) also fixes several streaming issues seen behind proxies and gateways, so update to it.
FAQ
Why is my wallet charged when I have a Router One Max plan? Claude Code 2.1.280 and later sends claude-opus-5-5 unless you pin a model, and as of the 2026-09-24 plan response no Pro, Max or Ultra tier lists Opus 5.5, so those requests, background tasks included, bill per token to the wallet. To keep drawing plan quota, set ANTHROPIC_MODEL=claude-opus-5 and ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5 (setup B) and check new rows in Dashboard → Logs.
I chose Opus 5.5, but /model shows Opus 5. Why? Usually the model value is the catalog id anthropic/claude-opus-5.5, which Claude Code reads as Opus 5; use claude-opus-5-5 or map the catalog id with modelOverrides, and confirm claude --version shows 2.1.280 or later. Claude Code can also switch by itself: its docs describe an automatic fallback that re-runs a request flagged by the safety classifiers on another model (Opus 5 for biology, Opus 4.8 for cybersecurity) and shows a notice in the transcript. That happens in Claude Code, not in Router One; run /model to go back.
Can I turn thinking off to save tokens? No. Claude Code's toggle, alwaysThinkingEnabled and MAX_THINKING_TOKENS=0 have no effect on Opus 5.5. Lower the effort instead (/effort low, --effort low or CLAUDE_CODE_EFFORT_LEVEL=low), or use a model whose thinking can be turned off, such as Opus 5.
Does the [1m] suffix cost more? Not per token. As of 2026-09-24 the Router One catalog lists one rate line for Opus 5.5 across its whole window, and the suffix never reaches the gateway. It changes how much history Claude Code keeps before compacting; every turn resends that history, so a longer session costs more in total. CLAUDE_CODE_AUTO_COMPACT_WINDOW sets an earlier compaction point.
Does /fast work through Router One? No. With only ANTHROPIC_AUTH_TOKEN set, Claude Code treats fast mode as disabled, and Router One rejects fast-mode requests for Opus 5.5 with HTTP 400. For quicker turns, lower the effort.
How do I go back to Opus 5? For one launch, run claude --model claude-opus-5; inside a session, /model claude-opus-5 switches and saves it as your default. For every session, use setup B in your shell profile or the env block of ~/.claude/settings.json. As of 2026-09-24 Opus 5 is in the Premium models tier of the Pro, Max and Ultra plans, so plan holders draw quota again.
Which model do subagents use? Claude Code checks, in order, the model passed when Claude starts the subagent, the model in its definition, CLAUDE_CODE_SUBAGENT_MODEL, then the session model, so a subagent that sets none of the first three runs on Opus 5.5 in an unpinned session. Set CLAUDE_CODE_SUBAGENT_MODEL (for example to claude-sonnet-5) to change that default; background tasks run on the main model unless ANTHROPIC_DEFAULT_HAIKU_MODEL is set (setup C).
Next steps
- Call the model directly with the Claude Opus 5.5 API guide, and fix your own code with the Opus 5.5 migration guide.
- Compare the live spec sheets: Claude Opus 5.5 vs Claude Opus 5, Claude Opus 5.5 vs Claude Sonnet 5 (Sonnet 5 is in the Mid-tier models tier of all three plans) and Claude Opus 5.5 vs GPT-6 Sol. GPT-6 Sol runs in Codex CLI and other OpenAI-compatible tools, not in Claude Code (GPT-6 Sol tool setup).
- New to Claude Code on Router One? Start with the one-line install on Claude Code in China or the setup guide.