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

# Claude Opus 5.5 API Guide: Model ID, Endpoints, First Call

_Claude Opus 5.5 on Router One: the claude-opus-5-5 id, 1M context, always-on thinking, plan coverage, and first calls on /v1/messages and Chat Completions._

Claude Opus 5.5 is in the Router One catalog as `anthropic/claude-opus-5.5` (observed 2026-09-24), and the gateway also accepts Anthropic's own id, `claude-opus-5-5`. Send `"model": "claude-opus-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; the [model page](https://router.one/models/claude-opus-5-5) carries the live rates.

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

## Claude Opus 5.5 at a glance

| Field | What the catalog lists (2026-09-24) |
| --- | --- |
| Catalog id | `anthropic/claude-opus-5.5` |
| Short id (alias) | `claude-opus-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 ids | none — no `aws/`, `vertex/` or `azure/` version |

Anthropic's [Claude Opus 5.5 overview](https://platform.claude.com/docs/en/models/opus-5-5/overview) adds what the catalog does not carry: a September 22, 2026 release date, a 1M-token context window, up to 128K output tokens on the synchronous Messages API, a June 2026 knowledge cutoff, and a model built "for long-running agentic coding and knowledge work". Adaptive thinking is always on; depth is set with `output_config.effort` — `low`, `medium`, `high`, `xhigh` or `max` — and the default is `medium` ([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.

## Where it sits in the Claude lineup on Router One

On 2026-09-24 the catalog lists 63 ids (56 text, 7 image), and Claude Opus 5.5 is the only addition since the day before. The default-channel Claude ids are `anthropic/claude-fable-5`, `anthropic/claude-opus-5.5`, `anthropic/claude-opus-5`, `anthropic/claude-opus-4.8`, `anthropic/claude-opus-4.7-thinking`, `anthropic/claude-opus-4.6`, `anthropic/claude-opus-4.6-thinking`, `anthropic/claude-sonnet-5`, `anthropic/claude-sonnet-4.6`, `anthropic/claude-sonnet-4.6-thinking` and `anthropic/claude-haiku-4.5`. They share the Claude endpoint family; what differs is the spec sheet and rate on each model page and how each model does on your prompts — this post does not rank them.

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

- [Claude Opus 5.5 vs Claude Opus 5](https://router.one/models/compare/claude-opus-5-5-vs-claude-opus-5) — the generation step.
- [Claude Opus 5.5 vs GPT-6 Sol](https://router.one/models/compare/claude-opus-5-5-vs-gpt-6-sol) — the cross-vendor question.
- [Claude Opus 5.5 vs Claude Sonnet 5](https://router.one/models/compare/claude-opus-5-5-vs-claude-sonnet-5) — Opus or Sonnet for a given workload.

The AWS and Google Cloud channels carry Claude ids only up to Claude Opus 5 (`aws/claude-opus-5`, `vertex/claude-opus-5`) and the Azure channel carries none, so Claude Opus 5.5 is available only on the default channel. The [channel model ids guide](https://router.one/blog/azure-aws-vertex-channel-model-ids) explains what a channel prefix changes; ids come and go, so check [the catalog](https://router.one/models) before hard-coding one.

## 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 Opus 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 for every Claude Opus 5.5 request and cannot be turned off (at lower effort, simple prompts may skip it). 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 omitted from the response, which is this model's default ([Anthropic's migration guide](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#thinking-in-every-response)). Effort is therefore a cost lever as much as a quality one: a higher level usually means more output tokens, so measure per task before setting a default.

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

## Do subscription plans cover Claude Opus 5.5?

Not as of the 2026-09-24 plan response: no tier of Pro, Max or Ultra lists `claude-opus-5-5`, so Claude Opus 5.5 calls bill per token to your wallet balance at the posted rates, whether or not you hold a plan. Claude Opus 5 stays in the Premium models tier of all three plans. The [pricing page](https://router.one/pricing) shows the live plan model lists.

That matters most for Claude Code. From v2.1.280, Claude Opus 5.5 is Claude Code's default model for Anthropic API accounts and the target of the `opus` alias ([model configuration](https://code.claude.com/docs/en/model-config)), and 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 `claude-opus-5-5` unless you pin a model. Router One's install script sets only `ANTHROPIC_BASE_URL` and `ANTHROPIC_AUTH_TOKEN`, not a model. A subscriber who updates Claude Code therefore moves from plan quota to wallet billing without touching a setting; to keep drawing plan quota, set `ANTHROPIC_MODEL=claude-opus-5` and `ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5` (the second moves the `opus` alias too). [Claude Code on Opus 5.5](https://router.one/blog/claude-code-opus-5-5-setup) covers model pinning, background tasks, effort and the 1M window.

## Send the first request

1. **Create a key.** Dashboard → API Keys → New key. Keys look like `sk-rk-...`. 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. **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`.
3. **Call the model.** The examples use `claude-opus-5-5`; for plain HTTP calls the catalog id `anthropic/claude-opus-5.5` works too.

Messages API, streaming, with the effort level set explicitly (`medium` is the vendor default):

```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-opus-5-5",
    "max_tokens": 16000,
    "stream": true,
    "output_config": {"effort": "medium"},
    "messages": [{"role": "user", "content": "Review this migration plan and list the three riskiest steps."}]
  }'
```

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-opus-5-5",
    max_tokens=16000,
    output_config={"effort": "medium"},
    messages=[{"role": "user", "content": "Review this migration plan and list the three riskiest steps."}],
) 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-opus-5-5",
    "max_tokens": 16000,
    "stream": true,
    "messages": [{"role": "user", "content": "Review this migration plan and list the three riskiest steps."}]
  }'
```

Four rules that hold on both endpoints:

- **Set `max_tokens` on every request.** Thinking and the answer share it, and thinking cannot be turned off on this model, so do not rely on a default. For `xhigh` or `max`, Anthropic's migration guide suggests starting at 64,000.
- **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 `temperature`, `top_p` and `top_k`.** Anthropic rejects non-default values on this model with a 400.

**Which endpoint.** `/v1/messages` is the recommended path: `output_config.effort`, `thinking` with its `display` option and `anthropic-beta` headers pass through unchanged, and it keeps the `thinking` blocks you send 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. 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`.

4. **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 Opus 5.5 request is never silently answered by Claude Opus 5 or anything else.

## What behaves differently from Claude Opus 5

Anthropic's [what's new page](https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5) lists four breaking changes and several behavior differences, and the [migration guide](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide) turns them into a checklist. In short:

- **Thinking cannot be turned off.** `thinking: {"type": "disabled"}` and `{"type": "enabled", "budget_tokens": N}` both return 400; omit `thinking` or send `{"type": "adaptive"}`, and control depth with `output_config.effort`.
- **The default effort is `medium`**, one level below Claude Opus 5's `high`; set it explicitly if your prompts were tuned at the old default.
- **Forced tool use returns 400.** `tool_choice` `any` or `tool` is rejected; use `auto` with strict tools and say in the prompt when the tool applies, or structured outputs for JSON.
- **Thinking blocks are tied to the model and the conversation.** Pass them back unmodified in tool loops; text between tool calls now arrives in `thinking` blocks, empty at the default `display: "omitted"`.
- **Computer use moves to `computer_toolset_20260801`.** `computer_20251124` is rejected on the Claude API and Google Cloud.
- **Refusals** come back as HTTP 200 with `stop_reason: "refusal"`. 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.

Through Router One, Claude Opus 5.5 requests (under either id) are adjusted on both endpoints so a stray legacy parameter does not fail the call: legacy `thinking` settings become adaptive (a `disabled` request that sets no effort gets `effort: "low"`), `temperature`, `top_p` and `top_k` are dropped, forced `tool_choice` is downgraded to `auto`, and Chat Completions `reasoning_effort` maps to `output_config.effort` (`none` and `minimal` become `low`). If a request is still rejected with a 400, non-streaming `/v1/messages` usually returns Anthropic's error text, and parameter-validation messages such as `prompt is too long: …` now come through on streaming `/v1/messages` and on `/v1/chat/completions` too; other 400s on those two paths return a generic `invalid request (upstream rejected with status 400)`. Fix the code anyway — Anthropic's API returns 400 for the same parameters, and other gateways may too — and since a downgraded tool choice lets the model answer in text, check `stop_reason` and content types instead of assuming a tool call. [Migrating to Claude Opus 5.5](https://router.one/blog/claude-opus-5-5-migration-guide) walks through each change with before-and-after code.

## 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 Opus 5.5 on Router One?**
The catalog id is anthropic/claude-opus-5.5, and since 2026-09-24 the gateway also accepts Anthropic's own id, claude-opus-5-5, for the same model. Use claude-opus-5-5 in Claude Code and in SDKs that recognize models by name, because they apply Opus 5.5 behavior only to the official id. The spellings claude-opus-5.5 and anthropic/claude-opus-5-5, and any -thinking variant, are not accepted.

**Can I use Claude Opus 5.5 in Claude Code?**
Yes, from Claude Code v2.1.280. Pointed at Router One, Claude Code sends claude-opus-5-5 by default unless you pin another model. Keep the official id (or /model opus) rather than the catalog id: with anthropic/claude-opus-5.5, Claude Code applies Claude Opus 5 defaults.

**How much does Claude Opus 5.5 cost through Router One?**
Per token, at the input and output rates on the Claude Opus 5.5 model page: one line across the whole window, with thinking billed as output. The comparison pages render the live gap against Claude Opus 5, GPT-6 Sol and Claude Sonnet 5. As of 2026-09-24 every call bills to wallet balance, plan or no plan.

**Is Claude Opus 5.5 included in Router One subscription plans?**
Not as of the 2026-09-24 plan response: no Pro, Max or Ultra tier lists it, so its calls bill per token to wallet balance. Claude Opus 5 is in the Premium models tier of all three plans, so subscribers who want Claude Code to keep drawing plan quota set ANTHROPIC_MODEL=claude-opus-5 and ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5.

**Can Codex CLI or the Responses API call Claude Opus 5.5?**
No. Router One serves Claude ids on /v1/messages and /v1/chat/completions; /v1/responses does not serve them. Codex CLI speaks only the Responses wire format, so keep it on ids served there, such as GPT.

**Is there an AWS or Google Cloud channel version of Claude Opus 5.5?**
Not as of 2026-09-24. The aws/ and vertex/ Claude ids stop at Claude Opus 5 and there is no azure/ Claude id.

**Does fast mode work through Router One?**
No. Router One rejects speed "fast" for Claude Opus 5.5 with HTTP 400 before the request reaches the model, so Claude Code's /fast does not work through Router One either. For latency-sensitive work, try a lower effort level.

**What is the maximum output, and why was a long answer cut short?**
Anthropic documents up to 128K output tokens on the synchronous Messages API, and thinking counts toward max_tokens. Set max_tokens explicitly with room for both, stream long work, and check stop_reason: max_tokens means the cap was reached. Keep enough wallet balance too: when the balance cannot cover a request's estimate, the gateway lowers max_tokens, which can end a long answer early.

## Next steps

- Open the [Claude Opus 5.5 model page](https://router.one/models/claude-opus-5-5) for the live rates.
- Compare it with [Claude Opus 5](https://router.one/models/compare/claude-opus-5-5-vs-claude-opus-5), [GPT-6 Sol](https://router.one/models/compare/claude-opus-5-5-vs-gpt-6-sol) or [Claude Sonnet 5](https://router.one/models/compare/claude-opus-5-5-vs-claude-sonnet-5).
- Move existing code over with [Migrating to Claude Opus 5.5](https://router.one/blog/claude-opus-5-5-migration-guide).
- Set up the terminal agent with [Claude Code on Opus 5.5](https://router.one/blog/claude-code-opus-5-5-setup).
- 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-opus-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
