Claude Chat Object
Crazyrouter supports the Anthropic native Messages API. This page only documents Message-object and streaming-event behavior that was revalidated in production on2026-03-23.
Message object
The current minimal production request uses:model: "claude-sonnet-4-6"POST /v1/messages
Common fields
| Field | Type | Meaning |
|---|---|---|
id | string | Unique message identifier |
type | string | Always message |
role | string | Always assistant |
content | array | Content block list |
model | string | Actual model used |
stop_reason | string | Stop reason such as end_turn, tool_use, or max_tokens |
usage | object | Token usage |
Common content block types
Text block:Streaming event types
In the2026-03-23 production recheck, native streaming for claude-sonnet-4-6 returned these SSE events:
message_startcontent_block_startcontent_block_deltacontent_block_stopmessage_deltamessage_stop
Event examples
message_start
content_block_start
content_block_delta
content_block_stop
message_delta
message_stop
Practical interpretation
- If
contentonly containstext, it is a normal answer - If
stop_reason = "tool_use"andcontentcontainstool_use, the model is making a tool call - If
contentcontainsthinking, the current model and request shape triggered extended thinking
A
thinking block is not returned by every Claude model by default. The currently revalidated explicit thinking path is claude-opus-4-6-thinking.