> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anyfast.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Opus 5.5

> Use Anthropic Claude Opus 5.5 through AnyFast for long-running agentic coding, complex knowledge work, vision, and tool-based workflows.

Claude Opus 5.5 is Anthropic's Opus model for long-running agentic coding and knowledge work. Use the AnyFast model ID `claude-opus-5-5` with the native Anthropic Messages API at `POST /v1/messages`.

## Model specifications

| Specification             | Value                                   |
| ------------------------- | --------------------------------------- |
| Model ID                  | `claude-opus-5-5`                       |
| Context window            | 1M tokens                               |
| Maximum output            | 128K tokens                             |
| Input → output            | Text and images → text                  |
| Thinking                  | Adaptive, always on                     |
| Default effort            | `medium`                                |
| Effort levels             | `low`, `medium`, `high`, `xhigh`, `max` |
| Reliable knowledge cutoff | June 2026                               |

## What changed from Opus 5

* **Always-on thinking** — Omit `thinking` or set it to `{"type":"adaptive"}`. Both `disabled` and manual `enabled` modes return `400`.
* **New default effort** — Requests that omit `output_config.effort` use `medium`, rather than the `high` default used by Opus 5.
* **No forced tool use** — `tool_choice` supports `auto` and `none`. The `any` and named `tool` modes return `400`.
* **Preserved thinking** — Keep the conversation prefix unchanged and return prior thinking blocks exactly as received during tool-use and multi-turn workflows.
* **Refusal handling** — A safeguard refusal can return HTTP `200` with `stop_reason: "refusal"` and additional information in `stop_details`.

## Quick example

<CodeGroup>
  ```bash cURL theme={null}
  curl https://www.anyfast.ai/v1/messages \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 4096,
      "output_config": { "effort": "medium" },
      "messages": [
        {
          "role": "user",
          "content": "Review this migration plan and identify the three highest-risk assumptions."
        }
      ]
    }'
  ```

  ```python Python theme={null}
  import anthropic

  client = anthropic.Anthropic(
      api_key="YOUR_API_KEY",
      base_url="https://www.anyfast.ai"
  )

  message = client.messages.create(
      model="claude-opus-5-5",
      max_tokens=4096,
      output_config={"effort": "medium"},
      messages=[
          {
              "role": "user",
              "content": "Review this migration plan and identify the three highest-risk assumptions."
          }
      ]
  )

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

  ```python Streaming theme={null}
  import anthropic

  client = anthropic.Anthropic(
      api_key="YOUR_API_KEY",
      base_url="https://www.anyfast.ai"
  )

  with client.messages.stream(
      model="claude-opus-5-5",
      max_tokens=4096,
      output_config={"effort": "medium"},
      messages=[
          {"role": "user", "content": "Create a phased rollout plan for this database migration."}
      ],
  ) as stream:
      for text in stream.text_stream:
          print(text, end="")
  ```
</CodeGroup>

## Core parameters

| Parameter              | Type    | Required | Description                                                                                         |
| ---------------------- | ------- | -------- | --------------------------------------------------------------------------------------------------- |
| `model`                | string  | Yes      | Must be `claude-opus-5-5`.                                                                          |
| `messages`             | array   | Yes      | Conversation turns with `user` or `assistant` roles. Text, images, and tool results are supported.  |
| `max_tokens`           | integer | Yes      | Maximum output tokens across thinking and visible response text. Range: 1–128000.                   |
| `output_config.effort` | string  | No       | Controls thinking depth. Supports `low`, `medium`, `high`, `xhigh`, and `max`; default is `medium`. |
| `thinking.type`        | string  | No       | Omit it or set it to `adaptive`. Thinking cannot be disabled.                                       |
| `tools`                | array   | No       | Tool definitions available to the model.                                                            |
| `tool_choice.type`     | string  | No       | Supports `auto` and `none`. Forced `any` or a named `tool` is not supported.                        |
| `stream`               | boolean | No       | Enables SSE streaming. Default: `false`.                                                            |
| `stop_sequences`       | array   | No       | Custom sequences that stop generation.                                                              |

<Note>
  Adaptive thinking is always on. Use `output_config.effort` to balance reasoning depth, latency, and token use. Leave enough room in `max_tokens` for both thinking and visible output, especially at `xhigh` or `max` effort.
</Note>

<Warning>
  Do not send `thinking: {"type":"disabled"}` or manual extended thinking with `budget_tokens`; both return `400`. Keep `tool_choice` at `auto` or `none` because forced `any` and named `tool` choices are also rejected.
</Warning>

## Tool use

Keep `tool_choice` at `auto` (the default) or use `none`. Describe each tool and its input schema precisely, then state in the prompt when the tool should be used. In a tool loop, inspect content blocks by `type` instead of assuming the first block contains text.

## Multi-turn conversations

When an assistant turn contains thinking blocks, send the complete turn back exactly as received. Treat the system prompt, tool definitions, and earlier messages as append-only. Changing content before an Opus 5.5 thinking block can invalidate the block and return `400`.

## Migrating from Opus 5

1. Change the model ID from `claude-opus-5` to `claude-opus-5-5`.
2. Remove `thinking: {"type":"disabled"}` and manual `budget_tokens` settings.
3. Set `output_config.effort` explicitly if you need behavior comparable across model versions.
4. Replace forced `tool_choice` modes with `auto` or `none`.
5. Update refusal handling to check `stop_reason` and `stop_details`, even when the HTTP status is `200`.

<Info>
  Anthropic released Claude Opus 5.5 on September 22, 2026. See the official [model overview](https://platform.claude.com/docs/en/models/opus-5-5/overview), [what's new](https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5), and [announcement](https://www.anthropic.com/claude-opus-5-5).
</Info>

<Card title="API Reference" icon="code" href="/api-reference/model-api/anthropic/claude-opus-5-5">
  View request fields, response blocks, and the interactive API playground.
</Card>

<script src="/public/feedback.js" />
