The whole hunk
from line 58, old and new numbered
/
lines
from line 58
5858 -H "anthropic-version: 2023-06-01" \
5959 -H "content-type: application/json" \
6060 -d '{
61 "model": "claude-opus-5",
61 "model": "claude-opus-5-5",
6262 "max_tokens": 1024,
6363 "messages": [{"role": "user", "content": "Hello!"}]
6464 }' | jq 'if .stop_reason == "end_turn" then (.content[] | select(.type == "text") | .text) else . end'
from line 66
6666
6767 ```bash CLI
6868 ant messages create \
69 --model claude-opus-5 \
69 --model claude-opus-5-5 \
7070 --max-tokens 1024 \
7171 --message '{role: user, content: "Hello!"}' \
7272 --format json | jq 'if .stop_reason == "end_turn" then (.content[] | select(.type == "text") | .text) else . end'
from line 76
7676 client = anthropic.Anthropic()
7777
7878 response = client.messages.create(
79 model="claude-opus-5",
79 model="claude-opus-5-5",
8080 max_tokens=1024,
8181 messages=[{"role": "user", "content": "Hello!"}],
8282 )
from line 91
9191 const client = new Anthropic();
9292
9393 const response = await client.messages.create({
94 model: "claude-opus-5",
94 model: "claude-opus-5-5",
9595 max_tokens: 1024,
9696 messages: [{ role: "user", content: "Hello!" }]
9797 });
from line 110
110110
111111 var response = await client.Messages.Create(new MessageCreateParams
112112 {
113 Model = Model.ClaudeOpus5,
113 Model = Model.ClaudeOpus5_5,
114114 MaxTokens = 1024,
115115 Messages = [new() { Role = Role.User, Content = "Hello!" }]
116116 });
from line 132
132132 client := anthropic.NewClient()
133133
134134 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
135 Model: anthropic.ModelClaudeOpus5,
135 Model: anthropic.ModelClaudeOpus5_5,
136136 MaxTokens: 1024,
137137 Messages: []anthropic.MessageParam{
138138 anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
from line 157
157157
158158 Message response = client.messages().create(
159159 MessageCreateParams.builder()
160 .model(Model.CLAUDE_OPUS_5)
160 .model(Model.CLAUDE_OPUS_5_5)
161161 .maxTokens(1024L)
162162 .addUserMessage("Hello!")
163163 .build()
from line 177
177177 $response = $client->messages->create(
178178 maxTokens: 1024,
179179 messages: [['role' => 'user', 'content' => 'Hello!']],
180 model: 'claude-opus-5',
180 model: 'claude-opus-5-5',
181181 );
182182
183183 if ($response->stopReason === 'end_turn') {
from line 194
194194 client = Anthropic::Client.new
195195
196196 response = client.messages.create(
197 model: "claude-opus-5",
197 model: "claude-opus-5-5",
198198 max_tokens: 1024,
199199 messages: [{ role: "user", content: "Hello!" }]
200200 )
from line 544
544544 ```python Python
545545 def handle_empty_response(client, messages):
546546 response = client.messages.create(
547 model="claude-opus-5", max_tokens=1024, messages=messages
547 model="claude-opus-5-5", max_tokens=1024, messages=messages
548548 )
549549
550550 # Check if response is empty
from line 556
556556 messages.append({"role": "user", "content": "Please continue"})
557557
558558 response = client.messages.create(
559 model="claude-opus-5", max_tokens=1024, messages=messages
559 model="claude-opus-5-5", max_tokens=1024, messages=messages
560560 )
561561
562562 return response
from line 568
568568 messages: Anthropic.MessageParam[]
569569 ): Promise<Anthropic.Message> {
570570 let response = await client.messages.create({
571 model: "claude-opus-5",
571 model: "claude-opus-5-5",
572572 max_tokens: 1024,
573573 messages
574574 });
from line 582
582582 messages.push({ role: "user", content: "Please continue" });
583583
584584 response = await client.messages.create({
585 model: "claude-opus-5",
585 model: "claude-opus-5-5",
586586 max_tokens: 1024,
587587 messages
588588 });
from line 597
597597 {
598598 var response = await client.Messages.Create(new MessageCreateParams
599599 {
600 Model = Model.ClaudeOpus5,
600 Model = Model.ClaudeOpus5_5,
601601 MaxTokens = 1024,
602602 Messages = messages
603603 });
from line 610
610610
611611 response = await client.Messages.Create(new MessageCreateParams
612612 {
613 Model = Model.ClaudeOpus5,
613 Model = Model.ClaudeOpus5_5,
614614 MaxTokens = 1024,
615615 Messages = messages
616616 });
from line 623
623623 ```go Go
624624 func handleEmptyResponse(client anthropic.Client, messages []anthropic.MessageParam) (*anthropic.Message, error) {
625625 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
626 Model: anthropic.ModelClaudeOpus5,
626 Model: anthropic.ModelClaudeOpus5_5,
627627 MaxTokens: 1024,
628628 Messages: messages,
629629 })
from line 637
637637 messages = append(messages, anthropic.NewUserMessage(anthropic.NewTextBlock("Please continue")))
638638
639639 response, err = client.Messages.New(context.TODO(), anthropic.MessageNewParams{
640 Model: anthropic.ModelClaudeOpus5,
640 Model: anthropic.ModelClaudeOpus5_5,
641641 MaxTokens: 1024,
642642 Messages: messages,
643643 })
from line 654
654654 static Message handleEmptyResponse(AnthropicClient client, List<MessageParam> messages) {
655655 Message response = client.messages().create(
656656 MessageCreateParams.builder()
657 .model(Model.CLAUDE_OPUS_5)
657 .model(Model.CLAUDE_OPUS_5_5)
658658 .maxTokens(1024L)
659659 .messages(messages)
660660 .build()
from line 672
672672
673673 response = client.messages().create(
674674 MessageCreateParams.builder()
675 .model(Model.CLAUDE_OPUS_5)
675 .model(Model.CLAUDE_OPUS_5_5)
676676 .maxTokens(1024L)
677677 .messages(extended)
678678 .build()
from line 689
689689 $response = $client->messages->create(
690690 maxTokens: 1024,
691691 messages: $messages,
692 model: 'claude-opus-5',
692 model: 'claude-opus-5-5',
693693 );
694694
695695 // Check if response is empty
from line 700
700700 $response = $client->messages->create(
701701 maxTokens: 1024,
702702 messages: $messages,
703 model: 'claude-opus-5',
703 model: 'claude-opus-5-5',
704704 );
705705 }
706706
from line 711
711711 ```ruby Ruby
712712 def handle_empty_response(client, messages)
713713 response = client.messages.create(
714 model: "claude-opus-5",
714 model: "claude-opus-5-5",
715715 max_tokens: 1024,
716716 messages: messages
717717 )
from line 722
722722 messages << { role: "user", content: "Please continue" }
723723
724724 response = client.messages.create(
725 model: "claude-opus-5",
725 model: "claude-opus-5-5",
726726 max_tokens: 1024,
727727 messages: messages
728728 )
from line 751
751751 -H "anthropic-version: 2023-06-01" \
752752 -H "content-type: application/json" \
753753 -d '{
754 "model": "claude-opus-5",
754 "model": "claude-opus-5-5",
755755 "max_tokens": 10,
756756 "messages": [{"role": "user", "content": "Explain quantum physics"}]
757757 }' | jq '.stop_reason'
from line 759
759759
760760 ```bash CLI
761761 ant messages create \
762 --model claude-opus-5 \
762 --model claude-opus-5-5 \
763763 --max-tokens 10 \
764764 --message '{role: user, content: "Explain quantum physics"}' \
765765 --format json | jq '.stop_reason'
from line 769
769769 client = anthropic.Anthropic()
770770 # Request with limited tokens
771771 response = client.messages.create(
772 model="claude-opus-5",
772 model="claude-opus-5-5",
773773 max_tokens=10,
774774 messages=[{"role": "user", "content": "Explain quantum physics"}],
775775 )
from line 785
785785
786786 // Request with limited tokens
787787 const response = await client.messages.create({
788 model: "claude-opus-5",
788 model: "claude-opus-5-5",
789789 max_tokens: 10,
790790 messages: [{ role: "user", content: "Explain quantum physics" }]
791791 });
from line 803
803803 // Request with limited tokens
804804 var response = await client.Messages.Create(new MessageCreateParams
805805 {
806 Model = Model.ClaudeOpus5,
806 Model = Model.ClaudeOpus5_5,
807807 MaxTokens = 10,
808808 Messages = [new() { Role = Role.User, Content = "Explain quantum physics" }]
809809 });
from line 821
821821
822822 // Request with limited tokens
823823 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
824 Model: anthropic.ModelClaudeOpus5,
824 Model: anthropic.ModelClaudeOpus5_5,
825825 MaxTokens: 10,
826826 Messages: []anthropic.MessageParam{
827827 anthropic.NewUserMessage(anthropic.NewTextBlock("Explain quantum physics")),
from line 844
844844 // Request with limited tokens
845845 Message response = client.messages().create(
846846 MessageCreateParams.builder()
847 .model(Model.CLAUDE_OPUS_5)
847 .model(Model.CLAUDE_OPUS_5_5)
848848 .maxTokens(10L)
849849 .addUserMessage("Explain quantum physics")
850850 .build()
from line 864
864864 $response = $client->messages->create(
865865 maxTokens: 10,
866866 messages: [['role' => 'user', 'content' => 'Explain quantum physics']],
867 model: 'claude-opus-5',
867 model: 'claude-opus-5-5',
868868 );
869869
870870 if ($response->stopReason === 'max_tokens') {
from line 879
879879
880880 # Request with limited tokens
881881 response = client.messages.create(
882 model: "claude-opus-5",
882 model: "claude-opus-5-5",
883883 max_tokens: 10,
884884 messages: [{ role: "user", content: "Explain quantum physics" }]
885885 )
from line 916
916916 if last_block.type == "tool_use":
917917 # Send the request with higher max_tokens
918918 response = client.messages.create(
919 model="claude-opus-5",
919 model="claude-opus-5-5",
920920 max_tokens=4096, # Increased limit
921921 messages=messages,
922922 tools=tools,
from line 931
931931 if (lastBlock.type === "tool_use") {
932932 // Send the request with higher max_tokens
933933 response = await client.messages.create({
934 model: "claude-opus-5",
934 model: "claude-opus-5-5",
935935 max_tokens: 4096, // Increased limit
936936 messages: messages,
937937 tools: tools
from line 949
949949
950950 var parameters = new MessageCreateParams
951951 {
952 Model = Model.ClaudeOpus5,
952 Model = Model.ClaudeOpus5_5,
953953 MaxTokens = 1024,
954954 Messages = messages,
955955 Tools = tools
from line 969
969969
970970 ```go Go
971971 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
972 Model: anthropic.ModelClaudeOpus5,
972 Model: anthropic.ModelClaudeOpus5_5,
973973 MaxTokens: 1024,
974974 Messages: messages,
975975 Tools: tools,
from line 983
983983 switch lastBlock.AsAny().(type) {
984984 case anthropic.ToolUseBlock:
985985 response, err = client.Messages.New(context.TODO(), anthropic.MessageNewParams{
986 Model: anthropic.ModelClaudeOpus5,
986 Model: anthropic.ModelClaudeOpus5_5,
987987 MaxTokens: 4096,
988988 Messages: messages,
989989 Tools: tools,
from line 1003
10031003 // Send the request with higher max_tokens
10041004 response = client.messages().create(
10051005 MessageCreateParams.builder()
1006 .model(Model.CLAUDE_OPUS_5)
1006 .model(Model.CLAUDE_OPUS_5_5)
10071007 .maxTokens(4096L) // Increased limit
10081008 .messages(messages)
10091009 .tools(tools)
from line 1017
10171017 $response = $client->messages->create(
10181018 maxTokens: 1024,
10191019 messages: $messages,
1020 model: 'claude-opus-5',
1020 model: 'claude-opus-5-5',
10211021 tools: $tools,
10221022 );
10231023
from line 1027
10271027 $response = $client->messages->create(
10281028 maxTokens: 4096,
10291029 messages: $messages,
1030 model: 'claude-opus-5',
1030 model: 'claude-opus-5-5',
10311031 tools: $tools,
10321032 );
10331033 }
from line 1036
10361036
10371037 ```ruby Ruby
10381038 response = client.messages.create(
1039 model: "claude-opus-5",
1039 model: "claude-opus-5-5",
10401040 max_tokens: 1024,
10411041 messages: messages,
10421042 tools: tools
from line 1046
10461046 last_block = response.content.last
10471047 if last_block.type == :tool_use
10481048 response = client.messages.create(
1049 model: "claude-opus-5",
1049 model: "claude-opus-5-5",
10501050 max_tokens: 4096,
10511051 messages: messages,
10521052 tools: tools
from line 1068
10681068 -H "anthropic-version: 2023-06-01" \
10691069 -H "content-type: application/json" \
10701070 -d '{
1071 "model": "claude-opus-5",
1071 "model": "claude-opus-5-5",
10721072 "max_tokens": 1024,
10731073 "stop_sequences": ["END", "STOP"],
10741074 "messages": [{"role": "user", "content": "Generate text until you say END"}]
from line 1077
10771077
10781078 ```bash CLI
10791079 ant messages create \
1080 --model claude-opus-5 \
1080 --model claude-opus-5-5 \
10811081 --max-tokens 1024 \
10821082 --stop-sequence END --stop-sequence STOP \
10831083 --message '{role: user, content: "Generate text until you say END"}' \
from line 1087
10871087 ```python Python
10881088 client = anthropic.Anthropic()
10891089 response = client.messages.create(
1090 model="claude-opus-5",
1090 model="claude-opus-5-5",
10911091 max_tokens=1024,
10921092 stop_sequences=["END", "STOP"],
10931093 messages=[{"role": "user", "content": "Generate text until you say END"}],
from line 1101
11011101 const client = new Anthropic();
11021102
11031103 const response = await client.messages.create({
1104 model: "claude-opus-5",
1104 model: "claude-opus-5-5",
11051105 max_tokens: 1024,
11061106 stop_sequences: ["END", "STOP"],
11071107 messages: [{ role: "user", content: "Generate text until you say END" }]
from line 1117
11171117
11181118 var response = await client.Messages.Create(new MessageCreateParams
11191119 {
1120 Model = Model.ClaudeOpus5,
1120 Model = Model.ClaudeOpus5_5,
11211121 MaxTokens = 1024,
11221122 StopSequences = ["END", "STOP"],
11231123 Messages = [new() { Role = Role.User, Content = "Generate text until you say END" }]
from line 1133
11331133 client := anthropic.NewClient()
11341134
11351135 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1136 Model: anthropic.ModelClaudeOpus5,
1136 Model: anthropic.ModelClaudeOpus5_5,
11371137 MaxTokens: 1024,
11381138 StopSequences: []string{"END", "STOP"},
11391139 Messages: []anthropic.MessageParam{
from line 1154
11541154
11551155 Message response = client.messages().create(
11561156 MessageCreateParams.builder()
1157 .model(Model.CLAUDE_OPUS_5)
1157 .model(Model.CLAUDE_OPUS_5_5)
11581158 .maxTokens(1024L)
11591159 .addStopSequence("END")
11601160 .addStopSequence("STOP")
from line 1173
11731173 $response = $client->messages->create(
11741174 maxTokens: 1024,
11751175 messages: [['role' => 'user', 'content' => 'Generate text until you say END']],
1176 model: 'claude-opus-5',
1176 model: 'claude-opus-5-5',
11771177 stopSequences: ['END', 'STOP'],
11781178 );
11791179
from line 1186
11861186 client = Anthropic::Client.new
11871187
11881188 response = client.messages.create(
1189 model: "claude-opus-5",
1189 model: "claude-opus-5-5",
11901190 max_tokens: 1024,
11911191 stop_sequences: ["END", "STOP"],
11921192 messages: [{ role: "user", content: "Generate text until you say END" }]
from line 1213
12131213 -H "anthropic-version: 2023-06-01" \
12141214 -H "content-type: application/json" \
12151215 -d '{
1216 "model": "claude-opus-5",
1216 "model": "claude-opus-5-5",
12171217 "max_tokens": 1024,
12181218 "tools": [{
12191219 "name": "get_weather",
from line 1230
12301230
12311231 ```bash CLI
12321232 ant messages create --format json <<'YAML' | jq '.stop_reason, (.content[] | select(.type == "tool_use"))'
1233 model: claude-opus-5
1233 model: claude-opus-5-5
12341234 max_tokens: 1024
12351235 messages:
12361236 - role: user
from line 1267
12671267
12681268
12691269 response = client.messages.create(
1270 model="claude-opus-5",
1270 model="claude-opus-5-5",
12711271 max_tokens=1024,
12721272 tools=[weather_tool],
12731273 messages=[{"role": "user", "content": "What is the weather in San Francisco?"}],
from line 1300
13001300 }
13011301
13021302 const response = await client.messages.create({
1303 model: "claude-opus-5",
1303 model: "claude-opus-5-5",
13041304 max_tokens: 1024,
13051305 tools: [weatherTool],
13061306 messages: [{ role: "user", content: "What is the weather in San Francisco?" }]
from line 1338
13381338
13391339 var response = await client.Messages.Create(new MessageCreateParams
13401340 {
1341 Model = Model.ClaudeOpus5,
1341 Model = Model.ClaudeOpus5_5,
13421342 MaxTokens = 1024,
13431343 Tools = [weatherTool],
13441344 Messages = [new() { Role = Role.User, Content = "What is the weather in San Francisco?" }]
from line 1372
13721372 }
13731373
13741374 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1375 Model: anthropic.ModelClaudeOpus5,
1375 Model: anthropic.ModelClaudeOpus5_5,
13761376 MaxTokens: 1024,
13771377 Tools: []anthropic.ToolUnionParam{{OfTool: &weatherTool}},
13781378 Messages: []anthropic.MessageParam{
from line 1411
14111411
14121412 Message response = client.messages().create(
14131413 MessageCreateParams.builder()
1414 .model(Model.CLAUDE_OPUS_5)
1414 .model(Model.CLAUDE_OPUS_5_5)
14151415 .maxTokens(1024L)
14161416 .addTool(weatherTool)
14171417 .addUserMessage("What is the weather in San Francisco?")
from line 1446
14461446 $response = $client->messages->create(
14471447 maxTokens: 1024,
14481448 messages: [['role' => 'user', 'content' => 'What is the weather in San Francisco?']],
1449 model: 'claude-opus-5',
1449 model: 'claude-opus-5-5',
14501450 tools: [$weatherTool],
14511451 );
14521452
from line 1476
14761476 }
14771477
14781478 response = client.messages.create(
1479 model: "claude-opus-5",
1479 model: "claude-opus-5-5",
14801480 max_tokens: 1024,
14811481 tools: [weather_tool],
14821482 messages: [{ role: "user", content: "What is the weather in San Francisco?" }]
from line 1556
15561556 -H "anthropic-version: 2023-06-01" \
15571557 -H "content-type: application/json" \
15581558 -d '{
1559 "model": "claude-opus-5",
1559 "model": "claude-opus-5-5",
15601560 "max_tokens": 4096,
15611561 "tools": [{"type": "web_search_20250305", "name": "web_search"}],
15621562 "messages": [{"role": "user", "content": "Search for latest AI news"}]
from line 1567
15671567 # Inspect stop_reason; if it is pause_turn, re-run with the assistant
15681568 # response appended to --message.
15691569 ant messages create --format json <<'YAML' | jq '{stop_reason, content}'
1570 model: claude-opus-5
1570 model: claude-opus-5-5
15711571 max_tokens: 4096
15721572 tools:
15731573 - {type: web_search_20250305, name: web_search}
from line 1578
15781578
15791579 ```python Python
15801580 response = client.messages.create(
1581 model="claude-opus-5",
1581 model="claude-opus-5-5",
15821582 max_tokens=4096,
15831583 tools=[{"type": "web_search_20250305", "name": "web_search"}],
15841584 messages=[{"role": "user", "content": "Search for latest AI news"}],
from line 1591
15911591 {"role": "assistant", "content": response.content},
15921592 ]
15931593 continuation = client.messages.create(
1594 model="claude-opus-5",
1594 model="claude-opus-5-5",
15951595 max_tokens=4096,
15961596 messages=messages,
15971597 tools=[{"type": "web_search_20250305", "name": "web_search"}],
from line 1600
16001600
16011601 ```typescript TypeScript
16021602 const response = await client.messages.create({
1603 model: "claude-opus-5",
1603 model: "claude-opus-5-5",
16041604 max_tokens: 4096,
16051605 tools: [{ type: "web_search_20250305", name: "web_search" }],
16061606 messages: [{ role: "user", content: "Search for latest AI news" }]
from line 1609
16091609 if (response.stop_reason === "pause_turn") {
16101610 // Continue the conversation by sending the response back
16111611 const continuation = await client.messages.create({
1612 model: "claude-opus-5",
1612 model: "claude-opus-5-5",
16131613 max_tokens: 4096,
16141614 tools: [{ type: "web_search_20250305", name: "web_search" }],
16151615 messages: [
from line 1626
16261626
16271627 var response = await client.Messages.Create(new MessageCreateParams
16281628 {
1629 Model = Model.ClaudeOpus5,
1629 Model = Model.ClaudeOpus5_5,
16301630 MaxTokens = 4096,
16311631 Tools = tools,
16321632 Messages = [userMessage]
from line 1637
16371637 // Continue the conversation by sending the response back
16381638 var continuation = await client.Messages.Create(new MessageCreateParams
16391639 {
1640 Model = Model.ClaudeOpus5,
1640 Model = Model.ClaudeOpus5_5,
16411641 MaxTokens = 4096,
16421642 Tools = tools,
16431643 Messages =
from line 1660
16601660 userMessage := anthropic.NewUserMessage(anthropic.NewTextBlock("Search for latest AI news"))
16611661
16621662 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1663 Model: anthropic.ModelClaudeOpus5,
1663 Model: anthropic.ModelClaudeOpus5_5,
16641664 MaxTokens: 4096,
16651665 Tools: tools,
16661666 Messages: []anthropic.MessageParam{userMessage},
from line 1676
16761676 contentParams = append(contentParams, block.ToParam())
16771677 }
16781678 continuation, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1679 Model: anthropic.ModelClaudeOpus5,
1679 Model: anthropic.ModelClaudeOpus5_5,
16801680 MaxTokens: 4096,
16811681 Tools: tools,
16821682 Messages: []anthropic.MessageParam{userMessage, anthropic.NewAssistantMessage(contentParams...)},
from line 1691
16911691 ```java Java
16921692 Message response = client.messages().create(
16931693 MessageCreateParams.builder()
1694 .model(Model.CLAUDE_OPUS_5)
1694 .model(Model.CLAUDE_OPUS_5_5)
16951695 .maxTokens(4096L)
16961696 .addTool(WebSearchTool20250305.builder().build())
16971697 .addUserMessage("Search for latest AI news")
from line 1702
17021702 // Continue the conversation by sending the response back
17031703 Message continuation = client.messages().create(
17041704 MessageCreateParams.builder()
1705 .model(Model.CLAUDE_OPUS_5)
1705 .model(Model.CLAUDE_OPUS_5_5)
17061706 .maxTokens(4096L)
17071707 .addTool(WebSearchTool20250305.builder().build())
17081708 .addUserMessage("Search for latest AI news")
from line 1719
17191719 $response = $client->messages->create(
17201720 maxTokens: 4096,
17211721 messages: [$userMessage],
1722 model: 'claude-opus-5',
1722 model: 'claude-opus-5-5',
17231723 tools: $tools,
17241724 );
17251725
from line 1731
17311731 $userMessage,
17321732 ['role' => 'assistant', 'content' => $response->content],
17331733 ],
1734 model: 'claude-opus-5',
1734 model: 'claude-opus-5-5',
17351735 tools: $tools,
17361736 );
17371737 }
from line 1742
17421742 user_message = { role: "user", content: "Search for latest AI news" }
17431743
17441744 response = client.messages.create(
1745 model: "claude-opus-5",
1745 model: "claude-opus-5-5",
17461746 max_tokens: 4096,
17471747 tools: tools,
17481748 messages: [user_message]
from line 1751
17511751 if response.stop_reason == :pause_turn
17521752 # Continue the conversation by sending the response back
17531753 continuation = client.messages.create(
1754 model: "claude-opus-5",
1754 model: "claude-opus-5-5",
17551755 max_tokens: 4096,
17561756 tools: tools,
17571757 messages: [user_message, { role: "assistant", content: response.content }]
from line 1775
17751775 -H "anthropic-version: 2023-06-01" \
17761776 -H "content-type: application/json" \
17771777 -d '{
1778 "model": "claude-opus-5",
1778 "model": "claude-opus-5-5",
17791779 "max_tokens": 1024,
17801780 "messages": [{"role": "user", "content": "[Unsafe request]"}]
17811781 }' | jq '{stop_reason, stop_details}'
from line 1783
17831783
17841784 ```bash CLI
17851785 ant messages create \
1786 --model claude-opus-5 \
1786 --model claude-opus-5-5 \
17871787 --max-tokens 1024 \
17881788 --message '{role: user, content: "[Unsafe request]"}' \
17891789 --format json | jq '{stop_reason, stop_details}'
from line 1792
17921792 ```python Python
17931793 client = anthropic.Anthropic()
17941794 response = client.messages.create(
1795 model="claude-opus-5",
1795 model="claude-opus-5-5",
17961796 max_tokens=1024,
17971797 messages=[{"role": "user", "content": "[Unsafe request]"}],
17981798 )
from line 1807
18071807 const client = new Anthropic();
18081808
18091809 const response = await client.messages.create({
1810 model: "claude-opus-5",
1810 model: "claude-opus-5-5",
18111811 max_tokens: 1024,
18121812 messages: [{ role: "user", content: "[Unsafe request]" }]
18131813 });
from line 1824
18241824
18251825 var response = await client.Messages.Create(new MessageCreateParams
18261826 {
1827 Model = Model.ClaudeOpus5,
1827 Model = Model.ClaudeOpus5_5,
18281828 MaxTokens = 1024,
18291829 Messages = [new() { Role = Role.User, Content = "[Unsafe request]" }]
18301830 });
from line 1841
18411841 client := anthropic.NewClient()
18421842
18431843 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
1844 Model: anthropic.ModelClaudeOpus5,
1844 Model: anthropic.ModelClaudeOpus5_5,
18451845 MaxTokens: 1024,
18461846 Messages: []anthropic.MessageParam{
18471847 anthropic.NewUserMessage(anthropic.NewTextBlock("[Unsafe request]")),
from line 1863
18631863
18641864 Message response = client.messages().create(
18651865 MessageCreateParams.builder()
1866 .model(Model.CLAUDE_OPUS_5)
1866 .model(Model.CLAUDE_OPUS_5_5)
18671867 .maxTokens(1024L)
18681868 .addUserMessage("[Unsafe request]")
18691869 .build()
from line 1882
18821882 $response = $client->messages->create(
18831883 maxTokens: 1024,
18841884 messages: [['role' => 'user', 'content' => '[Unsafe request]']],
1885 model: 'claude-opus-5',
1885 model: 'claude-opus-5-5',
18861886 );
18871887
18881888 if ($response->stopReason === 'refusal') {
from line 1896
18961896 client = Anthropic::Client.new
18971897
18981898 response = client.messages.create(
1899 model: "claude-opus-5",
1899 model: "claude-opus-5-5",
19001900 max_tokens: 1024,
19011901 messages: [{ role: "user", content: "[Unsafe request]" }]
19021902 )
from line 1915
19151915
19161916On a refusal, the `stop_details` object identifies the policy category that triggered it. The categories and the full refusal response shape are covered on [Refusals and fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#refusal-response). `stop_details` is `null` for all stop reasons other than `refusal`.
19171917
1918A refused request on Claude Fable 5.1, Claude Fable 5, or Claude Opus 5 can usually be served by retrying on another Claude model. [Refusals and fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback) shows how to set up that retry, server-side or in your client. If you build the retry yourself from Claude Fable 5.1, Claude Fable 5, or Claude Opus 5, [fallback credit](https://platform.claude.com/docs/en/build-with-claude/fallback-credit) covers how to avoid paying the prompt-cache cost twice.
1918A refused request on Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, or Claude Opus 5 can usually be served by retrying on another Claude model. [Refusals and fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback) shows how to set up that retry, server-side or in your client. If you build the retry yourself from Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, or Claude Opus 5, [fallback credit](https://platform.claude.com/docs/en/build-with-claude/fallback-credit) covers how to avoid paying the prompt-cache cost twice.
19191919
19201920### model\_context\_window\_exceeded
19211921
from line 1932
19321932 -H "anthropic-version: 2023-06-01" \
19331933 -H "content-type: application/json" \
19341934 -d '{
1935 "model": "claude-opus-5",
1935 "model": "claude-opus-5-5",
19361936 "max_tokens": 20000,
19371937 "messages": [{"role": "user", "content": "Large input that uses most of context window..."}]
19381938 }' | jq '.stop_reason'
from line 1940
19401940
19411941 ```bash CLI
19421942 ant messages create \
1943 --model claude-opus-5 \
1943 --model claude-opus-5-5 \
19441944 --max-tokens 20000 \
19451945 --message '{role: user, content: "Large input that uses most of context window..."}' \
19461946 --format json | jq '.stop_reason'
from line 1949
19491949 ```python Python
19501950 # Request with maximum tokens to get as much as possible
19511951 response = client.beta.messages.create(
1952 model="claude-opus-5",
1952 model="claude-opus-5-5",
19531953 max_tokens=20000, # Python SDK requires streaming for max_tokens above ~21k
19541954 messages=[
19551955 {"role": "user", "content": "Large input that uses most of context window..."}
from line 1965
19651965 ```typescript TypeScript
19661966 // Request with maximum tokens to get as much as possible
19671967 const response = await client.beta.messages.create({
1968 model: "claude-opus-5",
1968 model: "claude-opus-5-5",
19691969 max_tokens: 20000,
19701970 messages: [{ role: "user", content: "Large input that uses most of context window..." }]
19711971 });
from line 1984
19841984 // Request with maximum tokens to get as much as possible
19851985 var response = await client.Beta.Messages.Create(new MessageCreateParams
19861986 {
1987 Model = Model.ClaudeOpus5,
1987 Model = Model.ClaudeOpus5_5,
19881988 MaxTokens = 20000,
19891989 Messages = [new() { Role = Role.User, Content = "Large input that uses most of context window..." }]
19901990 });
from line 2000
20002000 ```go Go
20012001 // Request with maximum tokens to get as much as possible
20022002 response, err := client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
2003 Model: anthropic.ModelClaudeOpus5,
2003 Model: anthropic.ModelClaudeOpus5_5,
20042004 MaxTokens: 20000,
20052005 Messages: []anthropic.BetaMessageParam{
20062006 anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Large input that uses most of context window...")),
from line 2025
20252025 // Request with maximum tokens to get as much as possible
20262026 BetaMessage response = client.beta().messages().create(
20272027 MessageCreateParams.builder()
2028 .model(Model.CLAUDE_OPUS_5)
2028 .model(Model.CLAUDE_OPUS_5_5)
20292029 .maxTokens(20000L)
20302030 .addUserMessage("Large input that uses most of context window...")
20312031 .build()
from line 2043
20432043 $response = $client->beta->messages->create(
20442044 maxTokens: 20000,
20452045 messages: [['role' => 'user', 'content' => 'Large input that uses most of context window...']],
2046 model: 'claude-opus-5',
2046 model: 'claude-opus-5-5',
20472047 );
20482048
20492049 if ($response->stopReason === 'model_context_window_exceeded') {
from line 2056
20562056 ```ruby Ruby
20572057 # Request with maximum tokens to get as much as possible
20582058 response = client.beta.messages.create(
2059 model: "claude-opus-5",
2059 model: "claude-opus-5-5",
20602060 max_tokens: 20000,
20612061 messages: [{ role: "user", content: "Large input that uses most of context window..." }]
20622062 )
from line 2363
23632363
23642364 for _ in range(max_continuations):
23652365 response = client.messages.create(
2366 model="claude-opus-5", max_tokens=4096, messages=messages, tools=tools
2366 model="claude-opus-5-5", max_tokens=4096, messages=messages, tools=tools
23672367 )
23682368
23692369 if response.stop_reason != "pause_turn":
from line 2392
23922392
23932393 for (let i = 0; i < maxContinuations; i++) {
23942394 response = await client.messages.create({
2395 model: "claude-opus-5",
2395 model: "claude-opus-5-5",
23962396 max_tokens: 4096,
23972397 messages,
23982398 tools
from line 2429
24292429 {
24302430 response = await client.Messages.Create(new MessageCreateParams
24312431 {
2432 Model = Model.ClaudeOpus5,
2432 Model = Model.ClaudeOpus5_5,
24332433 MaxTokens = 4096,
24342434 Messages = messages,
24352435 Tools = tools
from line 2471
24712471
24722472 for range maxContinuations {
24732473 response, err = client.Messages.New(context.TODO(), anthropic.MessageNewParams{
2474 Model: anthropic.ModelClaudeOpus5,
2474 Model: anthropic.ModelClaudeOpus5_5,
24752475 MaxTokens: 4096,
24762476 Messages: messages,
24772477 Tools: tools,
from line 2513
25132513 for (int i = 0; i < maxContinuations; i++) {
25142514 // Rebuild the params each iteration so messages aren't accumulated
25152515 MessageCreateParams.Builder params = MessageCreateParams.builder()
2516 .model(Model.CLAUDE_OPUS_5)
2516 .model(Model.CLAUDE_OPUS_5_5)
25172517 .maxTokens(4096L)
25182518 .addUserMessage(userQuery);
25192519 tools.forEach(params::addTool);
from line 2549
25492549 $response = $client->messages->create(
25502550 maxTokens: 4096,
25512551 messages: $messages,
2552 model: 'claude-opus-5',
2552 model: 'claude-opus-5-5',
25532553 tools: $tools,
25542554 );
25552555
from line 2577
25772577
25782578 max_continuations.times do
25792579 response = client.messages.create(
2580 model: "claude-opus-5",
2580 model: "claude-opus-5-5",
25812581 max_tokens: 4096,
25822582 messages: messages,
25832583 tools: tools
from line 2624
26242624 -H "anthropic-version: 2023-06-01" \
26252625 -H "content-type: application/json" \
26262626 -d '{
2627 "model": "claude-opus-5",
2627 "model": "claude-opus-5-5",
26282628 "max_tokens": 1024,
26292629 "messages": [{"role": "user", "content": "Hello!"}]
26302630 }' | jq '.stop_reason'
from line 2633
26332633 ```bash CLI
26342634 # The CLI exits non-zero on API errors; stop_reason appears on success.
26352635 ant messages create \
2636 --model claude-opus-5 \
2636 --model claude-opus-5-5 \
26372637 --max-tokens 1024 \
26382638 --message '{role: user, content: "Hello!"}' \
26392639 --format json | jq '.stop_reason'
from line 2644
26442644
26452645 try:
26462646 response = client.messages.create(
2647 model="claude-opus-5",
2647 model="claude-opus-5-5",
26482648 max_tokens=1024,
26492649 messages=[{"role": "user", "content": "Hello!"}],
26502650 )
from line 2667
26672667
26682668 try {
26692669 const response = await client.messages.create({
2670 model: "claude-opus-5",
2670 model: "claude-opus-5-5",
26712671 max_tokens: 1024,
26722672 messages: [{ role: "user", content: "Hello!" }]
26732673 });
from line 2700
27002700 {
27012701 var response = await client.Messages.Create(new MessageCreateParams
27022702 {
2703 Model = Model.ClaudeOpus5,
2703 Model = Model.ClaudeOpus5_5,
27042704 MaxTokens = 1024,
27052705 Messages = [new() { Role = Role.User, Content = "Hello!" }]
27062706 });
from line 2726
27262726 client := anthropic.NewClient()
27272727
27282728 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
2729 Model: anthropic.ModelClaudeOpus5,
2729 Model: anthropic.ModelClaudeOpus5_5,
27302730 MaxTokens: 1024,
27312731 Messages: []anthropic.MessageParam{
27322732 anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
from line 2758
27582758 try {
27592759 Message response = client.messages().create(
27602760 MessageCreateParams.builder()
2761 .model(Model.CLAUDE_OPUS_5)
2761 .model(Model.CLAUDE_OPUS_5_5)
27622762 .maxTokens(1024L)
27632763 .addUserMessage("Hello!")
27642764 .build()
from line 2785
27852785 $response = $client->messages->create(
27862786 maxTokens: 1024,
27872787 messages: [['role' => 'user', 'content' => 'Hello!']],
2788 model: 'claude-opus-5',
2788 model: 'claude-opus-5-5',
27892789 );
27902790
27912791 // Handle successful response with stop_reason
from line 2805
28052805
28062806 begin
28072807 response = client.messages.create(
2808 model: "claude-opus-5",
2808 model: "claude-opus-5-5",
28092809 max_tokens: 1024,
28102810 messages: [{ role: "user", content: "Hello!" }]
28112811 )
from line 2839
28392839 -H "anthropic-version: 2023-06-01" \
28402840 -H "content-type: application/json" \
28412841 -d '{
2842 "model": "claude-opus-5",
2842 "model": "claude-opus-5-5",
28432843 "max_tokens": 1024,
28442844 "stream": true,
28452845 "messages": [{"role": "user", "content": "Hello!"}]
from line 2849
28492849 ```bash CLI
28502850 # stop_reason appears in the message_delta event.
28512851 ant messages create --stream --format jsonl \
2852 --model claude-opus-5 \
2852 --model claude-opus-5-5 \
28532853 --max-tokens 1024 \
28542854 --message '{role: user, content: "Hello!"}' |
28552855 jq -c 'select(.type == "message_delta") | .delta.stop_reason'
from line 2859
28592859 client = anthropic.Anthropic()
28602860
28612861 with client.messages.stream(
2862 model="claude-opus-5",
2862 model="claude-opus-5-5",
28632863 max_tokens=1024,
28642864 messages=[{"role": "user", "content": "Hello!"}],
28652865 ) as stream:
from line 2874
28742874 const client = new Anthropic();
28752875
28762876 const stream = client.messages.stream({
2877 model: "claude-opus-5",
2877 model: "claude-opus-5-5",
28782878 max_tokens: 1024,
28792879 messages: [{ role: "user", content: "Hello!" }]
28802880 });
from line 2891
28912891
28922892 var parameters = new MessageCreateParams
28932893 {
2894 Model = Model.ClaudeOpus5,
2894 Model = Model.ClaudeOpus5_5,
28952895 MaxTokens = 1024,
28962896 Messages = [new() { Role = Role.User, Content = "Hello!" }]
28972897 };
from line 2911
29112911 client := anthropic.NewClient()
29122912
29132913 stream := client.Messages.NewStreaming(context.TODO(), anthropic.MessageNewParams{
2914 Model: anthropic.ModelClaudeOpus5,
2914 Model: anthropic.ModelClaudeOpus5_5,
29152915 MaxTokens: 1024,
29162916 Messages: []anthropic.MessageParam{
29172917 anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
from line 2938
29382938 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
29392939
29402940 MessageCreateParams params = MessageCreateParams.builder()
2941 .model(Model.CLAUDE_OPUS_5)
2941 .model(Model.CLAUDE_OPUS_5_5)
29422942 .maxTokens(1024L)
29432943 .addUserMessage("Hello!")
29442944 .build();
from line 2961
29612961 $stream = $client->messages->createStream(
29622962 maxTokens: 1024,
29632963 messages: [['role' => 'user', 'content' => 'Hello!']],
2964 model: 'claude-opus-5',
2964 model: 'claude-opus-5-5',
29652965 );
29662966
29672967 foreach ($stream as $event) {
from line 2975
29752975 client = Anthropic::Client.new
29762976
29772977 stream = client.messages.stream(
2978 model: "claude-opus-5",
2978 model: "claude-opus-5-5",
29792979 max_tokens: 1024,
29802980 messages: [{ role: "user", content: "Hello!" }]
29812981 )
from line 3003
30033003
30043004 while True:
30053005 response = client.messages.create(
3006 model="claude-opus-5", max_tokens=1024, messages=messages, tools=tools
3006 model="claude-opus-5-5", max_tokens=1024, messages=messages, tools=tools
30073007 )
30083008
30093009 if response.stop_reason == "tool_use":
from line 3026
30263026
30273027 while (true) {
30283028 const response = await client.messages.create({
3029 model: "claude-opus-5",
3029 model: "claude-opus-5-5",
30303030 max_tokens: 1024,
30313031 messages,
30323032 tools
from line 3057
30573057 {
30583058 var response = await client.Messages.Create(new MessageCreateParams
30593059 {
3060 Model = Model.ClaudeOpus5,
3060 Model = Model.ClaudeOpus5_5,
30613061 MaxTokens = 1024,
30623062 Messages = messages,
30633063 Tools = tools
from line 3093
30933093
30943094 for {
30953095 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
3096 Model: anthropic.ModelClaudeOpus5,
3096 Model: anthropic.ModelClaudeOpus5_5,
30973097 MaxTokens: 1024,
30983098 Messages: messages,
30993099 Tools: tools,
from line 3130
31303130
31313131 while (true) {
31323132 MessageCreateParams.Builder params = MessageCreateParams.builder()
3133 .model(Model.CLAUDE_OPUS_5)
3133 .model(Model.CLAUDE_OPUS_5_5)
31343134 .maxTokens(1024L)
31353135 .messages(messages);
31363136 tools.forEach(params::addTool);
from line 3162
31623162 $response = $client->messages->create(
31633163 maxTokens: 1024,
31643164 messages: $messages,
3165 model: 'claude-opus-5',
3165 model: 'claude-opus-5-5',
31663166 tools: $tools,
31673167 );
31683168
from line 3185
31853185
31863186 loop do
31873187 response = client.messages.create(
3188 model: "claude-opus-5",
3188 model: "claude-opus-5-5",
31893189 max_tokens: 1024,
31903190 messages: messages,
31913191 tools: tools
from line 3213
32133213
32143214 for _ in range(max_attempts):
32153215 response = client.messages.create(
3216 model="claude-opus-5", messages=messages, max_tokens=4096
3216 model="claude-opus-5-5", messages=messages, max_tokens=4096
32173217 )
32183218
32193219 full_response += next(
from line 3244
32443244
32453245 for (let i = 0; i < maxAttempts; i++) {
32463246 const response = await client.messages.create({
3247 model: "claude-opus-5",
3247 model: "claude-opus-5-5",
32483248 max_tokens: 4096,
32493249 messages
32503250 });
from line 3280
32803280 {
32813281 var response = await client.Messages.Create(new MessageCreateParams
32823282 {
3283 Model = Model.ClaudeOpus5,
3283 Model = Model.ClaudeOpus5_5,
32843284 MaxTokens = 4096,
32853285 Messages = messages
32863286 });
from line 3319
33193319
33203320 for range maxAttempts {
33213321 response, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
3322 Model: anthropic.ModelClaudeOpus5,
3322 Model: anthropic.ModelClaudeOpus5_5,
33233323 MaxTokens: 4096,
33243324 Messages: messages,
33253325 })
from line 3360
33603360 for (int i = 0; i < maxAttempts; i++) {
33613361 Message response = client.messages().create(
33623362 MessageCreateParams.builder()
3363 .model(Model.CLAUDE_OPUS_5)
3363 .model(Model.CLAUDE_OPUS_5_5)
33643364 .maxTokens(4096L)
33653365 .messages(messages)
33663366 .build()
from line 3397
33973397 $response = $client->messages->create(
33983398 maxTokens: 4096,
33993399 messages: $messages,
3400 model: 'claude-opus-5',
3400 model: 'claude-opus-5-5',
34013401 );
34023402
34033403 $fullResponse .= array_find($response->content, static fn ($block): bool => $block->type === 'text')?->text ?? '';
from line 3425
34253425
34263426 max_attempts.times do
34273427 response = client.messages.create(
3428 model: "claude-opus-5",
3428 model: "claude-opus-5-5",
34293429 max_tokens: 4096,
34303430 messages: messages
34313431 )
from line 3459
34593459 without needing to calculate input token count
34603460 """
34613461 response = client.beta.messages.create(
3462 model="claude-opus-5",
3462 model="claude-opus-5-5",
34633463 messages=[{"role": "user", "content": prompt}],
34643464 max_tokens=20000, # Python SDK requires streaming for max_tokens above ~21k
34653465 )
from line 3487
34873487 ```typescript TypeScript
34883488 async function getMaxPossibleTokens(client: Anthropic, prompt: string): Promise<string> {
34893489 const response = await client.beta.messages.create({
3490 model: "claude-opus-5",
3490 model: "claude-opus-5-5",
34913491 max_tokens: 20000,
34923492 messages: [{ role: "user", content: prompt }]
34933493 });
from line 3522
35223522 {
35233523 var response = await client.Beta.Messages.Create(new MessageCreateParams
35243524 {
3525 Model = Model.ClaudeOpus5,
3525 Model = Model.ClaudeOpus5_5,
35263526 MaxTokens = 20000,
35273527 Messages = [new() { Role = Role.User, Content = prompt }]
35283528 });
from line 3552
35523552 ```go Go
35533553 func getMaxPossibleTokens(client anthropic.Client, prompt string) (string, error) {
35543554 response, err := client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
3555 Model: anthropic.ModelClaudeOpus5,
3555 Model: anthropic.ModelClaudeOpus5_5,
35563556 MaxTokens: 20000,
35573557 Messages: []anthropic.BetaMessageParam{
35583558 anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock(prompt)),
from line 3593
35933593 static String getMaxPossibleTokens(AnthropicClient client, String prompt) {
35943594 BetaMessage response = client.beta().messages().create(
35953595 MessageCreateParams.builder()
3596 .model(Model.CLAUDE_OPUS_5)
3596 .model(Model.CLAUDE_OPUS_5_5)
35973597 .maxTokens(20000L)
35983598 .addUserMessage(prompt)
35993599 .build()
from line 3626
36263626 $response = $client->beta->messages->create(
36273627 maxTokens: 20000,
36283628 messages: [['role' => 'user', 'content' => $prompt]],
3629 model: 'claude-opus-5',
3629 model: 'claude-opus-5-5',
36303630 );
36313631
36323632 $tokens = $response->usage->outputTokens;
from line 3646
36463646 ```ruby Ruby
36473647 def get_max_possible_tokens(client, prompt)
36483648 response = client.beta.messages.create(
3649 model: "claude-opus-5",
3649 model: "claude-opus-5-5",
36503650 max_tokens: 20000,
36513651 messages: [{ role: "user", content: prompt }]
36523652 )