inference-providers

Claude Haiku 4.5

by anthropic · family claude

Facts

Release date2025-10-01
Retired date
Knowledge cutoff
Context (max)200,000
Max output64,000
Modalitiestext, image → text
Aliasesclaude-haiku-4-5-20251001
Open weightsno
DescriptionFast Claude; supports extended thinking but not interleaved thinking.

Unknown values are shown as —.

Intelligence Index v4.1.1: 30 · reasoning · Source: Artificial Analysis (accessed 2026-08-20)

Offerings

ProviderWire IDVariantEndpointProtocolStatusPrice (USD / Mtok)Reasoning
Anthropicclaude-haiku-4-5v1-messagesanthropic-messagesgabudget · default on · returns thinking_blocks · round-trips signature
AWS Bedrockanthropic.claude-haiku-4-5-20251001-v1:0invoke-anthropicanthropic-messagesga1.00 / 5.00budget · default on · returns thinking_blocks · round-trips signature
NEAR AI Cloudanthropic/claude-haiku-4-5chatopenai-chatga1.00 / 5.00adaptive · default on · returns reasoning_content
OpenCode Zenclaude-haiku-4-5messagesanthropic-messagesga1.00 / 5.00budget · default on · returns thinking_blocks · round-trips signature
OpenRouteranthropic/claude-haiku-4.5chat-completionsopenai-chatga1.00 / 5.00effort · default on · returns reasoning_content · round-trips reasoning_content

Reasoning controls

Anthropic· claude-haiku-4-5· v1-messages budget

thinking.budget_tokens from 1,024 tokens · must be < max_tokens

thinking.type on enabled · off disabled

budget · default on · returns thinking_blocks · round-trips signature

Incompatible with: temperature, top_p, top_k

AWS Bedrock· anthropic.claude-haiku-4-5-20251001-v1:0· invoke-anthropic budget

thinking.budget_tokens from 1,024 tokens · must be < max_tokens

thinking.type on enabled · off disabled

budget · default on · returns thinking_blocks · round-trips signature

Incompatible with: temperature, top_p, top_k

NEAR AI Cloud· anthropic/claude-haiku-4-5· chat adaptive

adaptive · default on · returns reasoning_content

OpenCode Zen· claude-haiku-4-5· messages budget

thinking.budget_tokens from 1,024 tokens · must be < max_tokens

thinking.type on enabled · off disabled

budget · default on · returns thinking_blocks · round-trips signature

Incompatible with: temperature, top_p, top_k

OpenRouter· anthropic/claude-haiku-4.5· chat-completions effort

reasoning.effort nonelowmediumhigh●xhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

Example requests

Anthropic · anthropic-messages · claude-haiku-4-5

curl 'https://api.anthropic.com/v1/messages' \
  -H 'anthropic-version: 2023-06-01' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: <YOUR_API_KEY>' \
  -d '{
  "model": "claude-haiku-4-5",
  "max_tokens": 3072,
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "budget_tokens": 2048
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.anthropic.com/v1/messages",
    headers={
      "anthropic-version": "2023-06-01",
      "Content-Type": "application/json",
      "x-api-key": "<YOUR_API_KEY>"
    },
    json={
      "model": "claude-haiku-4-5",
      "max_tokens": 3072,
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "budget_tokens": 2048
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.anthropic.com/v1/messages", {
  method: "POST",
  headers: {
    "anthropic-version": "2023-06-01",
    "Content-Type": "application/json",
    "x-api-key": "<YOUR_API_KEY>"
  },
  body: JSON.stringify({
    "model": "claude-haiku-4-5",
    "max_tokens": 3072,
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "budget_tokens": 2048
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include signature artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, top_k.

AWS Bedrock · anthropic-messages · anthropic.claude-haiku-4-5-20251001-v1:0

# sigv4 endpoints require request signing — see provider page
curl 'https://bedrock-runtime.{region}.amazonaws.com/model/{modelId}/invoke' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
  "max_tokens": 3072,
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "budget_tokens": 2048
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://bedrock-runtime.{region}.amazonaws.com/model/{modelId}/invoke",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
      "max_tokens": 3072,
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "budget_tokens": 2048
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://bedrock-runtime.{region}.amazonaws.com/model/{modelId}/invoke", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "anthropic.claude-haiku-4-5-20251001-v1:0",
    "max_tokens": 3072,
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "budget_tokens": 2048
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include signature artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, top_k.

NEAR AI Cloud · openai-chat · anthropic/claude-haiku-4-5

curl 'https://cloud-api.near.ai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "anthropic/claude-haiku-4-5",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ]
}'
Python (requests)
import requests

resp = requests.post(
    "https://cloud-api.near.ai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "anthropic/claude-haiku-4-5",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ]
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://cloud-api.near.ai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "anthropic/claude-haiku-4-5",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ]
  }),
})
console.log(await resp.json())

OpenCode Zen · anthropic-messages · claude-haiku-4-5

curl 'https://opencode.ai/zen/v1/messages' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "claude-haiku-4-5",
  "max_tokens": 3072,
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "budget_tokens": 2048
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/v1/messages",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "claude-haiku-4-5",
      "max_tokens": 3072,
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "budget_tokens": 2048
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/messages", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "claude-haiku-4-5",
    "max_tokens": 3072,
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "budget_tokens": 2048
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include signature artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, top_k.

OpenRouter · openai-chat · anthropic/claude-haiku-4.5

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "anthropic/claude-haiku-4.5",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "high"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "anthropic/claude-haiku-4.5",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "high"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "anthropic/claude-haiku-4.5",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "high"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).