AI EngineerGuide

thinking type enabled with budget_tokens returns a 400 on Claude Haiku 5.5

Returns 400 Applies to claude-haiku-5-5 on the Anthropic Messages API.

Anthropic's docs describe this error but don't quote the exact message, so we don't either.

How to fix it

Remove the budget and set an effort level in output_config.effort.

Before
{
  "max_tokens": 1024,
  "messages": [
    {
      "content": "Summarize this ticket.",
      "role": "user"
    }
  ],
  "model": "claude-haiku-4-5-20251001",
  "thinking": {
    "budget_tokens": 4000,
    "type": "enabled"
  }
}
After (Claude Haiku 5.5)
{
  "max_tokens": 1024,
  "messages": [
    {
      "content": "Summarize this ticket.",
      "role": "user"
    }
  ],
  "model": "claude-haiku-5-5",
  "output_config": {
    "effort": "high"
  },
  "thinking": {
    "type": "adaptive"
  }
}

Official source

A thinking value of {"type": "enabled", "budget_tokens": N} returns a 400 error, so a request that sends it needs a new thinking value.

https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide (last checked 2026-11-02)

Other changes for the same models

All migration errors

FAQ

How do I fix this when moving to claude-haiku-5-5?

Remove the budget and set an effort level in output_config.effort.

Where is this documented?

In Anthropic’s official docs: https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide, last checked 2026-11-02.