Introduction
Claude Haiku 5.5 is Anthropic's newest Haiku, released on 7 October 2026, and Anthropic places it as the fastest model in its current line-up, aimed at classification, extraction, routing and subagent work. It is served here on one OpenAI-compatible endpoint at /v1/chat/completions. A request can carry up to 1,000,000 tokens of text and images, and one reply can run to 128,000 tokens.
Prompts up to 100,000 tokens cost $0.10 per million input tokens and $0.50 per million output tokens, Anthropic's list price; a longer prompt moves the whole request to $0.50 and $2.50. The model thinks adaptively and decides how much each request needs, so there is no reasoning_effort here, and it ends a reply when it is done rather than at max_tokens. Up to 128 tools can be defined per request, tool calls can be forced, and replies stream over Server-Sent Events.
Key features & highlights
Fast enough for every turn
In our tests on 8 October 2026 a short answer came back in three to five seconds and a 600-word scene in under forty. That is quick enough to put Haiku 5.5 behind every message of a chat product, not only the occasional request.
Strong scenes written through
The platform adds no filter of its own. In our tests the model wrote 19 of 24 content requests in full, including the Maximum level and, in 7 of 9 attempts, the Very strong scene; the other 2 Very strong attempts were toned down but still finished. It refused the Strong-level request twice and rewrote it once as a milder scene.
Tool calls you can force
tool_choice accepts auto, none, required or a named tool. Forcing the call turns the model into a dependable classifier or extractor: every answer arrives as arguments to the function you defined.
Request parameters
| Parameter | Required | Description |
|---|---|---|
messages | Yes | Ordered conversation turns, oldest first. Roles are system, developer, user, assistant and tool; system and developer messages become the model's instructions. at least 1 items |
max_tokens | No | Accepted for compatibility, up to 128,000; default 4,096. |
tools | No | Up to 128 function definitions per request, in the OpenAI function format: a name, a description and JSON-schema parameters for each. at most 128 items |
parallel_tool_calls | No | true by default. Set it to false and the model calls at most one tool per turn, which suits chains where each call depends on the result of the one before. Default: |
tool_choice | No | auto (the default when tools are given), none, required, or a named function such as {"type": "function", "function": {"name": " |
Pricing
Input $0.10 / Output $0.50 per 1 million tokens; Prompts over 100K tokens: Input $0.50 / Output $2.50
Use cases
Companion chat and roleplay at volume
Put the persona, the world rules and every character's age in the system message, then send the history oldest first. Short turns come back in seconds and the output rate is $0.50 per million tokens, so a long-running character stays cheap to run.
Routing, labelling and extraction
Send a support ticket, an email or a form and force a call to a tool whose parameters are the labels or fields you need. The result is the same shape every time, ready for your queue or your database.
Reading screenshots and photos
Attach an image to a user message and ask about it: the error in a screenshot, the totals on a receipt, the panels of a dashboard. A typical screenshot came to about 2,300 input tokens in our tests.
Prompt guide & pro tips
State the reply length in the prompt
max_tokens does not stop the reply on this endpoint. Write the limit you want into the system message, such as "Reply in at most 120 words", and the model keeps to it; you pay for the tokens it actually writes.
Use a forced tool instead of asking for JSON
There is no response_format. Define a tool whose parameters are the schema you want, set tool_choice to it, and validate the arguments that come back.
Keep the fixed text first and retry failures
Put the system message and reference material at the top and append the conversation after it. At busy times a request can fail with an error; failed requests are not billed, so wait a few seconds and send it again, and set stream to true for long replies.
API quick start
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "anthropic/claude-haiku-5.5/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
See the API reference for authentication, the complete schema, polling, and error handling.














