> Markdown mirror of https://router.one/blog/claude-sonnet-5-5-api-guide for AI assistants and crawlers. Router One is a unified, OpenAI-compatible LLM API gateway.
> Published: 2026-09-30 · Author: Router One Team

# Claude Sonnet 5.5 API Guide: Model ID, Claude Code, Plans

_Claude Sonnet 5.5 on Router One: the claude-sonnet-5-5 id, 1M context, wallet billing (no plan tier), Claude Code alias pins and what changes from Sonnet 5._

Claude Sonnet 5.5, which Anthropic released on September 28, 2026, is in the Router One catalog as `anthropic/claude-sonnet-5.5` (listed 2026-09-29), and the gateway also accepts Anthropic's own id, `claude-sonnet-5-5`. Send `"model": "claude-sonnet-5-5"` to `https://api.router.one/v1/messages` with a Router One key — or point an OpenAI-compatible client at `https://api.router.one/v1` — and the request is routed, metered and logged like every other model. No Pro, Max or Ultra tier lists it in the 2026-09-30 plan response, so every call bills per token to your wallet; the [Claude Sonnet 5.5 model page](https://router.one/models/claude-sonnet-5-5) carries the live rates.

This guide covers what the catalog lists for the id, how to choose between Claude Sonnet 5.5, Claude Sonnet 5 and Claude Opus 5.5, how billing and plans apply, what Claude Code 2.1.284 changed, the first request on each endpoint, and what changes from Claude Sonnet 5. Catalog and plan observations are dated; the live catalog is the source of truth for a new request.

## Claude Sonnet 5.5 at a glance

| Field | What the catalog lists (2026-09-30) |
| --- | --- |
| Catalog id | `anthropic/claude-sonnet-5.5`, listed 2026-09-29 |
| Short id (alias) | `claude-sonnet-5-5`, Anthropic's own model id |
| Context window | 1,048,576 tokens |
| Input / output | text and image in, text out |
| Capability flags | chat, streaming, tool calling, vision |
| Price lines | one, across the whole window — no long-context tier |
| Endpoints | `POST /v1/messages` (Anthropic-native, recommended) and `POST /v1/chat/completions` |
| Not served on | `POST /v1/responses` |
| Channel | default channel only — no `aws/`, `vertex/` or `azure/` version |
| Plans | no Pro, Max or Ultra tier (2026-09-30 plan response) — wallet billing |

Anthropic's [Claude Sonnet 5.5 overview](https://platform.claude.com/docs/en/models/sonnet-5-5/overview) (checked 2026-09-30) gives Anthropic's own spec: a September 28, 2026 release, a 1M-token context window, up to 128K output tokens on the synchronous Messages API, a June 2026 reliable knowledge cutoff, and a model Anthropic describes as "the best combination of speed and intelligence". Adaptive thinking is on by default; its lowest setting, `between_tools`, turns off up-front thinking, and depth is set with `output_config.effort` — `low`, `medium`, `high`, `xhigh` or `max` — with `high` as the API default ([effort docs](https://platform.claude.com/docs/en/build-with-claude/effort)). Those are Anthropic's statements; Router One vouches for the catalog entry and how the gateway routes and bills it.

## Claude Sonnet 5.5, Claude Sonnet 5 or Claude Opus 5.5?

Anthropic's [announcement](https://www.anthropic.com/claude-sonnet-5-5) (September 28, 2026) calls Claude Sonnet 5.5, the second model in the Claude 5.5 family, "a clear upgrade over Claude Sonnet 5" that "runs 30%+ faster", and "a faster, lower-cost complement to Claude Opus 5.5": "Where Opus 5.5 is built for complex work requiring careful judgment, Sonnet 5.5 is strongest at well-scoped everyday tasks, fixing bugs, and creating polished documents, slides, and spreadsheets." The same page says Opus 5.5 "remains clearly stronger at complex, open-ended work requiring sustained judgment". Anthropic reports 70.6% for Claude Sonnet 5.5 on Terminal-Bench 4.0 (Claude Sonnet 5: 10.3%; Claude Opus 5.5 at xhigh effort: 66.4%) and 55.5% on CursorBench 4.0 (Claude Sonnet 5: 34.1%; Claude Opus 5.5: 57.8%). Those are Anthropic's results, not Router One measurements: run your own prompts before you move a workload.

What Router One adds to the choice:

- **Plan quota or wallet.** Claude Sonnet 5 stays in the Mid-tier models tier of all three plans, so its requests draw plan quota; Claude Sonnet 5.5 and Claude Opus 5.5 are in no plan tier and bill the wallet. Anthropic now lists [Claude Sonnet 5](https://platform.claude.com/docs/en/models/sonnet-5/overview) as a legacy model that is "still available", with retirement not sooner than June 30, 2027 ([model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations)).
- **Posted rates.** Router One posts its own rates for each model, and Claude Sonnet 5.5's differ from Claude Sonnet 5's. The comparison pages below render the live figures, so re-baseline cost when you switch.
- **Switching mid-conversation.** Per Anthropic, Claude Sonnet 5.5 reads Claude Sonnet 5's thinking blocks but not Claude Opus 5's, Claude Opus 5.5's or any Claude Fable model's, and no other model reads the blocks Claude Sonnet 5.5 writes. A conversation that moves from Sonnet 5 to Sonnet 5.5 keeps its reasoning; one that switches between Sonnet 5.5 and Opus 5.5, in either direction, runs the turns after the switch without the earlier model's reasoning.

Three comparison pages render the spec sheets and live rates side by side:

- [Claude Sonnet 5.5 vs Claude Sonnet 5](https://router.one/models/compare/claude-sonnet-5-5-vs-claude-sonnet-5) — the generation step, and wallet billing against Mid-tier plan quota.
- [Claude Sonnet 5.5 vs Claude Opus 5.5](https://router.one/models/compare/claude-sonnet-5-5-vs-claude-opus-5-5) — Sonnet or Opus for a given workload, both billed to the wallet.
- [Claude Opus 5.5 vs Claude Sonnet 5](https://router.one/models/compare/claude-opus-5-5-vs-claude-sonnet-5) — if you stay on Claude Sonnet 5.

## How billing works

The posted input and output rates on the model page apply across the whole 1,048,576-token window: the catalog lists no long-context tier for Claude Sonnet 5.5, so a request that fills most of the window is billed on the same line as a short one.

Adaptive thinking is on by default, and the model decides how much to think, steered by effort. Thinking tokens are billed as output tokens at the model's posted output rate ([pricing facts](https://router.one/facts/pricing.md)), also when the thinking text is not returned, which is the default `display: "omitted"` ([Anthropic's thinking docs](https://platform.claude.com/docs/en/build-with-claude/thinking)). Effort is therefore a cost lever as much as a quality one. Anthropic recalibrated the levels on this model, so a level does not produce the same amount of thinking as on Claude Sonnet 5; the API default is `high` and Claude Code's is `medium`. Measure per task before you set a default.

This guide prints no per-token figures because they go stale. The [Claude Sonnet 5.5 model page](https://router.one/models/claude-sonnet-5-5) shows the live rates, and the comparison pages above render the gap against Claude Sonnet 5 and Claude Opus 5.5.

## Do subscription plans cover Claude Sonnet 5.5?

Not in the 2026-09-30 plan response: no tier of Pro, Max or Ultra lists `claude-sonnet-5-5`, so Claude Sonnet 5.5 calls bill per token to your wallet balance at the posted rates, whether or not you hold a plan. Claude Sonnet 5 stays in the Mid-tier models tier of all three plans, where a request whose input is above its long-context threshold draws more than one plan request, and Claude Opus 5.5 is in no tier either. Plan model lists change; the [pricing page](https://router.one/pricing) shows the live lists and quota bands.

That matters most for Claude Code.

## Claude Code: the sonnet alias now sends claude-sonnet-5-5

Claude Code 2.1.284 (September 28, 2026) made Claude Sonnet 5.5 the default Sonnet on the Anthropic API: the `sonnet` alias now resolves to it and sends `claude-sonnet-5-5`, per the [Claude Code changelog](https://code.claude.com/docs/en/changelog) and [model configuration docs](https://code.claude.com/docs/en/model-config) (checked 2026-09-30). Claude Code treats a gateway set through `ANTHROPIC_BASE_URL` as the Claude API ([gateway protocol](https://code.claude.com/docs/en/llm-gateway-protocol)), so a session pointed at Router One sends that id too. Router One lists `claude-sonnet-5-5` from 2026-09-29, but no Pro, Max or Ultra tier lists it in the 2026-09-30 plan response, so on a plan everything that goes through the `sonnet` alias — `/model sonnet`, subagents defined with `model: sonnet`, `/statusline` and the execution phase of `opusplan` — bills per token to the wallet.

The alias moved in 2.1.284. On 2026-09-30, Claude Code's `stable` release channel was still on 2.1.280, where `sonnet` points at Claude Sonnet 5, and the default `latest` channel was on 2.1.285 (npm dist-tags); `claude --version` shows which one you run.

Pin the aliases in your shell profile — or in the `env` block of `~/.claude/settings.json` if the one-click install wrote your setup, since the install script sets only `ANTHROPIC_BASE_URL` and `ANTHROPIC_AUTH_TOKEN`, not a model:

```bash
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
```

The Sonnet line keeps those requests on plan quota: it moves the `sonnet` alias to Claude Sonnet 5, which is in the Mid-tier models tier of all three plans; on the wallet you can drop it and keep the alias on Claude Sonnet 5.5 at its posted rate. The `fable` alias needs no pin: Claude Code resolves it to Claude Fable 5.1 (`claude-fable-5-1`), which Router One listed again on 2026-09-30 and which, like Claude Fable 5, is in no plan tier. The Haiku line is optional: it runs background tasks on Claude Haiku 4.5 instead of the main model. Plan holders also set `ANTHROPIC_MODEL=claude-opus-5` and `ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5`, because the default Claude Opus 5.5 (`claude-opus-5-5`) is in no plan tier. [Claude Code in China](https://router.one/claude-code-china) and the step-by-step [Claude Code setup guide](https://router.one/blog/claude-code-setup-guide) carry the full setup, and [Claude Code on Opus 5.5](https://router.one/blog/claude-code-opus-5-5-setup) covers subagent models and background tasks.

Per the model-config docs, Claude Code runs this model at `medium` effort by default (the API default is `high`) and cannot turn its thinking off; `MAX_THINKING_TOKENS=0` has no effect on it. The context window Claude Code budgets is a client-side setting: the 2.1.285 changelog says sessions behind a custom `ANTHROPIC_BASE_URL` now use the 1M window of models that have one, Sonnet 5 and later included, while the model-config docs (checked 2026-09-30) still say to select the 1M-context Sonnet in the model picker, which maps to `sonnet[1m]`, for the full window behind a gateway. Keep the official id or the `sonnet` alias rather than the catalog id: for an id it does not recognize, Claude Code assumes a 200K window and needs a `modelOverrides` entry to map the id to the model's capabilities ([gateway protocol](https://code.claude.com/docs/en/llm-gateway-protocol)).

## Send the first request

1. **Create a key.** Dashboard → API Keys → Create Key. Keys look like `sk-...`. For a trial, give the key a `maxSpend` cap: it cannot spend past that amount, and your other keys keep working ([per-key cost tracking](https://router.one/llm-cost-tracking)).
2. **Keep a wallet balance.** Claude Sonnet 5.5 calls bill the wallet whether or not you hold a plan.
3. **Pick the base URL for your client.** Anthropic-native SDKs and tools take `https://api.router.one` (the SDK's `base_url`, or `ANTHROPIC_BASE_URL`) and call `/v1/messages` under it; OpenAI-compatible SDKs take `https://api.router.one/v1`.
4. **Call the model.** The examples use `claude-sonnet-5-5`; for plain HTTP calls the catalog id `anthropic/claude-sonnet-5.5` works too.

Messages API, streaming, with the effort level set explicitly (`high` is the API default; Anthropic suggests starting at `medium` for well-specified agentic coding and at `medium` or `low` for chat):

```bash
curl https://api.router.one/v1/messages \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 16000,
    "stream": true,
    "output_config": {"effort": "medium"},
    "messages": [{"role": "user", "content": "Find the bug in this function and propose a minimal fix."}]
  }'
```

The same call from the Anthropic Python SDK (current release: `pip install -U anthropic`) — only `base_url` and the key change. A response can open with one or more `thinking` blocks, so read content by block type, not by position:

```python
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.router.one",
    api_key="sk-your-api-key",
)

with client.messages.stream(
    model="claude-sonnet-5-5",
    max_tokens=16000,
    output_config={"effort": "medium"},
    messages=[{"role": "user", "content": "Find the bug in this function and propose a minimal fix."}],
) as stream:
    message = stream.get_final_message()

for block in message.content:
    if block.type == "text":
        print(block.text)
print(message.stop_reason, message.usage)
```

Chat Completions, for OpenAI-compatible clients, again with an explicit `max_tokens` and streaming on:

```bash
curl https://api.router.one/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 16000,
    "stream": true,
    "messages": [{"role": "user", "content": "Find the bug in this function and propose a minimal fix."}]
  }'
```

Rules that hold on both endpoints:

- **Set `max_tokens` on every request.** It covers thinking plus text ([Anthropic's migration guide](https://platform.claude.com/docs/en/models/sonnet-5-5/migration-guide)), so leave room for both rather than relying on a default. Router One's Chat Completions reference documents `max_tokens` as the output cap; where the client offers a choice, send `max_tokens`.
- **Stream long work.** `stream: true` returns output as it is generated ([streaming guide](https://router.one/llm-streaming)).
- **Keep a healthy wallet balance.** Before a request runs, the gateway reserves an estimate against your balance; when the balance cannot cover it, the gateway lowers `max_tokens` to fit, which can cut a long answer short.
- **Leave out non-default `temperature`, `top_p` and `top_k`.** Anthropic's model page says non-default values return a 400 on this model.
- **Send files inline.** Router One serves no Files API: pass images as base64 content blocks, and send PDFs on `/v1/messages` as base64 `document` blocks, not file references.

**Which endpoint.** `/v1/messages` is the recommended path for Claude Sonnet 5.5: `output_config.effort`, `thinking` with its `display` option and `anthropic-beta` headers pass through unchanged, and it is the endpoint that carries the `thinking` blocks you pass back in a tool loop. `/v1/chat/completions` handles plain chat and tool calling, but it does not forward `anthropic-beta` headers or replay thinking blocks across turns, so a multi-turn tool loop runs without reasoning continuity; set effort on `/v1/messages` with `output_config.effort`. For JSON, use `/v1/messages` with `output_config.format` or a strict tool with `tool_choice` `auto` ([Anthropic's structured outputs docs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs)); `response_format` on Chat Completions is not a reliable way to get JSON from a Claude id. `/v1/messages/count_tokens` on Router One returns a local estimate, not Anthropic's count; billed numbers are in each response's `usage`.

5. **Read the trace.** Dashboard → Logs shows each call with model, input and output tokens, cost, latency and status ([per-request observability](https://router.one/llm-observability)). A 400 for a bad parameter is not retried and does not move to another model: a failed Claude Sonnet 5.5 request is never silently answered by Claude Sonnet 5 or anything else.

## What changes from Claude Sonnet 5

Anthropic's [what's new page](https://platform.claude.com/docs/en/models/sonnet-5-5/whats-new-sonnet-5-5) lists five breaking changes for code already running on Claude Sonnet 5, and the [migration guide](https://platform.claude.com/docs/en/models/sonnet-5-5/migration-guide) turns them into a checklist (both checked 2026-09-30). In short, as Anthropic documents them for its API:

- **Thinking off becomes `between_tools`.** `thinking: {"type": "disabled"}` returns a 400 on Claude Sonnet 5.5. Send `{"type": "between_tools"}` instead: the lowest setting, accepted at `low`, `medium` and `high` effort (not `xhigh` or `max`), with no other field. Manual `budget_tokens` budgets are rejected, as on Claude Sonnet 5; control depth with `output_config.effort`.
- **Forced tool use returns a 400.** `tool_choice` `any` or `tool` is rejected, while `auto` (the default) and `none` work. For schema-valid input, keep `auto` with strict tools or move the schema to structured outputs, and say in the prompt when the tool applies.
- **Thinking blocks are tied to the model and the conversation.** Pass them back unchanged and keep conversations append-only: replaying a block after an edit to the `system` prompt, the `tools` or an earlier message can return a 400.
- **Computer use moves to `computer_toolset_20260801`.** The earlier `computer_20251124` tool is rejected on the Claude API and Google Cloud.
- **Fewer advisor pairings.** The fifth change narrows which advisors the beta advisor tool accepts; Anthropic's page lists them.
- **Text between tool calls moves into `thinking` blocks.** Notes longer than a sentence or two come back as progress-update `thinking` blocks, empty at the default `display: "omitted"`. No request fails, but an interface that streams those notes goes quiet between tool calls; the migration guide shows how to receive them.
- **Effort levels are recalibrated.** A level does not produce the same amount of thinking as on Claude Sonnet 5. Anthropic suggests starting at `high` unless the workload is agentic or latency-sensitive, at `medium` for well-specified agentic coding, and at `medium` or `low` for chat.
- **More refusal categories.** A decline returns HTTP 200 with `stop_reason: "refusal"` and a `stop_details` category: `cyber`, `bio`, `frontier_llm`, `reasoning_extraction` or `general_harms`. On Router One, retry on another model from your own code: the server-side `fallbacks` parameter is rejected with a 400 before the request reaches the model.

The tokenizer is Claude Sonnet 5's, so the same text produces the same token counts and per-token rates compare like for like. Router One's compatibility adjustments for Claude Opus 5.5, described in [Migrating to Claude Opus 5.5](https://router.one/blog/claude-opus-5-5-migration-guide), do not apply to Claude Sonnet 5.5: write its requests to Anthropic's contract above, and check `stop_reason` and content block types rather than assuming the shape of a reply.

## From mainland China

Requests reach `api.router.one` from mainland China without a VPN, on the same key and base URL, Claude Code included. Top up with a card or Alipay through one hosted checkout, or with USDT/USDC on six chains (Tron, BSC, Ethereum, Polygon, Base, Arbitrum). No US credit card required. For Claude Code, see [Claude Code in China](https://router.one/claude-code-china) and the step-by-step [setup guide](https://router.one/blog/claude-code-setup-guide).

## FAQ

**What is the model id for Claude Sonnet 5.5 on Router One?**
The catalog id is anthropic/claude-sonnet-5.5, and the gateway also accepts Anthropic's own id, claude-sonnet-5-5, for the same model. Use claude-sonnet-5-5 in Claude Code, which assumes a 200K window for an id it does not recognize. Either id bills per token to the wallet, since no plan tier lists the model in the 2026-09-30 plan response.

**When was Claude Sonnet 5.5 released, and since when can I call it on Router One?**
Anthropic released it on September 28, 2026. Router One listed it as anthropic/claude-sonnet-5.5 on 2026-09-29, and the gateway also accepts claude-sonnet-5-5; no plan tier lists it in the 2026-09-30 plan response, so its calls bill per token to the wallet.

**How much does Claude Sonnet 5.5 cost through Router One?**
Per token, at the input and output rates on the Claude Sonnet 5.5 model page: one line across the whole window, with thinking billed as output. The comparison pages render the live gap against Claude Sonnet 5 and Claude Opus 5.5. No plan tier lists it in the 2026-09-30 plan response, so every call bills the wallet, plan or no plan.

**Is Claude Sonnet 5.5 included in Router One subscription plans?**
Not in the 2026-09-30 plan response: no Pro, Max or Ultra tier lists it, so its calls bill per token to the wallet on every plan. Claude Sonnet 5 stays in the Mid-tier models tier of all three plans, and the pricing page shows the live plan model lists.

**After updating Claude Code, why do plan holders' Sonnet requests bill the wallet?**
Claude Code 2.1.284 and later point the sonnet alias at Claude Sonnet 5.5 and send claude-sonnet-5-5, which is in no plan tier, so /model sonnet, subagents defined with model: sonnet, /statusline and the execution phase of opusplan bill per token to the wallet. Set ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5 to keep them on plan quota, and optionally ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5 for background tasks.

**Does Claude Sonnet 5 code work unchanged on Claude Sonnet 5.5?**
On Router One the key, base URL and endpoints stay the same, so the model string is the only switch, but Sonnet 5 code may still need changes per Anthropic's migration guide (checked 2026-09-30): send between_tools instead of disabled to turn up-front thinking off, replace a forced tool_choice (any or tool) with auto, keep conversations append-only with thinking blocks passed back unchanged, and move computer use to the new toolset. The switched calls bill the wallet, since no plan tier lists Claude Sonnet 5.5.

**Can I turn thinking off on Claude Sonnet 5.5?**
Only up-front thinking. Per Anthropic's docs, the lowest API setting is the between_tools thinking type, accepted at high effort or below, while the disabled type returns a 400; in Claude Code, thinking cannot be turned off on this model. Thinking tokens bill as output at the posted rate from your wallet, so a lower effort level is the cost lever.

**Can Codex CLI or the Responses API call Claude Sonnet 5.5?**
No. Router One serves Claude ids on /v1/messages and /v1/chat/completions; on /v1/responses a Claude id gets a 400 saying the model must be called via /v1/messages or /v1/chat/completions. Codex CLI speaks only the Responses wire format, so keep it on ids served there, such as GPT.

**Does Claude Sonnet 5.5 get the full 1M context through Router One?**
The catalog lists 1,048,576 tokens for it with one price line across the whole window, so a long request bills at the same posted rates as a short one, from the wallet. How much of the window Claude Code budgets is set on the client: its 2.1.285 changelog says sessions behind a custom ANTHROPIC_BASE_URL use the 1M window of models that have one, Sonnet 5 and later included.

## Next steps

- Open the [Claude Sonnet 5.5 model page](https://router.one/models/claude-sonnet-5-5) for the live rates and endpoints.
- Compare it with [Claude Sonnet 5](https://router.one/models/compare/claude-sonnet-5-5-vs-claude-sonnet-5) or [Claude Opus 5.5](https://router.one/models/compare/claude-sonnet-5-5-vs-claude-opus-5-5).
- For Claude Opus 5.5, read the [Claude Opus 5.5 API guide](https://router.one/blog/claude-opus-5-5-api-guide).
- Set up Claude Code with [Claude Code in China](https://router.one/claude-code-china) and the [Claude Code setup guide](https://router.one/blog/claude-code-setup-guide).
- Check which models each plan covers on the [pricing page](https://router.one/pricing).
- See this month's other catalog changes in the [September 2026 new-model guide](https://router.one/blog/new-llm-models-september-2026).

## See also

- Canonical page: https://router.one/blog/claude-sonnet-5-5-api-guide
- Claude Code China: https://router.one/claude-code-china
- All blog posts: https://router.one/blog
- 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
