Anthropic released Claude Sonnet 5.5 on September 28. The API ID is claude-sonnet-5-5.

The announcement keeps Sonnet 5’s prices: USD 2 for input, USD 10 for output and USD 0.20 for cache reads, each per million tokens.

Anthropic says fewer tokens per task cut cost by up to 30% and that output generation is 30%+ faster. Both are vendor evaluations and do not guarantee savings or speed for an existing application.

The main migration risk is the request contract. Anthropic points callers that previously disabled thinking to the between_tools setting rather than a model-ID-only change.

Settings that fail and responses that change

The Messages API migration guide spells out the compatibility issues. On Sonnet 5.5, thinking.type disabled returns a 400 invalid_request_error.

The setting that turns off up-front thinking is between_tools, accepted only at effort low, medium or high. At xhigh or max it returns 400.

tool_choice any and tool are also rejected with 400. The guide offers auto combined with strict tools as the alternative.

The response side changes too. A response can begin with thinking blocks, so code that reads content[0].text breaks, and tool-use loops need to pass thinking blocks back unchanged.

The September 28 announcement quoted $0.20 per million cache-read tokens, while the migration guide checked October 3 quoted $0.10. These dated official figures differ; live billing should be checked against the applicable pricing page.

These checks concern the Messages API. The guide says Claude Managed Agents needs nothing beyond the model name change.

Replay representative requests before comparing cost

For a Messages API integration, replaying a few representative requests is the first step. Following the guide’s request format, a replay with up-front thinking off looks like this.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 16000,
    "thinking": {"type": "between_tools"},
    "output_config": {"effort": "high"},
    "messages": [{"role": "user", "content": "..."}]
  }'

If a stored request still carries thinking disabled or tool_choice any or tool, the 400 errors documented in the guide come back. That is where failure shows up before any quality comparison.

Next comes recording tool-call success, final-result accuracy, retries and the billed cost of a successful task together. Even at fixed token rates, thinking settings and extra calls can change the bill.

A nominally unchanged token rate says little about migration cost until the changed request and response contracts are reflected in successful tasks.