Follow Discord
Sweep 03 Nov 2026 · 22:27Z Build v2.1.318 536 read Stable v2.1.311 Latest v2.1.318 Next v2.1.318 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · api

One read of Claude Developer Platformapi-20261104T020710Z

159 pages moved out of 847 read.

Pages moved 159 significant first
Pages read 847 in this capture
Captured 02:07 UTC
Corpus hash 61cf340e1136 corpus-hash

What this read moved

1-25 of 159, page 1 of 7

This capture is too large to show at once. Changes 1-25 of 159 are below, significant first; the rest are on the following screens.

about-claude/models/optimizing-for-cost-and-intelligence Changed · +5 / -3 lines

from line 49
4949 
5050#### Why caching comes first
5151 
52Turn on [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) before any other lever, because every turn of an agentic task resends the entire growing conversation: system prompt, tool definitions, and every prior turn.
52Turn on [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) before any other lever, because by default every turn of an agentic task resends the entire growing conversation: system prompt, tool definitions, and every prior turn.
5353 
5454* A 40-turn task sends its first turn 40 times, so task cost grows with roughly the square of turn count.
5555* Caching does not stop the resending, but each resend costs about a tenth as much (a twentieth on Claude Opus 5.5 and Claude Sonnet 5.5, a fortieth on Claude Fable 5.1 and Claude Mythos 5.1) and processes faster.
5656* The prefix is billed at the [cache-read rate](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) instead of the input price, and each turn pays the 1.25x cache-write rate only for what is new.
5757 
58[Message threads](https://platform.claude.com/docs/en/build-with-claude/message-threads), in beta, stop the resending while a thread lasts, until 5 minutes after its last request. They lower time to first token, not cost: the model still reads the whole conversation, so keep `cache_control` on every request. Threads don’t support compaction or most context editing.
59 
5860**What good looks like.**
5961 
6062* Over a full day of real traffic, agent loops read a median 84% of their input from the cache, and the top 10% of them, coding or not, read 94% or more<sup>[17](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
from line 170
168170 jq '.max_tokens = 0 | del(.stream)' last_request.json | \
169171 curl https://api.anthropic.com/v1/messages \
170172 -H "x-api-key: $ANTHROPIC_API_KEY" \
171 -H "anthropic-version: 2023-06-01" \
173 -H "anthropic-version: 2026-10-21" \
172174 -H "content-type: application/json" \
173175 --data-binary @-
174176 ```
from line 314
312314Route every request no one is waiting on through the [Batch API](https://platform.claude.com/docs/en/build-with-claude/batch-processing), and keep the interactive path for the rest. The Batch API takes 50% off every token of a request, including cached ones, in exchange for results arriving any time within 24 hours.
313315 
314316* Batching is the second-largest free lever after caching for unattended agent work: evaluation runs, backfills, and scheduled jobs such as a recurring run of the issue-triage agent from the [token-trimming measurement](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens).
315* Batching combines with most of this page, but not with [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode) or Claude Managed Agents sessions (see [Claude Managed Agents pricing](https://platform.claude.com/docs/en/about-claude/pricing#claude-managed-agents-pricing)).
317* Batching combines with most of this page, but not with [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode), message threads, or Claude Managed Agents sessions (see [Claude Managed Agents pricing](https://platform.claude.com/docs/en/about-claude/pricing#claude-managed-agents-pricing)).
316318 
317319### Audit prompts against the current model
318320 

about-claude/pricing Changed · +8 / -8 lines

from line 24
2424| Claude Opus 4.7 | $5 / MTok | $6.25 / MTok | $10 / MTok | $0.50 / MTok | $25 / MTok |
2525| Claude Opus 4.6 | $5 / MTok | $6.25 / MTok | $10 / MTok | $0.50 / MTok | $25 / MTok |
2626| Claude Opus 4.5 | $5 / MTok | $6.25 / MTok | $10 / MTok | $0.50 / MTok | $25 / MTok |
27| Claude Opus 4.1 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
27| Claude Opus 4.1 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
2828| Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
2929| Claude Sonnet 5.5 | $2 / MTok | $2.50 / MTok | $4 / MTok | $0.10 / MTok<sup>2</sup> | $10 / MTok |
3030| Claude Sonnet 5 | $2 / MTok<sup>3</sup> | $2.50 / MTok | $4 / MTok | $0.20 / MTok | $10 / MTok<sup>3</sup> |
3131| Claude Sonnet 4.6 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
3232| Claude Sonnet 4.5 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
33| Claude Sonnet 4 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
33| Claude Sonnet 4 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
3434| Claude Haiku 5.5 (for prompts up to 100,000 tokens) | $0.10 / MTok | $0.125 / MTok | $0.20 / MTok | $0.01 / MTok | $0.50 / MTok |
3535| Claude Haiku 5.5 (for prompts over 100,000 tokens) | $0.50 / MTok | $0.625 / MTok | $1 / MTok | $0.05 / MTok | $2.50 / MTok |
3636| Claude Haiku 4.5 | $1 / MTok | $1.25 / MTok | $2 / MTok | $0.10 / MTok | $5 / MTok |
from line 57
5757 
5858This section covers partner-operated cloud platforms, where the cloud provider invoices you. For Anthropic-operated cloud platforms billed through a marketplace, see [Claude Platform on AWS pricing](https://platform.claude.com/docs/en/about-claude/pricing#claude-platform-on-aws-pricing), [Claude Models on Google Cloud (Anthropic managed) billing](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed#billing), and [Claude in Microsoft Foundry pricing](https://platform.claude.com/docs/en/about-claude/pricing#claude-in-microsoft-foundry-pricing).
5959 
60Claude models are available on [Amazon Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock) and [Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/google-managed). For official pricing, visit:
60For official pricing on [Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/google-managed) and [Amazon Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock), visit:
6161 
6262* [Amazon Bedrock pricing](https://aws.amazon.com/bedrock/pricing/)
6363* [Google Cloud pricing](https://cloud.google.com/vertex-ai/generative-ai/pricing#claude-models)
from line 159
159159 
160160For Claude 4.6 and later models, specifying US-only inference through the `inference_geo` parameter incurs a 1.1x multiplier on all token pricing categories, including input tokens, output tokens, cache writes, and cache reads. On Claude Haiku 5.5, the multiplier also applies to the higher prices for prompts over 100,000 tokens (see [Long context pricing](https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing)). Global routing (the default) uses standard pricing.
161161 
162This applies to the Claude API (first-party), Claude Platform on AWS, and Claude Models on Google Cloud (Anthropic managed). On Claude in Microsoft Foundry, the same 1.1x multiplier applies to deployments that use the US Data Zone Standard deployment type (see [Inference geography](https://platform.claude.com/docs/en/about-claude/pricing#foundry-inference-geography)). Partner-operated platforms, Bedrock and Claude Models on Google Cloud (Google managed), have independent regional pricing. See [Bedrock pricing](https://aws.amazon.com/bedrock/pricing/) and [Google Cloud pricing](https://cloud.google.com/vertex-ai/generative-ai/pricing#claude-models) for details. Earlier models do not support the `inference_geo` parameter and always use standard pricing; requests that include the parameter on these models return a 400 error.
162This applies to the Claude API (first-party), Claude Platform on AWS, and Claude Models on Google Cloud (Anthropic managed). On Claude in Microsoft Foundry, the same 1.1x multiplier applies to deployments that use the US Data Zone Standard deployment type (see [Inference geography](https://platform.claude.com/docs/en/about-claude/pricing#foundry-inference-geography)). Partner-operated platforms, Claude Models on Google Cloud (Google managed) and Bedrock, have independent regional pricing. See [Bedrock pricing](https://aws.amazon.com/bedrock/pricing/) and [Google Cloud pricing](https://cloud.google.com/vertex-ai/generative-ai/pricing#claude-models) for details. Earlier models do not support the `inference_geo` parameter and always use standard pricing; requests that include the parameter on these models return a 400 error.
163163 
164164For more information, see [Data residency](https://platform.claude.com/docs/en/manage-claude/data-residency).
165165 
from line 197
197197| Claude Opus 4.7 | $2.50 / MTok | $12.50 / MTok |
198198| Claude Opus 4.6 | $2.50 / MTok | $12.50 / MTok |
199199| Claude Opus 4.5 | $2.50 / MTok | $12.50 / MTok |
200| Claude Opus 4.1 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $7.50 / MTok | $37.50 / MTok |
200| Claude Opus 4.1 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $7.50 / MTok | $37.50 / MTok |
201201| Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $7.50 / MTok | $37.50 / MTok |
202202| Claude Sonnet 5.5 | $1 / MTok | $5 / MTok |
203203| Claude Sonnet 5 | $1 / MTok | $5 / MTok |
204204| Claude Sonnet 4.6 | $1.50 / MTok | $7.50 / MTok |
205205| Claude Sonnet 4.5 | $1.50 / MTok | $7.50 / MTok |
206| Claude Sonnet 4 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $1.50 / MTok | $7.50 / MTok |
206| Claude Sonnet 4 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $1.50 / MTok | $7.50 / MTok |
207207| Claude Haiku 5.5 (for prompts up to 100,000 tokens) | $0.05 / MTok | $0.25 / MTok |
208208| Claude Haiku 5.5 (for prompts over 100,000 tokens) | $0.25 / MTok | $1.25 / MTok |
209209| Claude Haiku 4.5 | $0.50 / MTok | $2.50 / MTok |
from line 247
247247| Claude Opus 4.7 | 675 tokens | 804 tokens |
248248| Claude Opus 4.6 | 497 tokens | 589 tokens |
249249| Claude Opus 4.5 | 496 tokens | 588 tokens |
250| Claude Opus 4.1 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
250| Claude Opus 4.1 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
251251| Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
252252| Claude Sonnet 5.5 | 286 tokens | |
253253| Claude Sonnet 5 | 354 tokens | 474 tokens |
254254| Claude Sonnet 4.6 | 497 tokens | 589 tokens |
255255| Claude Sonnet 4.5 | 496 tokens | 588 tokens |
256| Claude Sonnet 4 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
256| Claude Sonnet 4 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
257257| Claude Haiku 5.5 | 286 tokens | 406 tokens |
258258| Claude Haiku 4.5 | 496 tokens | 588 tokens |
259259| Claude Haiku 3.5 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 264 tokens | 355 tokens |

agents-and-tools/agent-skills/quickstart Changed · +7 / -7 lines

from line 34
3434 # List Anthropic-managed Skills
3535 curl --fail-with-body -sS "https://api.anthropic.com/v1/skills?source=anthropic" \
3636 -H "x-api-key: $ANTHROPIC_API_KEY" \
37 -H "anthropic-version: 2023-06-01"
37 -H "anthropic-version: 2026-10-21"
3838 ```
3939 
4040 ```bash CLI
from line 130
130130 curl --fail-with-body -sS https://api.anthropic.com/v1/messages \
131131 -H "content-type: application/json" \
132132 -H "x-api-key: $ANTHROPIC_API_KEY" \
133 -H "anthropic-version: 2023-06-01" \
133 -H "anthropic-version: 2026-10-21" \
134134 -d '{
135135 "model": "claude-opus-5-5",
136136 "max_tokens": 16000,
from line 347
347347* **`tools`:** Enables code execution (required for Skills)
348348 
349349<Note>
350 The examples use the `code_execution_20260521` tool version, and the Step 3 code parses the result types that current tool versions return. Skills also work with older [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) versions such as `code_execution_20250825`: any current code execution tool version satisfies the Skills requirement. If you use a different version, use the tool `type` listed on the code execution tool page.
350 The examples use the `code_execution_20260521` tool version, and the Step 3 code parses the result types that current tool versions return. Skills also work with other [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) versions such as `code_execution_20250825`: any current code execution tool version satisfies the Skills requirement. If you use a different version, use the tool `type` listed on the code execution tool page.
351351</Note>
352352 
353353When you make this request, Claude automatically matches your task to the relevant Skill. Because you asked for a presentation, Claude determines the PowerPoint Skill is relevant and loads its full instructions: the second level of progressive disclosure. Then Claude runs the Skill’s code to create your presentation.
from line 375
375375 # Download the file and save it
376376 curl --fail-with-body -sS "https://api.anthropic.com/v1/files/$file_id/content" \
377377 -H "x-api-key: $ANTHROPIC_API_KEY" \
378 -H "anthropic-version: 2023-06-01" \
378 -H "anthropic-version: 2026-10-21" \
379379 -o "${TMPDIR:-/tmp}/renewable_energy.pptx"
380380 fi
381381 ```
from line 602
602602 curl --fail-with-body -sS https://api.anthropic.com/v1/messages \
603603 -H "content-type: application/json" \
604604 -H "x-api-key: $ANTHROPIC_API_KEY" \
605 -H "anthropic-version: 2023-06-01" \
605 -H "anthropic-version: 2026-10-21" \
606606 -d '{
607607 "model": "claude-opus-5-5",
608608 "max_tokens": 16000,
from line 794
794794 curl --fail-with-body -sS https://api.anthropic.com/v1/messages \
795795 -H "content-type: application/json" \
796796 -H "x-api-key: $ANTHROPIC_API_KEY" \
797 -H "anthropic-version: 2023-06-01" \
797 -H "anthropic-version: 2026-10-21" \
798798 -d '{
799799 "model": "claude-opus-5-5",
800800 "max_tokens": 16000,
from line 986
986986 curl --fail-with-body -sS https://api.anthropic.com/v1/messages \
987987 -H "content-type: application/json" \
988988 -H "x-api-key: $ANTHROPIC_API_KEY" \
989 -H "anthropic-version: 2023-06-01" \
989 -H "anthropic-version: 2026-10-21" \
990990 -d '{
991991 "model": "claude-opus-5-5",
992992 "max_tokens": 16000,

agents-and-tools/mcp-connector Changed · +3 / -3 lines

from line 82
8282 curl https://api.anthropic.com/v1/messages \
8383 -H "Content-Type: application/json" \
8484 -H "X-API-Key: $ANTHROPIC_API_KEY" \
85 -H "anthropic-version: 2023-06-01" \
85 -H "anthropic-version: 2026-10-21" \
8686 -H "anthropic-beta: mcp-client-2025-11-20" \
8787 -d '{
8888 "model": "claude-opus-5-5",
from line 607
607607 curl https://api.anthropic.com/v1/messages \
608608 -H "content-type: application/json" \
609609 -H "x-api-key: $ANTHROPIC_API_KEY" \
610 -H "anthropic-version: 2023-06-01" \
610 -H "anthropic-version: 2026-10-21" \
611611 -H "anthropic-beta: mcp-client-2026-09-15" \
612612 -d '{
613613 "model": "claude-opus-5-5",
from line 640
640640 curl https://api.anthropic.com/v1/messages \
641641 -H "content-type: application/json" \
642642 -H "x-api-key: $ANTHROPIC_API_KEY" \
643 -H "anthropic-version: 2023-06-01" \
643 -H "anthropic-version: 2026-10-21" \
644644 -H "anthropic-beta: mcp-client-2026-09-15" \
645645 -d '{
646646 "model": "claude-opus-5-5",

agents-and-tools/tool-use/advisor-tool Changed · +41 / -43 lines

from line 77
7777 ```bash cURL
7878 curl https://api.anthropic.com/v1/messages \
7979 -H "x-api-key: $ANTHROPIC_API_KEY" \
80 -H "anthropic-version: 2023-06-01" \
80 -H "anthropic-version: 2026-10-21" \
8181 -H "anthropic-beta: advisor-tool-2026-03-01" \
8282 -H "content-type: application/json" \
8383 -d '{
8484 "model": "claude-sonnet-5",
85 "max_tokens": 4096,
85 "max_tokens": 16000,
8686 "tools": [
8787 {
8888 "type": "advisor_20260301",
from line 92
9292 ],
9393 "messages": [{
9494 "role": "user",
95 "content": "Build a concurrent worker pool in Go with graceful shutdown."
95 "content": "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."
9696 }]
9797 }'
9898 ```
from line 100
100100 ```bash CLI
101101 ant beta:messages create --beta advisor-tool-2026-03-01 <<'YAML'
102102 model: claude-sonnet-5
103 max_tokens: 4096
103 max_tokens: 16000
104104 tools:
105105 - type: advisor_20260301
106106 name: advisor
from line 107
107107 model: claude-opus-5-5
108108 messages:
109109 - role: user
110 content: Build a concurrent worker pool in Go with graceful shutdown.
110 content: Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.
111111 YAML
112112 ```
113113 
from line 116
116116 
117117 response = client.beta.messages.create(
118118 model="claude-sonnet-5",
119 max_tokens=4096,
119 max_tokens=16000,
120120 betas=["advisor-tool-2026-03-01"],
121121 tools=[
122122 {
from line 128
128128 messages=[
129129 {
130130 "role": "user",
131 "content": "Build a concurrent worker pool in Go with graceful shutdown.",
131 "content": "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.",
132132 }
133133 ],
134134 )
from line 141
141141 
142142 const response = await client.beta.messages.create({
143143 model: "claude-sonnet-5",
144 max_tokens: 4096,
144 max_tokens: 16000,
145145 betas: ["advisor-tool-2026-03-01"],
146146 tools: [
147147 {
from line 153
153153 messages: [
154154 {
155155 role: "user",
156 content: "Build a concurrent worker pool in Go with graceful shutdown."
156 content: "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."
157157 }
158158 ]
159159 });
from line 170
170170 var parameters = new MessageCreateParams
171171 {
172172 Model = Messages::Model.ClaudeSonnet5,
173 MaxTokens = 4096,
173 MaxTokens = 16000,
174174 Tools = new BetaToolUnion[]
175175 {
176176 new BetaAdvisorTool20260301
from line 182
182182 [
183183 new BetaUserMessageParam
184184 {
185 Content = "Build a concurrent worker pool in Go with graceful shutdown."
185 Content = "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."
186186 }
187187 ],
188188 Betas = ["advisor-tool-2026-03-01"]
from line 197
197197 
198198 response, err := client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
199199 Model: anthropic.ModelClaudeSonnet5,
200 MaxTokens: 4096,
200 MaxTokens: 16000,
201201 Tools: []anthropic.BetaToolUnionParam{
202202 {OfAdvisorTool20260301: &anthropic.BetaAdvisorTool20260301Param{
203203 Model: anthropic.ModelClaudeOpus5_5,
from line 204
204204 }},
205205 },
206206 Messages: []anthropic.BetaMessageParam{
207 anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Build a concurrent worker pool in Go with graceful shutdown.")),
207 anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.")),
208208 },
209209 Betas: []anthropic.AnthropicBeta{
210210 anthropic.AnthropicBetaAdvisorTool2026_03_01,
from line 227
227227 
228228 MessageCreateParams params = MessageCreateParams.builder()
229229 .model(Model.CLAUDE_SONNET_5)
230 .maxTokens(4096L)
230 .maxTokens(16000L)
231231 .addTool(BetaAdvisorTool20260301.builder()
232232 .model(Model.CLAUDE_OPUS_5_5)
233233 .build())
234 .addUserMessage("Build a concurrent worker pool in Go with graceful shutdown.")
234 .addUserMessage("Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.")
235235 .addBeta("advisor-tool-2026-03-01")
236236 .build();
237237 
from line 244
244244 $client = new Client();
245245 
246246 $response = $client->beta->messages->create(
247 maxTokens: 4096,
247 maxTokens: 16000,
248248 messages: [
249249 [
250250 'role' => 'user',
251 'content' => 'Build a concurrent worker pool in Go with graceful shutdown.',
251 'content' => 'Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.',
252252 ],
253253 ],
254254 model: Model::CLAUDE_SONNET_5,
from line 270
270270 
271271 response = client.beta.messages.create(
272272 model: "claude-sonnet-5",
273 max_tokens: 4096,
273 max_tokens: 16000,
274274 tools: [
275275 {
276276 type: "advisor_20260301",
from line 281
281281 messages: [
282282 {
283283 role: "user",
284 content: "Build a concurrent worker pool in Go with graceful shutdown."
284 content: "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."
285285 }
286286 ],
287287 betas: ["advisor-tool-2026-03-01"]
from line 454
454454 messages = [
455455 {
456456 "role": "user",
457 "content": "Build a concurrent worker pool in Go with graceful shutdown.",
457 "content": "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.",
458458 }
459459 ]
460460 
461461 response = client.beta.messages.create(
462462 model="claude-sonnet-5",
463 max_tokens=1024,
463 max_tokens=16000,
464464 betas=["advisor-tool-2026-03-01"],
465465 tools=tools,
466466 messages=messages,
from line 474
474474 
475475 response = client.beta.messages.create(
476476 model="claude-sonnet-5",
477 max_tokens=1024,
477 max_tokens=16000,
478478 betas=["advisor-tool-2026-03-01"],
479479 tools=tools,
480480 messages=messages,
from line 495
495495 const messages: Anthropic.Beta.Messages.BetaMessageParam[] = [
496496 {
497497 role: "user",
498 content: "Build a concurrent worker pool in Go with graceful shutdown."
498 content: "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."
499499 }
500500 ];
501501 
502502 const response = await client.beta.messages.create({
503503 model: "claude-sonnet-5",
504 max_tokens: 1024,
504 max_tokens: 16000,
505505 betas: ["advisor-tool-2026-03-01"],
506506 tools,
507507 messages
from line 515
515515 
516516 const followUp = await client.beta.messages.create({
517517 model: "claude-sonnet-5",
518 max_tokens: 1024,
518 max_tokens: 16000,
519519 betas: ["advisor-tool-2026-03-01"],
520520 tools,
521521 messages
from line 526
526526 using Anthropic.Models.Beta.Messages;
527527 using Messages = Anthropic.Models.Messages;
528528 
529 // Advisor calls run a second model inside the request, so allow more than the
530 // C# SDK's default non-streaming timeout, which it sizes from max_tokens.
531 var client = new AnthropicClient { Timeout = TimeSpan.FromMinutes(5) };
529 var client = new AnthropicClient();
532530 
533531 var tools = new BetaToolUnion[]
534532 {
from line 535
537535 
538536 var messages = new List<BetaMessageParam>
539537 {
540 new BetaUserMessageParam { Content = "Build a concurrent worker pool in Go with graceful shutdown." }
538 new BetaUserMessageParam { Content = "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief." }
541539 };
542540 
543541 var response = await client.Beta.Messages.Create(new MessageCreateParams
544542 {
545543 Model = Messages::Model.ClaudeSonnet5,
546 MaxTokens = 1024,
544 MaxTokens = 16000,
547545 Tools = tools,
548546 Messages = messages,
549547 Betas = ["advisor-tool-2026-03-01"]
from line 559
561559 var followUp = await client.Beta.Messages.Create(new MessageCreateParams
562560 {
563561 Model = Messages::Model.ClaudeSonnet5,
564 MaxTokens = 1024,
562 MaxTokens = 16000,
565563 Tools = tools,
566564 Messages = messages,
567565 Betas = ["advisor-tool-2026-03-01"]
from line 576
578576 }
579577 
580578 messages := []anthropic.BetaMessageParam{
581 anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Build a concurrent worker pool in Go with graceful shutdown.")),
579 anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.")),
582580 }
583581 
584582 response, err := client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
585583 Model: anthropic.ModelClaudeSonnet5,
586 MaxTokens: 1024,
584 MaxTokens: 16000,
587585 Tools: tools,
588586 Messages: messages,
589587 Betas: []anthropic.AnthropicBeta{
from line 600
602600 
603601 response, err = client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
604602 Model: anthropic.ModelClaudeSonnet5,
605 MaxTokens: 1024,
603 MaxTokens: 16000,
606604 Tools: tools,
607605 Messages: messages,
608606 Betas: []anthropic.AnthropicBeta{
from line 631
633631 
634632 List<BetaMessageParam> messages = new ArrayList<>();
635633 messages.add(BetaMessageParam.ofUser(
636 "Build a concurrent worker pool in Go with graceful shutdown."));
634 "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."));
637635 
638636 BetaMessage response = client.beta().messages().create(MessageCreateParams.builder()
639637 .model(Model.CLAUDE_SONNET_5)
640 .maxTokens(1024L)
638 .maxTokens(16000L)
641639 .tools(tools)
642640 .messages(messages)
643641 .addBeta("advisor-tool-2026-03-01")
from line 649
651649 
652650 BetaMessage followUp = client.beta().messages().create(MessageCreateParams.builder()
653651 .model(Model.CLAUDE_SONNET_5)
654 .maxTokens(1024L)
652 .maxTokens(16000L)
655653 .tools(tools)
656654 .messages(messages)
657655 .addBeta("advisor-tool-2026-03-01")
from line 671
673671 $messages = [
674672 [
675673 'role' => 'user',
676 'content' => 'Build a concurrent worker pool in Go with graceful shutdown.',
674 'content' => 'Build a concurrent worker pool in Go with graceful shutdown. Keep it brief.',
677675 ],
678676 ];
679677 
680678 $response = $client->beta->messages->create(
681 maxTokens: 1024,
679 maxTokens: 16000,
682680 messages: $messages,
683681 model: 'claude-sonnet-5',
684682 tools: $tools,
from line 690
692690 $messages[] = ['role' => 'user', 'content' => 'Now add a max-in-flight limit of 10.'];
693691 
694692 $response = $client->beta->messages->create(
695 maxTokens: 1024,
693 maxTokens: 16000,
696694 messages: $messages,
697695 model: 'claude-sonnet-5',
698696 tools: $tools,
from line 712
714712 messages = [
715713 {
716714 role: "user",
717 content: "Build a concurrent worker pool in Go with graceful shutdown."
715 content: "Build a concurrent worker pool in Go with graceful shutdown. Keep it brief."
718716 }
719717 ]
720718 
721719 response = client.beta.messages.create(
722720 model: "claude-sonnet-5",
723 max_tokens: 1024,
721 max_tokens: 16000,
724722 tools: tools,
725723 messages: messages,
726724 betas: ["advisor-tool-2026-03-01"]
from line 732
734732 
735733 response = client.beta.messages.create(
736734 model: "claude-sonnet-5",
737 max_tokens: 1024,
735 max_tokens: 16000,
738736 tools: tools,
739737 messages: messages,
740738 betas: ["advisor-tool-2026-03-01"]

agents-and-tools/tool-use/bash-tool Changed · +3 / -3 lines

from line 54
5454 curl https://api.anthropic.com/v1/messages \
5555 -H "content-type: application/json" \
5656 -H "x-api-key: $ANTHROPIC_API_KEY" \
57 -H "anthropic-version: 2023-06-01" \
57 -H "anthropic-version: 2026-10-21" \
5858 -d '{
5959 "model": "claude-opus-5-5",
6060 "max_tokens": 1024,
from line 280
280280 
281281`bash_20250124` is the current version of the tool, and it requires no beta header. Every model from Claude Sonnet 3.7 ([retired](https://platform.claude.com/docs/en/about-claude/model-deprecations)) onward accepts it, including all current Claude models.
282282 
283The original `bash_20241022` version works only with the October 2024 Claude Sonnet 3.5 model ([retired](https://platform.claude.com/docs/en/about-claude/model-deprecations)). Requests that use it need the `anthropic-beta: computer-use-2024-10-22` header, and the SDK exposes it only in its beta namespace. New integrations should use `bash_20250124`.
283The `bash_20241022` version works only with the October 2024 Claude Sonnet 3.5 model ([retired](https://platform.claude.com/docs/en/about-claude/model-deprecations)). Requests that use it need the `anthropic-beta: computer-use-2024-10-22` header, and the SDK exposes it only in its beta namespace. New integrations should use `bash_20250124`.
284284 
285285## Example: Multistep automation
286286 
from line 862
862862 curl https://api.anthropic.com/v1/messages \
863863 -H "content-type: application/json" \
864864 -H "x-api-key: $ANTHROPIC_API_KEY" \
865 -H "anthropic-version: 2023-06-01" \
865 -H "anthropic-version: 2026-10-21" \
866866 -d '{
867867 "model": "claude-opus-5-5",
868868 "max_tokens": 1024,

agents-and-tools/tool-use/browser-use-tool Changed · +11 / -11 lines

from line 48
4848 curl https://api.anthropic.com/v1/messages \
4949 -H "content-type: application/json" \
5050 -H "x-api-key: $ANTHROPIC_API_KEY" \
51 -H "anthropic-version: 2023-06-01" \
51 -H "anthropic-version: 2026-10-21" \
5252 -d '{
5353 "model": "claude-opus-5-5",
5454 "max_tokens": 2048,
from line 1552
15521552 
15531553The API validates the toolset entry and every member `tool_use` and `tool_result` block in the conversation. When one is malformed, the API returns an `invalid_request_error` before Claude runs. In the following table, the left column names what you sent.
15541554 
1555| Request | Why it fails and what to do |
1556| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1557| An option or combination the toolset entry doesn’t accept, for example, a `name`, `strict: true`, `input_examples`, `defer_loading` on the entry itself, a `configs` key that isn’t a member name, a field other than `enabled` or `defer_loading` in a member’s `configs` value ([Configure the toolset](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#configure-the-toolset)), enabled members whose `defer_loading` values differ ([Configure the toolset](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#configure-the-toolset)), a `configs` that leaves no member enabled, a code execution caller in `allowed_callers`, the legacy `fine-grained-tool-streaming-2025-05-14` beta header on the request, a `tool_choice` of type `tool` naming `browser` or a member, or a second browser toolset entry or another tool named `browser` | These aren’t supported on client toolsets. See [Client toolsets](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-reference#client-toolsets) for each rule and its alternative. |
1558| A `tool_result` answering a member call without `"toolset_name": "browser"` or with a different value, or `toolset_name` on a result whose call wasn’t a member call | Echo `toolset_name` exactly on member results, and only on them. |
1559| A member `tool_use` from an earlier turn with no matching `tool_result` | Answer every member call, including the ones you didn’t run after a failure. |
1560| A content block other than `text`, `image`, or `browser_state` in a member result | Member results accept only those three block types. |
1561| A `browser_state` block that breaks a rule in [Track tabs with `browser_state`](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#track-tabs-and-page-state), for example, one on an `is_error: true` result or on a result that doesn’t answer a browser member call, more than one in a result, a non-empty `tabs` without exactly one `active: true` entry, a duplicate `tab_id`, an empty `state_changes` array, a `tab_opened` whose `tab_id` isn’t in `tabs`, two state changes for one `download_id` or a state-change field its `type` doesn’t declare ([Report downloads](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#report-downloads)), or a field over its limits | Fix the block. “Nothing to report” is expressed by omitting the block or the `state_changes` field, never by an empty value. |
1562| A successful `new_tab`, `switch_tab`, `close_tab`, or `list_tabs` result whose `content` isn’t exactly one `browser_state` block, or a `new_tab` result without exactly one `tab_opened` matching the active tab | The API renders these results from the block and needs it in that exact shape; see [Tab management results](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#tab-management-results). |
1563| An `image` in a result over your model’s [image size limits](https://platform.claude.com/docs/en/build-with-claude/vision#evaluate-image-size), or over the stricter per-image limit that applies once the request holds [more than 20 images](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits), counting screenshots and `zoom` images in earlier results | The API doesn’t downscale toolset images. Resize screenshots before returning them ([Size screenshots to fit image limits](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool#handle-coordinate-scaling-for-higher-resolutions)). |
1564| A `model` that doesn’t support `browser_toolset_20260801` | See [API support](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#availability-feature-support) for the supported models. |
1555| Request | Why it fails and what to do |
1556| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1557| An option or combination the toolset entry doesn’t accept, for example, a `name`, `strict: true`, `input_examples`, `defer_loading` on the entry itself, a `configs` key that isn’t a member name, a field other than `enabled` or `defer_loading` in a member’s `configs` value ([Configure the toolset](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#configure-the-toolset)), enabled members whose `defer_loading` values differ ([Configure the toolset](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#configure-the-toolset)), a `configs` that leaves no member enabled, a code execution caller in `allowed_callers`, the `fine-grained-tool-streaming-2025-05-14` beta header on the request, a `tool_choice` of type `tool` naming `browser` or a member, or a second browser toolset entry or another tool named `browser` | These aren’t supported on client toolsets. See [Client toolsets](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-reference#client-toolsets) for each rule and its alternative. |
1558| A `tool_result` answering a member call without `"toolset_name": "browser"` or with a different value, or `toolset_name` on a result whose call wasn’t a member call | Echo `toolset_name` exactly on member results, and only on them. |
1559| A member `tool_use` from an earlier turn with no matching `tool_result` | Answer every member call, including the ones you didn’t run after a failure. |
1560| A content block other than `text`, `image`, or `browser_state` in a member result | Member results accept only those three block types. |
1561| A `browser_state` block that breaks a rule in [Track tabs with `browser_state`](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#track-tabs-and-page-state), for example, one on an `is_error: true` result or on a result that doesn’t answer a browser member call, more than one in a result, a non-empty `tabs` without exactly one `active: true` entry, a duplicate `tab_id`, an empty `state_changes` array, a `tab_opened` whose `tab_id` isn’t in `tabs`, two state changes for one `download_id` or a state-change field its `type` doesn’t declare ([Report downloads](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#report-downloads)), or a field over its limits | Fix the block. “Nothing to report” is expressed by omitting the block or the `state_changes` field, never by an empty value. |
1562| A successful `new_tab`, `switch_tab`, `close_tab`, or `list_tabs` result whose `content` isn’t exactly one `browser_state` block, or a `new_tab` result without exactly one `tab_opened` matching the active tab | The API renders these results from the block and needs it in that exact shape; see [Tab management results](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#tab-management-results). |
1563| An `image` in a result over your model’s [image size limits](https://platform.claude.com/docs/en/build-with-claude/vision#evaluate-image-size), or over the stricter per-image limit that applies once the request holds [more than 20 images](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits), counting screenshots and `zoom` images in earlier results | The API doesn’t downscale toolset images. Resize screenshots before returning them ([Size screenshots to fit image limits](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool#handle-coordinate-scaling-for-higher-resolutions)). |
1564| A `model` that doesn’t support `browser_toolset_20260801` | See [API support](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool#availability-feature-support) for the supported models. |
15651565 
15661566## Limitations
15671567 

agents-and-tools/tool-use/code-execution-tool Changed · +8 / -6 lines

from line 63
6363To check whether a model accepts the code execution tool before you send a request, read its `capabilities.server_tools.code_execution.supported` value from the Models API. Don’t use the top-level `capabilities.code_execution` value for this. It reports whether code running in this tool can call your request’s other tools, as in programmatic tool calling. [Using the Models API](https://platform.claude.com/docs/en/models/overview#using-the-models-api) describes both fields.
6464 
6565<Note>
66 If you’re still using the legacy `code_execution_20250522` (Python only), see [Upgrade to latest tool version](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#upgrade-to-latest-tool-version) to migrate from it.
66 If you’re using `code_execution_20250522` (Python only), see [Upgrade to latest tool version](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#upgrade-to-latest-tool-version) to migrate from it.
6767</Note>
6868 
6969## Quick start
from line 74
7474 ```bash cURL
7575 curl --fail-with-body -sS https://api.anthropic.com/v1/messages \
7676 -H "x-api-key: $ANTHROPIC_API_KEY" \
77 -H "anthropic-version: 2023-06-01" \
77 -H "anthropic-version: 2026-10-21" \
7878 -H "content-type: application/json" \
7979 -d '{
8080 "model": "claude-opus-5-5",
from line 295
295295 # First, upload a file
296296 curl --fail-with-body -sS https://api.anthropic.com/v1/files \
297297 -H "x-api-key: $ANTHROPIC_API_KEY" \
298 -H "anthropic-version: 2023-06-01" \
298 -H "anthropic-version: 2026-10-21" \
299299 -F "[email protected]"
300300 
301301 # Then use the file with code execution: FILE_ID is the ID from the upload response
302302 curl --fail-with-body -sS https://api.anthropic.com/v1/messages \
303303 -H "x-api-key: $ANTHROPIC_API_KEY" \
304 -H "anthropic-version: 2023-06-01" \
304 -H "anthropic-version: 2026-10-21" \
305305 -H "content-type: application/json" \
306306 -d '{
307307 "model": "claude-opus-5-5",
from line 1091
10911091 
10921092The response might include a `pause_turn` stop reason, which indicates that the API paused a long-running turn. You may provide the response back as-is in a subsequent request to let Claude continue its turn, or modify the content if you want to interrupt the conversation.
10931093 
1094Send the response’s container ID back with that request (see [Container reuse](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#container-reuse)). Without it, the request runs in a new container, and files from earlier in the turn are lost.
1095 
10941096## Containers
10951097 
10961098The code execution tool runs in a secure, containerized environment designed specifically for code execution, with a higher focus on Python.
from line 1146
11441146 # First request: Create a file with a random number
11451147 curl https://api.anthropic.com/v1/messages \
11461148 -H "x-api-key: $ANTHROPIC_API_KEY" \
1147 -H "anthropic-version: 2023-06-01" \
1149 -H "anthropic-version: 2026-10-21" \
11481150 -H "content-type: application/json" \
11491151 -d '{
11501152 "model": "claude-opus-5-5",
from line 1165
11631165 # CONTAINER_ID is the container.id from the first response
11641166 curl https://api.anthropic.com/v1/messages \
11651167 -H "x-api-key: $ANTHROPIC_API_KEY" \
1166 -H "anthropic-version: 2023-06-01" \
1168 -H "anthropic-version: 2026-10-21" \
11671169 -H "content-type: application/json" \
11681170 -d '{
11691171 "container": "'"$CONTAINER_ID"'",

agents-and-tools/tool-use/computer-use-tool Changed · +5 / -5 lines

from line 34
3434 Microsoft Foundry: stable
3535 details:
3636 - Claude 5.5 and later models support computer use through the `computer_toolset_20260801` toolset. They return a 400 error for any computer use tool version they don't accept, such as `computer_20251124` on the Claude API. To move a `computer_20251124` integration to the toolset, see [Migrate from `computer_20251124`](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool#migrate-from-computer-20251124). To move from `computer_20250124`, see [Move computer use to the toolset](https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide#computer-use-toolset) in the Claude Haiku 5.5 migration guide.
37 - Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, and Claude Opus 4.5 support computer use only through the earlier `computer_20251124` tool version, which requires a beta header; see [Earlier tool versions](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool#earlier-tool-versions).
37 - Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, and Claude Opus 4.5 support computer use only through the `computer_20251124` tool version, which requires a beta header; see [Earlier tool versions](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool#earlier-tool-versions).
3838---
3939 
4040<Note>
from line 79
7979 curl https://api.anthropic.com/v1/messages \
8080 -H "content-type: application/json" \
8181 -H "x-api-key: $ANTHROPIC_API_KEY" \
82 -H "anthropic-version: 2023-06-01" \
82 -H "anthropic-version: 2026-10-21" \
8383 -d '{
8484 "model": "claude-opus-5-5",
8585 "max_tokens": 1024,
from line 879
879879To combine computer use with thinking, see [Thinking](https://platform.claude.com/docs/en/build-with-claude/thinking).
880880 
881881<Tip>
882 For the earlier `computer_20251124` tool, internal benchmarking on the models that use it suggests these `effort` settings:
882 For the `computer_20251124` tool, internal benchmarking on the models that use it suggests these `effort` settings:
883883 
884884 * **Claude Opus 4.7:** use `high` as the default; use `low` for high-throughput or cost-sensitive workloads.
885885 * **Claude Sonnet 4.6 and Claude Opus 4.6:** use `medium` as the default (best accuracy-to-cost ratio). Avoid `max`, which adds token cost without improving accuracy on UI tasks. On these models, `low` uses *fewer* output tokens than disabling thinking entirely (fewer mistakes mean fewer retries), making it a strong option for cost-sensitive loops.
from line 1842
18421842| Accuracy is consistently poor | Resolution too low | Try 1280x720 as a baseline |
18431843 
18441844<Tip>
1845 **Model choice affects click precision.** Among the models that use the earlier `computer_20251124` tool, Claude Sonnet 4.6 is more mechanically precise at clicking than Claude Opus 4.6 and is more robust when screenshots require heavy downscaling. Claude Opus 4.7 narrows that gap: its click precision is roughly comparable to Sonnet 4.6, and its higher resolution limit means less downscaling is needed.
1845 **Model choice affects click precision.** Among the models that use the `computer_20251124` tool, Claude Sonnet 4.6 is more mechanically precise at clicking than Claude Opus 4.6 and is more robust when screenshots require heavy downscaling. Claude Opus 4.7 narrows that gap: its click precision is roughly comparable to Sonnet 4.6, and its higher resolution limit means less downscaling is needed.
18461846</Tip>
18471847 
18481848### Follow implementation best practices
from line 2180
21802180| Tool version | Beta header | Use with | Parameters |
21812181| ------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
21822182| `computer_20251124` | `computer-use-2025-11-24` | Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, and Claude Opus 4.5 | [API reference](https://platform.claude.com/docs/en/api/beta/messages/create) |
2183| `computer_20250124` | `computer-use-2025-01-24` | Claude Sonnet 4.5 ([deprecated](https://platform.claude.com/docs/en/about-claude/model-deprecations)), Claude Haiku 4.5, Claude Opus 4.1 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)), Claude Sonnet 4 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)), and Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | [API reference](https://platform.claude.com/docs/en/api/beta/messages/create) |
2183| `computer_20250124` | `computer-use-2025-01-24` | Claude Sonnet 4.5 ([deprecated](https://platform.claude.com/docs/en/about-claude/model-deprecations)), Claude Haiku 4.5, Claude Opus 4.1 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)), Claude Sonnet 4 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)), and Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | [API reference](https://platform.claude.com/docs/en/api/beta/messages/create) |
21842184 
21852185On Amazon Bedrock, Claude Opus 5.5, Claude Sonnet 5.5, and Claude Haiku 5.5 also accept the `computer_20251124` tool with the `computer-use-2025-11-24` beta header.
21862186 

agents-and-tools/tool-use/overview Changed · +3 / -3 lines

from line 12
1212 ```bash cURL
1313 curl https://api.anthropic.com/v1/messages \
1414 -H "x-api-key: $ANTHROPIC_API_KEY" \
15 -H "anthropic-version: 2023-06-01" \
15 -H "anthropic-version: 2026-10-21" \
1616 -H "content-type: application/json" \
1717 -d '{
1818 "model": "claude-opus-5-5",
from line 770
770770| Claude Opus 4.7 | 675 tokens | 804 tokens |
771771| Claude Opus 4.6 | 497 tokens | 589 tokens |
772772| Claude Opus 4.5 | 496 tokens | 588 tokens |
773| Claude Opus 4.1 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
773| Claude Opus 4.1 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
774774| Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
775775| Claude Sonnet 5.5 | 286 tokens | |
776776| Claude Sonnet 5 | 354 tokens | 474 tokens |
777777| Claude Sonnet 4.6 | 497 tokens | 589 tokens |
778778| Claude Sonnet 4.5 | 496 tokens | 588 tokens |
779| Claude Sonnet 4 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
779| Claude Sonnet 4 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 313 tokens | 315 tokens |
780780| Claude Haiku 5.5 | 286 tokens | 406 tokens |
781781| Claude Haiku 4.5 | 496 tokens | 588 tokens |
782782| Claude Haiku 3.5 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | 264 tokens | 355 tokens |

agents-and-tools/tool-use/programmatic-tool-calling Changed · +18 / -16 lines

from line 50
5050 ```bash cURL
5151 curl https://api.anthropic.com/v1/messages \
5252 -H "x-api-key: $ANTHROPIC_API_KEY" \
53 -H "anthropic-version: 2023-06-01" \
53 -H "anthropic-version: 2026-10-21" \
5454 -H "content-type: application/json" \
5555 -d '{
5656 "model": "claude-opus-5-5",
from line 528
528528 ```bash cURL
529529 curl https://api.anthropic.com/v1/messages \
530530 -H "x-api-key: $ANTHROPIC_API_KEY" \
531 -H "anthropic-version: 2023-06-01" \
531 -H "anthropic-version: 2026-10-21" \
532532 -H "content-type: application/json" \
533533 -d '{
534534 "model": "claude-opus-5-5",
from line 810
810810 },
811811 new AssistantMessageParam
812812 {
813 Content = new ContentBlock[]
813 Content = new List<ContentBlockParam>
814814 {
815 new TextBlock { Text = "I'll query the purchase history and analyze the results." },
816 new ServerToolUseBlock
815 new TextBlockParam { Text = "I'll query the purchase history and analyze the results." },
816 new ServerToolUseBlockParam
817817 {
818 Id = "srvtoolu_abc123",
819 Name = "code_execution",
820 Input = new { code = "..." }
818 ID = "srvtoolu_abc123",
819 Name = ServerToolUseBlockParamName.CodeExecution,
820 Input = new Dictionary<string, JsonElement>
821 {
822 ["code"] = JsonSerializer.SerializeToElement("..."),
823 }
821824 },
822 new ToolUseBlock
825 new ToolUseBlockParam
823826 {
824 Id = "toolu_def456",
827 ID = "toolu_def456",
825828 Name = "query_database",
826 Input = new { sql = "<sql>" },
827 Caller = new ToolCaller
829 Input = new Dictionary<string, JsonElement>
828830 {
829 Type = "code_execution_20260120",
830 ToolId = "srvtoolu_abc123"
831 }
831 ["sql"] = JsonSerializer.SerializeToElement("<sql>"),
832 },
833 Caller = new ServerToolCaller20260120 { ToolID = "srvtoolu_abc123" }
832834 }
833835 }
834836 },
835837 new UserMessageParam
836838 {
837 Content = new ContentBlockParam[]
839 Content = new List<ContentBlockParam>
838840 {
839841 new ToolResultBlockParam
840842 {

agents-and-tools/tool-use/server-tools Changed · +4 / -3 lines

from line 33
3333 # the turn by re-sending the request with the assistant content appended to messages.
3434 curl https://api.anthropic.com/v1/messages \
3535 -H "x-api-key: $ANTHROPIC_API_KEY" \
36 -H "anthropic-version: 2023-06-01" \
36 -H "anthropic-version: 2026-10-21" \
3737 -H "content-type: application/json" \
3838 -d '{
3939 "model": "claude-opus-5-5",
from line 392
392392 
393393* **Continue the conversation:** Pass the paused response back as-is in a subsequent request to let Claude continue its turn.
394394* **Preserve tool state:** Include the same tools in the continuation request. A paused turn can end with a `server_tool_use` block whose tool has not run yet, and the API returns a validation error if that tool is missing from the continuation.
395* **Repeat as needed:** A continued turn can pause again. Check `stop_reason` on each response and continue until you get a different stop reason, capping the number of continuations as you would any retry loop.
395* **Keep the container:** If the response includes a `container`, as it does with the [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool), send its ID back in the continuation request. Without it, the request runs in a new container, and files from earlier in the turn are lost.
396* **Repeat as needed:** A continued turn can pause again. Check `stop_reason` on each response and continue until you get a different stop reason, capping the number of continuations as you would any retry loop. Keep every paused response in `messages`, in order. A continuation holds only new content, so a request that leaves out an earlier paused response loses that work and can return a 400 error.
396397 
397398For the other `stop_reason` values and general handling patterns, see [Stop reasons and fallback](https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons).
398399 
from line 508
507508 # and the same tools array (see the SDK tabs).
508509 curl https://api.anthropic.com/v1/messages \
509510 -H "x-api-key: $ANTHROPIC_API_KEY" \
510 -H "anthropic-version: 2023-06-01" \
511 -H "anthropic-version: 2026-10-21" \
511512 -H "content-type: application/json" \
512513 -d '{
513514 "model": "claude-opus-5-5",

agents-and-tools/tool-use/strict-tool-use Changed · +3 / -3 lines

from line 62
6262 curl https://api.anthropic.com/v1/messages \
6363 -H "content-type: application/json" \
6464 -H "x-api-key: $ANTHROPIC_API_KEY" \
65 -H "anthropic-version: 2023-06-01" \
65 -H "anthropic-version: 2026-10-21" \
6666 -d '{
6767 "model": "claude-opus-5-5",
6868 "max_tokens": 1024,
from line 423
423423 curl https://api.anthropic.com/v1/messages \
424424 -H "content-type: application/json" \
425425 -H "x-api-key: $ANTHROPIC_API_KEY" \
426 -H "anthropic-version: 2023-06-01" \
426 -H "anthropic-version: 2026-10-21" \
427427 -d '{
428428 "model": "claude-opus-5-5",
429429 "max_tokens": 1024,
from line 724
724724 curl https://api.anthropic.com/v1/messages \
725725 -H "content-type: application/json" \
726726 -H "x-api-key: $ANTHROPIC_API_KEY" \
727 -H "anthropic-version: 2023-06-01" \
727 -H "anthropic-version: 2026-10-21" \
728728 -d '{
729729 "model": "claude-opus-5-5",
730730 "max_tokens": 1024,

agents-and-tools/tool-use/text-editor-tool Changed · +4 / -4 lines

from line 62
6262 curl https://api.anthropic.com/v1/messages \
6363 -H "content-type: application/json" \
6464 -H "x-api-key: $ANTHROPIC_API_KEY" \
65 -H "anthropic-version: 2023-06-01" \
65 -H "anthropic-version: 2026-10-21" \
6666 -d '{
6767 "model": "claude-opus-5-5",
6868 "max_tokens": 1024,
from line 417
417417 curl https://api.anthropic.com/v1/messages \
418418 -H "content-type: application/json" \
419419 -H "x-api-key: $ANTHROPIC_API_KEY" \
420 -H "anthropic-version: 2023-06-01" \
420 -H "anthropic-version: 2026-10-21" \
421421 -d '{
422422 "model": "claude-opus-5-5",
423423 "max_tokens": 1024,
from line 617
617617 curl https://api.anthropic.com/v1/messages \
618618 -H "content-type: application/json" \
619619 -H "x-api-key: $ANTHROPIC_API_KEY" \
620 -H "anthropic-version: 2023-06-01" \
620 -H "anthropic-version: 2026-10-21" \
621621 -d '{
622622 "model": "claude-opus-5-5",
623623 "max_tokens": 1024,
from line 1080
10801080 curl https://api.anthropic.com/v1/messages \
10811081 -H "content-type: application/json" \
10821082 -H "x-api-key: $ANTHROPIC_API_KEY" \
1083 -H "anthropic-version: 2023-06-01" \
1083 -H "anthropic-version: 2026-10-21" \
10841084 -d '{
10851085 "model": "claude-opus-5-5",
10861086 "max_tokens": 1024,

agents-and-tools/tool-use/web-fetch-tool Changed · +4 / -4 lines

from line 41
4141 
4242The web fetch tool allows Claude to retrieve full content from specified webpages and PDF documents.
4343 
44The latest web fetch tool version (`web_fetch_20260318`) supports **dynamic filtering**: Claude can write and execute code to filter fetched content before it reaches the context window, keeping only relevant information and discarding the rest. This reduces token consumption while maintaining response quality. Dynamic filtering is available with Claude 4.6 and later models and [Claude Mythos Preview](https://anthropic.com/glasswing). `web_fetch_20260318` also adds [response inclusion](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#response-inclusion) control for agentic workflows. The previous versions (`web_fetch_20260309` for dynamic filtering and [cache bypass](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#cache-bypass), `web_fetch_20260209` for dynamic filtering only, `web_fetch_20250910` for basic fetch) remain available.
44The latest web fetch tool version (`web_fetch_20260318`) supports **dynamic filtering**: Claude can write and run code to filter fetched content before it reaches the context window, keeping only relevant information and discarding the rest. This reduces token consumption while maintaining response quality. Dynamic filtering is available with Claude 4.6 and later models and [Claude Mythos Preview](https://anthropic.com/glasswing). `web_fetch_20260318` also adds [response inclusion](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#response-inclusion) control for agentic workflows. The other versions (`web_fetch_20260309` for dynamic filtering and [cache bypass](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#cache-bypass), `web_fetch_20260209` for dynamic filtering only, `web_fetch_20250910` for basic fetch) are available.
4545 
4646Web fetch (with and without dynamic filtering) is available on the Claude API, [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws), [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed), and [Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry). On Microsoft Foundry, deployments [hosted on Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#additional-features-not-supported-when-hosted-on-azure) support only the basic web fetch tool (`web_fetch_20250910`, without dynamic filtering). Deployments hosted on Anthropic support all versions.
4747 
from line 117
117117 ```bash cURL
118118 curl https://api.anthropic.com/v1/messages \
119119 -H "x-api-key: $ANTHROPIC_API_KEY" \
120 -H "anthropic-version: 2023-06-01" \
120 -H "anthropic-version: 2026-10-21" \
121121 -H "content-type: application/json" \
122122 -d '{
123123 "model": "claude-opus-5-5",
from line 287
287287 ```bash cURL
288288 curl https://api.anthropic.com/v1/messages \
289289 -H "x-api-key: $ANTHROPIC_API_KEY" \
290 -H "anthropic-version: 2023-06-01" \
290 -H "anthropic-version: 2026-10-21" \
291291 -H "content-type: application/json" \
292292 -d '{
293293 "model": "claude-opus-5-5",
from line 752
752752 ```bash cURL
753753 curl https://api.anthropic.com/v1/messages \
754754 -H "x-api-key: $ANTHROPIC_API_KEY" \
755 -H "anthropic-version: 2023-06-01" \
755 -H "anthropic-version: 2026-10-21" \
756756 -H "content-type: application/json" \
757757 -d '{
758758 "model": "claude-opus-5-5",

api/claude-platform-on-aws-iam-actions Changed · +29 / -24 lines

from line 81
8181</Note>
8282 
8383<Note>
84 Creating or deleting an individual skill version maps to `UpdateSkill`, not `CreateSkill` or `DeleteSkill`. A policy that denies `aws-external-anthropic:Delete*` still allows version deletion, and a policy that denies `aws-external-anthropic:Create*` still allows version creation. Deny `UpdateSkill` and `CreateSkill` as well if you need to prevent any skill mutation.
84 Creating or deleting an individual skill version maps to `UpdateSkill`, not `CreateSkill` or `DeleteSkill`. A policy that denies `aws-external-anthropic:Delete*` still allows version deletion, and a policy that denies `aws-external-anthropic:Create*` still allows version creation. To block every write route under `/v1/skills`, deny `CreateSkill`, `UpdateSkill`, and `DeleteSkill`.
8585</Note>
8686 
8787### Agents
from line 95
9595| `ArchiveAgent` | `POST /v1/agents/{id}/archive` |
9696 
9797<Note>
98 Agents support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveAgent`. Deny `ArchiveAgent`, `UpdateAgent`, and `CreateAgent` if you need to prevent any agent mutation.
98 Agents support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveAgent`. To block every write route under `/v1/agents`, deny `CreateAgent`, `UpdateAgent`, and `ArchiveAgent`.
9999</Note>
100100 
101101### Sessions
102102 
103| Action | Routes authorized |
104| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
105| `CreateSession` | `POST /v1/sessions` |
106| `GetSession` | `GET /v1/sessions/{id}`<br />`GET /v1/sessions/{id}/events`<br />`GET /v1/sessions/{id}/events/stream`<br />`GET /v1/sessions/{id}/resources`<br />`GET /v1/sessions/{id}/resources/{id}` |
107| `ListSessions` | `GET /v1/sessions` |
108| `UpdateSession` | `POST /v1/sessions/{id}`<br />`POST /v1/sessions/{id}/events`<br />`POST /v1/sessions/{id}/resources`<br />`POST /v1/sessions/{id}/resources/{id}`<br />`DELETE /v1/sessions/{id}/resources/{id}` |
109| `ArchiveSession` | `POST /v1/sessions/{id}/archive` |
110| `DeleteSession` | `DELETE /v1/sessions/{id}` |
103| Action | Routes authorized |
104| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
105| `CreateSession` | `POST /v1/sessions` |
106| `GetSession` | `GET /v1/sessions/{id}`<br />`GET /v1/sessions/{id}/events`<br />`GET /v1/sessions/{id}/events/stream`<br />`GET /v1/sessions/{id}/resources`<br />`GET /v1/sessions/{id}/resources/{id}`<br />`GET /v1/sessions/{id}/threads`<br />`GET /v1/sessions/{id}/threads/{id}`<br />`GET /v1/sessions/{id}/threads/{id}/events`<br />`GET /v1/sessions/{id}/threads/{id}/stream` |
107| `ListSessions` | `GET /v1/sessions` |
108| `UpdateSession` | `POST /v1/sessions/{id}`<br />`POST /v1/sessions/{id}/events`<br />`POST /v1/sessions/{id}/resources`<br />`POST /v1/sessions/{id}/resources/{id}`<br />`DELETE /v1/sessions/{id}/resources/{id}`<br />`POST /v1/sessions/{id}/threads/{id}/archive` |
109| `ArchiveSession` | `POST /v1/sessions/{id}/archive` |
110| `DeleteSession` | `DELETE /v1/sessions/{id}` |
111111 
112112<Note>
113 `GetSession` authorizes reading session metadata, the full event stream (conversation history), and session resources. The `AnthropicReadOnlyAccess`, `AnthropicInferenceAccess`, and `AnthropicLimitedAccess` policies’ `Get*` wildcards include this action.
113 `GetSession` authorizes reading session metadata, the event stream (conversation history), session resources, and [session threads](https://platform.claude.com/docs/en/managed-agents/session-threads), including each thread’s events. The `AnthropicReadOnlyAccess`, `AnthropicInferenceAccess`, and `AnthropicLimitedAccess` policies’ `Get*` wildcards include this action, and the `AnthropicSelfHostedEnvironmentAccess` policy grants it explicitly.
114114</Note>
115115 
116116<Note>
117 Creating, updating, or deleting an individual session sub-resource (events or session resources) maps to `UpdateSession`, not `CreateSession` or `DeleteSession`. A policy that denies `aws-external-anthropic:Delete*` still allows sub-resource deletion, and a policy that denies `aws-external-anthropic:Create*` still allows sub-resource creation. Deny `UpdateSession`, `CreateSession`, and `ArchiveSession` as well if you need to prevent any session mutation.
117 Every route that writes to an existing session’s events, resources, or threads maps to `UpdateSession`, not `CreateSession`, `DeleteSession`, or `ArchiveSession`. A policy that denies `aws-external-anthropic:Create*`, `Delete*`, or `Archive*` still allows sending events, adding or deleting session resources, and archiving session threads. To block every write route under `/v1/sessions`, deny `CreateSession`, `UpdateSession`, `ArchiveSession`, and `DeleteSession`. A principal with `ProcessEnvironmentWork` can still [stop a session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes-operations#stop-a-session-gracefully) that runs in a self-hosted environment.
118118</Note>
119119 
120120### Environments
from line 130
130130| `ProcessEnvironmentWork` | `GET /v1/environments/{id}/work/poll`<br />`POST /v1/environments/{id}/work/{work_id}`<br />`POST /v1/environments/{id}/work/{work_id}/ack`<br />`POST /v1/environments/{id}/work/{work_id}/heartbeat`<br />`POST /v1/environments/{id}/work/{work_id}/stop` |
131131 
132132<Note>
133 A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveEnvironment`. `ProcessEnvironmentWork` is not matched by `Create*`, `Update*`, `Delete*`, or `Archive*` wildcards. Deny `ArchiveEnvironment`, `UpdateEnvironment`, `CreateEnvironment`, and `ProcessEnvironmentWork` as well if you need to prevent any environment mutation.
133 A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveEnvironment`. `ProcessEnvironmentWork` is not matched by `Create*`, `Update*`, `Delete*`, or `Archive*` wildcards. To block every write route under `/v1/environments`, deny `CreateEnvironment`, `UpdateEnvironment`, `ArchiveEnvironment`, `DeleteEnvironment`, and `ProcessEnvironmentWork`.
134134</Note>
135135 
136136<Note>
from line 149
149149| `DeleteVault` | `DELETE /v1/vaults/{id}` |
150150 
151151<Note>
152 Creating, updating, archiving, or deleting an individual vault credential maps to `UpdateVault`. Reading a credential maps to `GetVault`. Vault credential secrets are not exposed: secret fields are write-only and are never returned by `GetVault` (see [Authenticate with vaults](https://platform.claude.com/docs/en/managed-agents/vaults)). A policy that denies `aws-external-anthropic:Delete*` still allows credential deletion, and a policy that denies `aws-external-anthropic:Create*` still allows credential creation. Deny `UpdateVault`, `CreateVault`, and `ArchiveVault` as well if you need to prevent any vault mutation.
152 Creating, updating, archiving, or deleting an individual vault credential maps to `UpdateVault`. Reading a credential maps to `GetVault`. Vault credential secrets are not exposed: secret fields are write-only and are never returned by `GetVault` (see [Authenticate with vaults](https://platform.claude.com/docs/en/managed-agents/vaults)). A policy that denies `aws-external-anthropic:Create*`, `Delete*`, or `Archive*` still allows creating, deleting, and archiving credentials. To block every write route under `/v1/vaults`, deny `CreateVault`, `UpdateVault`, `ArchiveVault`, and `DeleteVault`.
153153</Note>
154154 
155155### Memory stores
from line 168
168168</Note>
169169 
170170<Note>
171 Creating, updating, or deleting an individual memory and redacting a memory version both map to `UpdateMemoryStore`, not `CreateMemoryStore` or `DeleteMemoryStore`. A policy that denies `aws-external-anthropic:Delete*` still allows individual-memory deletion and memory-version redaction, and a policy that denies `aws-external-anthropic:Create*` still allows individual-memory creation. Deny `UpdateMemoryStore`, `CreateMemoryStore`, and `ArchiveMemoryStore` as well if you need to prevent any memory-store mutation.
171 Creating, updating, or deleting an individual memory and redacting a memory version both map to `UpdateMemoryStore`, not `CreateMemoryStore` or `DeleteMemoryStore`. A policy that denies `aws-external-anthropic:Delete*` still allows individual-memory deletion and memory-version redaction, and a policy that denies `aws-external-anthropic:Create*` still allows individual-memory creation. To block every write route under `/v1/memory_stores`, deny `CreateMemoryStore`, `UpdateMemoryStore`, `ArchiveMemoryStore`, and `DeleteMemoryStore`. A principal with `CreateSession` can still [attach a store to a session](https://platform.claude.com/docs/en/managed-agents/memory#attach-a-memory-store-to-a-session) with `read_write` access, the default. That session’s agent can then write to the store.
172172</Note>
173173 
174174### Webhooks
from line 187
187187</Note>
188188 
189189<Note>
190 `RotateWebhookSecret` is not matched by `aws-external-anthropic:Create*`, `Update*`, or `Delete*` wildcards. A policy that denies those patterns still allows secret rotation. Deny `RotateWebhookSecret`, `UpdateWebhook`, `CreateWebhook`, and `DeleteWebhook` if you need to prevent any webhook mutation.
190 `RotateWebhookSecret` is not matched by `aws-external-anthropic:Create*`, `Update*`, or `Delete*` wildcards. A policy that denies those patterns still allows secret rotation. To block every write route under `/v1/webhooks`, deny `CreateWebhook`, `UpdateWebhook`, `DeleteWebhook`, and `RotateWebhookSecret`.
191191</Note>
192192 
193193### User profiles
from line 220
220220| `ArchiveWorkspace` | `POST /v1/organizations/workspaces/{id}/archive` |
221221 
222222<Note>
223 Workspaces support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveWorkspace`. Deny `ArchiveWorkspace`, `UpdateWorkspace`, and `CreateWorkspace` if you need to prevent any workspace mutation.
223 Workspaces support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveWorkspace`. To block every write route under `/v1/organizations/workspaces`, deny `CreateWorkspace`, `UpdateWorkspace`, and `ArchiveWorkspace`.
224224</Note>
225225 
226226### Encryption keys
from line 234
234234| `DisableKey` | `DELETE /v1/organizations/external_keys/{id}` |
235235 
236236<Note>
237 These actions manage your organization’s [customer-managed encryption key (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws) registrations, the record of which AWS KMS key ARNs are registered. They do not create, change, or disable the keys in AWS KMS. `DisableKey` removes a registration and is rejected while any workspace still uses the key. `RegisterKey` and `DisableKey` are not matched by `Create*`, `Update*`, or `Delete*` wildcards; deny `RegisterKey`, `UpdateKey`, and `DisableKey` if you need to prevent any change to key registrations. In these routes, `{id}` is the URL-encoded KMS key ARN. Attaching a registered key to a workspace is a workspace operation, authorized by `CreateWorkspace` or `UpdateWorkspace`; the principal that attaches a key also needs `kms:DescribeKey`, `kms:Encrypt`, and `kms:Decrypt` on that key (see the [prerequisites](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws#prerequisites)). External key actions are account-scoped: specifying a workspace ARN on them has no effect; use `Resource: "*"`.
237 These actions manage your organization’s [customer-managed encryption key (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws) registrations, the record of which AWS KMS key ARNs are registered. They do not create, change, or disable the keys in AWS KMS. `DisableKey` removes a registration and is rejected while any workspace still uses the key. `RegisterKey` and `DisableKey` are not matched by `Create*`, `Update*`, or `Delete*` wildcards. To block every write route under `/v1/organizations/external_keys`, deny `RegisterKey`, `UpdateKey`, and `DisableKey`. In these routes, `{id}` is the URL-encoded KMS key ARN. Attaching a registered key to a workspace is a workspace operation, authorized by `CreateWorkspace` or `UpdateWorkspace`; the principal that attaches a key also needs `kms:DescribeKey`, `kms:Encrypt`, and `kms:Decrypt` on that key (see the [prerequisites](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws#prerequisites)). External key actions are account-scoped: specifying a workspace ARN on them has no effect; use `Resource: "*"`.
238238</Note>
239239 
240240### Compliance
from line 270
270270</Note>
271271 
272272<Note>
273 `AddTelemetryDestinationWorkspace` and `RemoveTelemetryDestinationWorkspace` apply to the workspace in the route, and only on a destination whose **Workspaces** option is **Selected**. To change an **All except** list, use `UpdateAccountTelemetryDestination`. A policy that denies `aws-external-anthropic:Create*`, `Update*`, or `Delete*` still allows adding and removing workspaces. To block every change to destinations, also deny `AddTelemetryDestinationWorkspace` and `RemoveTelemetryDestinationWorkspace`.
273 `AddTelemetryDestinationWorkspace` and `RemoveTelemetryDestinationWorkspace` apply to the workspace in the route, and only on a destination whose **Workspaces** option is **Selected**. To change an **All except** list, use `UpdateAccountTelemetryDestination`. A policy that denies `aws-external-anthropic:Create*`, `Update*`, or `Delete*` still allows adding and removing workspaces. To block every write route under `/v1/organizations/telemetry_destinations`, deny `CreateAccountTelemetryDestination`, `UpdateAccountTelemetryDestination`, `DeleteAccountTelemetryDestination`, `TestAccountTelemetryDestination`, `AddTelemetryDestinationWorkspace`, and `RemoveTelemetryDestinationWorkspace`.
274274</Note>
275275 
276276### Usage and cost
from line 376
376376| `POST` | `/v1/sessions/{id}/resources` | `UpdateSession` | Data |
377377| `POST` | `/v1/sessions/{id}/resources/{id}` | `UpdateSession` | Data |
378378| `DELETE` | `/v1/sessions/{id}/resources/{id}` | `UpdateSession` | Data |
379| `GET` | `/v1/sessions/{id}/threads` | `GetSession` | Data |
380| `GET` | `/v1/sessions/{id}/threads/{id}` | `GetSession` | Data |
381| `GET` | `/v1/sessions/{id}/threads/{id}/events` | `GetSession` | Data |
382| `GET` | `/v1/sessions/{id}/threads/{id}/stream` | `GetSession` | Data |
383| `POST` | `/v1/sessions/{id}/threads/{id}/archive` | `UpdateSession` | Data |
379384| `POST` | `/v1/environments` | `CreateEnvironment` | Data |
380385| `GET` | `/v1/environments` | `ListEnvironments` | Data |
381386| `GET` | `/v1/environments/{id}` | `GetEnvironment` | Data |

api/errors Changed · +6 / -4 lines

from line 12
1212 
1313* 401 - `authentication_error`: There’s an issue with your [API key](https://platform.claude.com/docs/en/get-api-key) (for example, it’s malformed, revoked, or expired; see [Key expiration](https://platform.claude.com/docs/en/manage-claude/authentication#key-expiration)). On Claude Platform on AWS, this can also indicate a problem with your AWS credentials or SigV4 signature.
1414 
15 A 401 whose message begins `CORS requests are not allowed for this Organization` is not a problem with your API key. The request included an `Origin` header, which browsers add, and your organization cannot call the Claude API directly from a browser. The message continues `because of custom retention settings` or `because of its settings`. The first appears only for data retention arrangements such as zero data retention (ZDR); the second is the general case, which includes the Compliance API. No change to the browser request fixes it, so send the request from your own back end; see [Browser-based applications](https://platform.claude.com/docs/en/manage-claude/authentication#browser-based-applications).
16 
1517* 402 - `billing_error`: There’s an issue with your billing or payment information. Check your payment details in the [Claude Console](https://platform.claude.com), or in AWS Marketplace if you’re using Claude Platform on AWS.
1618 
1719* 403 - `permission_error`: Your API key does not have permission to use the specified resource. Check your organization’s access and workspace settings in the [Claude Console](https://platform.claude.com).
from line 26
2426 
2527* 429 - `rate_limit_error`: Your organization has hit a [rate limit](https://platform.claude.com/docs/en/api/rate-limits), reached its usage tier’s monthly spend cap, or reached a spend limit on the Claude Code workspace. A tier spend-cap 429 has no `retry-after` header and keeps failing until access resumes; see [Reaching your spend cap](https://platform.claude.com/docs/en/api/rate-limits#reaching-your-spend-cap) for how to recognize it.
2628 
27* 500 - `api_error`: An unexpected error has occurred internal to Anthropic’s systems. Retry the request with exponential backoff; if the error persists, contact support with the [request ID](https://platform.claude.com/docs/en/api/errors#request-id).
29* 500 - `api_error`: An unexpected error has occurred internal to Anthropic’s systems. Retry the request with exponential backoff; if the error persists, contact support with the [request ID](https://platform.claude.com/docs/en/api/errors#request-id). If the error type is `timeout_error` instead, see the 504 entry.
2830 
29* 504 - `timeout_error`: The request timed out while processing. Consider using the [streaming Messages API](https://platform.claude.com/docs/en/build-with-claude/streaming) for long-running requests. See [Long requests](https://platform.claude.com/docs/en/api/errors#long-requests) for more options.
31* 504 - `timeout_error`: The request timed out while processing. The API also returns `timeout_error` with other status codes, such as a 500 when a request reaches the server’s time limit before the response starts. For long-running Messages API requests, use the [streaming Messages API](https://platform.claude.com/docs/en/build-with-claude/streaming). See [Long requests](https://platform.claude.com/docs/en/api/errors#long-requests) for more options.
3032 
3133* 529 - `overloaded_error`: The API is temporarily overloaded.
3234 
from line 91
8991 # -i prints the response headers, including request-id, before the body
9092 curl -sS -i https://api.anthropic.com/v1/messages \
9193 -H "x-api-key: $ANTHROPIC_API_KEY" \
92 -H "anthropic-version: 2023-06-01" \
94 -H "anthropic-version: 2026-10-21" \
9395 -H "content-type: application/json" \
9496 -d '{
9597 "model": "claude-sonnet-5",

api/migration-2026-10-21 Changed · +7 / -7 lines

from line 140
140140 
141141Admin API:
142142 
143| Endpoints | Old name | New name |
144| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
145| [RBAC groups](https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/list): create, list, retrieve, and update | `roles` | `role_ids` |
146| [RBAC group members](https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/list): list and add, and the response to [removing a member](https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/remove) | `group_id` | `rbac_group_id` |
147| [RBAC roles](https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/list): list and retrieve | `name` | `display_name` |
148| [Organization](https://platform.claude.com/docs/en/api/organization/rate_limits/list) and [workspace](https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/list) rate limits: list, and the response to setting a workspace’s rate limits | `group_type` | `group.type` |
149| [API keys](https://platform.claude.com/docs/en/api/organization/api_keys/list): list, retrieve, and update | `workspace_id` | `scope` (different values; see [`workspace_id` on API keys](https://platform.claude.com/docs/en/api/migration-2026-10-21#api-key-workspace-id)) |
143| Endpoints | Old name | New name |
144| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
145| [RBAC groups](https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/list): create, list, retrieve, and update | `roles` | `role_ids` |
146| [RBAC group members](https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/list): list and add, and the response to [removing a member](https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/remove) | `group_id` | `rbac_group_id` |
147| [RBAC roles](https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/list): list and retrieve | `name` | `display_name` |
148| [Organization](https://platform.claude.com/docs/en/api/organization/rate_limits/list) and [workspace](https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/list) rate limits: list, and the response to [setting a workspace’s rate limits](https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/update) | `group_type` | `group.type` |
149| [API keys](https://platform.claude.com/docs/en/api/organization/api_keys/list): list, retrieve, and update | `workspace_id` | `scope` (different values; see [`workspace_id` on API keys](https://platform.claude.com/docs/en/api/migration-2026-10-21#api-key-workspace-id)) |
150150 
151151Claude Enterprise Analytics API:
152152 

build-with-claude/batch-processing Changed · +11 / -11 lines

from line 117
117117| Claude Opus 4.7 | $2.50 / MTok | $12.50 / MTok |
118118| Claude Opus 4.6 | $2.50 / MTok | $12.50 / MTok |
119119| Claude Opus 4.5 | $2.50 / MTok | $12.50 / MTok |
120| Claude Opus 4.1 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $7.50 / MTok | $37.50 / MTok |
120| Claude Opus 4.1 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $7.50 / MTok | $37.50 / MTok |
121121| Claude Opus 4 ([retired, except on Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $7.50 / MTok | $37.50 / MTok |
122122| Claude Sonnet 5.5 | $1 / MTok | $5 / MTok |
123123| Claude Sonnet 5 | $1 / MTok | $5 / MTok |
124124| Claude Sonnet 4.6 | $1.50 / MTok | $7.50 / MTok |
125125| Claude Sonnet 4.5 | $1.50 / MTok | $7.50 / MTok |
126| Claude Sonnet 4 ([retired, except on Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $1.50 / MTok | $7.50 / MTok |
126| Claude Sonnet 4 ([retired, except on Claude Models on Google Cloud (Google managed) and Bedrock](https://platform.claude.com/docs/en/about-claude/model-deprecations)) | $1.50 / MTok | $7.50 / MTok |
127127| Claude Haiku 5.5 (for prompts up to 100,000 tokens) | $0.05 / MTok | $0.25 / MTok |
128128| Claude Haiku 5.5 (for prompts over 100,000 tokens) | $0.25 / MTok | $1.25 / MTok |
129129| Claude Haiku 4.5 | $0.50 / MTok | $2.50 / MTok |
from line 148
148148 ```bash cURL
149149 curl https://api.anthropic.com/v1/messages/batches \
150150 -H "x-api-key: $ANTHROPIC_API_KEY" \
151 -H "anthropic-version: 2023-06-01" \
151 -H "anthropic-version: 2026-10-21" \
152152 -H "content-type: application/json" \
153153 -d '{
154154 "requests": [
from line 479
479479 # Check the status; repeat until processing_status is "ended"
480480 curl "https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID" \
481481 -H "x-api-key: $ANTHROPIC_API_KEY" \
482 -H "anthropic-version: 2023-06-01"
482 -H "anthropic-version: 2026-10-21"
483483 ```
484484 
485485 ```bash CLI
from line 628
628628 # perform automatic pagination.)
629629 curl -s "https://api.anthropic.com/v1/messages/batches?limit=20" \
630630 -H "x-api-key: $ANTHROPIC_API_KEY" \
631 -H "anthropic-version: 2023-06-01"
631 -H "anthropic-version: 2026-10-21"
632632 ```
633633 
634634 ```bash CLI
from line 745
745745 # Streams the batch's .jsonl results, one result on each line.
746746 # For per-result handling (retries, validation errors), use the Claude SDK.
747747 curl "https://api.anthropic.com/v1/messages/batches/msgbatch_01HkcTjaV5uDC8jWR4ZsDV8d/results" \
748 -H "anthropic-version: 2023-06-01" \
748 -H "anthropic-version: 2026-10-21" \
749749 -H "x-api-key: $ANTHROPIC_API_KEY"
750750 ```
751751 
from line 792
792792 console.log(`Success! ${result.custom_id}`);
793793 break;
794794 case "errored":
795 if (result.result.error.type === "invalid_request_error") {
795 if (result.result.error.error.type === "invalid_request_error") {
796796 // Request body must be fixed before re-sending request
797797 console.log(`Validation error: ${result.custom_id}`);
798798 } else {
from line 931
931931 when Anthropic::Models::Messages::MessageBatchSucceededResult
932932 puts "Success! #{result.custom_id}"
933933 when Anthropic::Models::Messages::MessageBatchErroredResult
934 if outcome.error.type == :invalid_request
934 if outcome.error.error.type == :invalid_request_error
935935 puts "Validation error: #{result.custom_id}"
936936 else
937937 puts "Server error: #{result.custom_id}"
from line 968
968968 ```bash cURL
969969 curl -X POST https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/cancel \
970970 -H "x-api-key: $ANTHROPIC_API_KEY" \
971 -H "anthropic-version: 2023-06-01"
971 -H "anthropic-version: 2026-10-21"
972972 ```
973973 
974974 ```bash CLI
from line 1080
10801080 ```bash cURL
10811081 curl https://api.anthropic.com/v1/messages/batches \
10821082 -H "x-api-key: $ANTHROPIC_API_KEY" \
1083 -H "anthropic-version: 2023-06-01" \
1083 -H "anthropic-version: 2026-10-21" \
10841084 -H "content-type: application/json" \
10851085 -d '{
10861086 "requests": [
from line 1590
15901590 ```bash cURL
15911591 curl https://api.anthropic.com/v1/messages/batches \
15921592 -H "x-api-key: $ANTHROPIC_API_KEY" \
1593 -H "anthropic-version: 2023-06-01" \
1593 -H "anthropic-version: 2026-10-21" \
15941594 -H "anthropic-beta: output-300k-2026-03-24" \
15951595 -H "content-type: application/json" \
15961596 -d '{

build-with-claude/cache-diagnostics Changed · +5 / -5 lines

from line 43
4343 
4444## Basic usage
4545 
46Include the `diagnostics` object on every turn. The object is the opt-in: the API stores a fingerprint only for requests that include it. On the first turn, pass `"previous_message_id": null` to opt in without a prior message to compare against. On subsequent turns, pass the `id` from the previous response. The `cache-diagnosis-2026-04-07` beta header is no longer required, and requests that still send it work as before.
46Include the `diagnostics` object on every turn. The object is the opt-in: the API stores a fingerprint only for requests that include it. On the first turn, pass `"previous_message_id": null` to opt in without a prior message to compare against. On subsequent turns, pass the `id` from the previous response. The `cache-diagnosis-2026-04-07` beta header is no longer required, and requests that send it work as before.
4747 
4848<CodeGroup>
4949 ```bash cURL
from line 50
5050 # Turn 1: establish the cache and opt in to diagnostics
5151 curl -sS --fail-with-body https://api.anthropic.com/v1/messages \
5252 -H "x-api-key: $ANTHROPIC_API_KEY" \
53 -H "anthropic-version: 2023-06-01" \
53 -H "anthropic-version: 2026-10-21" \
5454 -H "content-type: application/json" \
5555 -d '{
5656 "model": "claude-opus-5-5",
from line 65
6565 # In the response, diagnostics: null means no divergence was found.
6666 curl -sS --fail-with-body https://api.anthropic.com/v1/messages \
6767 -H "x-api-key: $ANTHROPIC_API_KEY" \
68 -H "anthropic-version: 2023-06-01" \
68 -H "anthropic-version: 2026-10-21" \
6969 -H "content-type: application/json" \
7070 -d '{
7171 "model": "claude-opus-5-5",
from line 414
414414 # a null value means no divergence was found.
415415 curl -sS --fail-with-body https://api.anthropic.com/v1/messages \
416416 -H "x-api-key: $ANTHROPIC_API_KEY" \
417 -H "anthropic-version: 2023-06-01" \
417 -H "anthropic-version: 2026-10-21" \
418418 -H "content-type: application/json" \
419419 -d '{
420420 "model": "claude-opus-5-5",
from line 1035
10351035 
10361036## Limitations
10371037 
1038* **Claude API only:** Not available on Amazon Bedrock or Claude Models on Google Cloud (Google managed).
1038* **Claude API only:** Not available on Claude Models on Google Cloud (Google managed) or Amazon Bedrock.
10391039* **Limited retention:** Fingerprints for `previous_message_id` lookup expire after a short period. Run diagnostic comparisons between closely spaced requests.
10401040* **Same workspace:** The previous request must have run in the same organization and workspace. To check, compare the `anthropic-workspace-id` [response header](https://platform.claude.com/docs/en/api/overview#response-headers) on the two responses.
10411041* **Comparison horizon:** For very long conversations where the only change is deep in the message list, the response might be `unavailable` rather than a precise location.

build-with-claude/citations Changed · +8 / -8 lines

from line 49
4949 curl https://api.anthropic.com/v1/messages \
5050 -H "content-type: application/json" \
5151 -H "x-api-key: $ANTHROPIC_API_KEY" \
52 -H "anthropic-version: 2023-06-01" \
52 -H "anthropic-version: 2026-10-21" \
5353 -d '{
5454 "model": "claude-opus-5-5",
5555 "max_tokens": 1024,
from line 480
480480 curl https://api.anthropic.com/v1/messages \
481481 -H "content-type: application/json" \
482482 -H "x-api-key: $ANTHROPIC_API_KEY" \
483 -H "anthropic-version: 2023-06-01" \
483 -H "anthropic-version: 2026-10-21" \
484484 -d '{
485485 "model": "claude-opus-5-5",
486486 "max_tokens": 1024,
from line 832
832832 ```bash cURL
833833 curl -X POST https://api.anthropic.com/v1/messages \
834834 -H "x-api-key: $ANTHROPIC_API_KEY" \
835 -H "anthropic-version: 2023-06-01" \
835 -H "anthropic-version: 2026-10-21" \
836836 -H "content-type: application/json" \
837837 -d '{
838838 "model": "claude-opus-5-5",
from line 1085
10851085 curl https://api.anthropic.com/v1/messages \
10861086 -H "content-type: application/json" \
10871087 -H "x-api-key: $ANTHROPIC_API_KEY" \
1088 -H "anthropic-version: 2023-06-01" \
1088 -H "anthropic-version: 2026-10-21" \
10891089 -d '{
10901090 "model": "claude-opus-5-5",
10911091 "max_tokens": 1024,
from line 1384
13841384 curl https://api.anthropic.com/v1/messages \
13851385 -H "content-type: application/json" \
13861386 -H "x-api-key: $ANTHROPIC_API_KEY" \
1387 -H "anthropic-version: 2023-06-01" \
1387 -H "anthropic-version: 2026-10-21" \
13881388 -d '{
13891389 "model": "claude-opus-5-5",
13901390 "max_tokens": 1024,
from line 1660
16601660 ```bash cURL
16611661 curl -X POST https://api.anthropic.com/v1/messages \
16621662 -H "x-api-key: $ANTHROPIC_API_KEY" \
1663 -H "anthropic-version: 2023-06-01" \
1663 -H "anthropic-version: 2026-10-21" \
16641664 -H "content-type: application/json" \
16651665 -d '{
16661666 "model": "claude-opus-5-5",
from line 1909
19091909 curl https://api.anthropic.com/v1/messages \
19101910 -H "content-type: application/json" \
19111911 -H "x-api-key: $ANTHROPIC_API_KEY" \
1912 -H "anthropic-version: 2023-06-01" \
1912 -H "anthropic-version: 2026-10-21" \
19131913 -d '{
19141914 "model": "claude-opus-5-5",
19151915 "max_tokens": 1024,
from line 2346
23462346 
23472347<CardGroup cols={2}>
23482348 <Card title="Streaming messages" icon="wifi-high" href="https://platform.claude.com/docs/en/build-with-claude/streaming">
2349 Handle the `citations_delta` delta type alongside text deltas to render cited responses as they stream.
2349 Learn the event flow and the other content block delta types that arrive alongside `citations_delta`.
23502350 </Card>
23512351 
23522352 <Card title="Search results" icon="book-bookmark" href="https://platform.claude.com/docs/en/build-with-claude/search-results">

build-with-claude/claude-in-amazon-bedrock Changed · +19 / -26 lines

from line 12
1212 
1313## Access
1414 
15Amazon Bedrock sets access criteria for each Claude model individually. Claude Fable 5.1, Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5, Claude Opus 4.7, and Claude Haiku 4.5 are open to all Amazon Bedrock customers. For any other model’s current criteria, check [Amazon Bedrock model access](https://console.aws.amazon.com/bedrock/home#/modelaccess) in the AWS console. Claude Mythos Preview requires an invitation through [Project Glasswing](https://anthropic.com/glasswing). For region availability, see [Regions](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#regions).
15Amazon Bedrock sets access criteria for each Claude model individually. Claude Fable 5.1, Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5, Claude Opus 4.7, and Claude Haiku 4.5 are open to all Amazon Bedrock customers. For any other model’s criteria, check [Amazon Bedrock model access](https://console.aws.amazon.com/bedrock/home#/modelaccess) in the AWS console. For region availability, see [Regions](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#regions).
1616 
1717## Prerequisites
1818 
from line 21
2121* An AWS account with [Amazon Bedrock model access](https://console.aws.amazon.com/bedrock/home#/modelaccess) enabled for the Claude models you intend to use
2222* The [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) installed and configured (optional, for credential management)
2323 
24Claude Mythos Preview additionally requires a dedicated AWS account that has been allowlisted by the Bedrock Marketplace team. Your Anthropic account executive can submit your account ID for allowlisting (typically processed within 24 hours), and AWS sends a welcome email once it’s complete.
25 
2624## Authentication
2725 
2826Claude in Amazon Bedrock supports three authentication paths. Choose the one that best fits your security requirements.
from line 151
153151 -u "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
154152 -H "x-amz-security-token: $AWS_SESSION_TOKEN" \
155153 -H "content-type: application/json" \
156 -H "anthropic-version: 2023-06-01" \
154 -H "anthropic-version: 2026-10-21" \
157155 -d '{
158156 "model": "anthropic.claude-opus-5-5",
159157 "max_tokens": 1024,
from line 330
332330 
333331Model IDs in Claude in Amazon Bedrock carry an `anthropic.` provider prefix. Model capabilities and behaviors are documented on the [Models overview](https://platform.claude.com/docs/en/models/overview) page.
334332 
335| Model | Model ID | Access |
336| :------------------------------------------------------------------------------------------ | :-------------------------------- | :-------------------------------------------------------------------------------------------------- |
337| Claude Fable 5.1 | `anthropic.claude-fable-5-1` | Open |
338| Claude Mythos 5.1 ([limited availability](https://support.claude.com/en/articles/14604842)) | `anthropic.claude-mythos-5-1` | Active (verification required) |
339| Claude Fable 5 | `anthropic.claude-fable-5` | Open |
340| Claude Mythos 5 ([limited availability](https://support.claude.com/en/articles/14604842)) | `anthropic.claude-mythos-5` | Active (verification required) |
341| Claude Mythos Preview ([limited availability](https://anthropic.com/glasswing)) | `anthropic.claude-mythos-preview` | Invitation only |
342| Claude Opus 5.5 | `anthropic.claude-opus-5-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
343| Claude Opus 5 | `anthropic.claude-opus-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
344| Claude Opus 4.8 | `anthropic.claude-opus-4-8` | Open |
345| Claude Opus 4.7 | `anthropic.claude-opus-4-7` | Open |
346| Claude Sonnet 5.5 | `anthropic.claude-sonnet-5-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
347| Claude Sonnet 5 | `anthropic.claude-sonnet-5` | Open |
348| Claude Haiku 5.5 | `anthropic.claude-haiku-5-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
349| Claude Haiku 4.5 | `anthropic.claude-haiku-4-5` | Open |
333| Model | Model ID | Access |
334| :------------------------------------------------------------------------------------------ | :---------------------------- | :-------------------------------------------------------------------------------------------------- |
335| Claude Fable 5.1 | `anthropic.claude-fable-5-1` | Open |
336| Claude Mythos 5.1 ([limited availability](https://support.claude.com/en/articles/14604842)) | `anthropic.claude-mythos-5-1` | Active (verification required) |
337| Claude Fable 5 | `anthropic.claude-fable-5` | Open |
338| Claude Mythos 5 ([limited availability](https://support.claude.com/en/articles/14604842)) | `anthropic.claude-mythos-5` | Active (verification required) |
339| Claude Opus 5.5 | `anthropic.claude-opus-5-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
340| Claude Opus 5 | `anthropic.claude-opus-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
341| Claude Opus 4.8 | `anthropic.claude-opus-4-8` | Open |
342| Claude Opus 4.7 | `anthropic.claude-opus-4-7` | Open |
343| Claude Sonnet 5.5 | `anthropic.claude-sonnet-5-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
344| Claude Sonnet 5 | `anthropic.claude-sonnet-5` | Open |
345| Claude Haiku 5.5 | `anthropic.claude-haiku-5-5` | [See Access](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock#access) |
346| Claude Haiku 4.5 | `anthropic.claude-haiku-4-5` | Open |
350347 
351348Use the latest version of Claude Code with Claude in Amazon Bedrock; run `claude update` to upgrade.
352349 
from line 382
385382* **Global:** dynamic routing across all available regions for maximum availability. No pricing premium.
386383* **Regional:** the endpoint resolves to the single AWS region you specify, for data-residency requirements. Regional endpoints carry a 10 percent pricing premium over global endpoints. To route across multiple regions within a geography, use an [inference profile](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html) (US, EU, JP, or AU). Regions marked **In-region only** in the table support direct single-region routing without an inference profile.
387384 
388The global endpoint is available for Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5.5, Claude Sonnet 5, Claude Haiku 5.5, and Claude Haiku 4.5. For Claude Fable 5.1, regional endpoints are currently available in `us-east-1` only. Claude Mythos Preview is regional only and is available in `us-east-1`.
385The global endpoint is available for Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5.5, Claude Sonnet 5, Claude Haiku 5.5, and Claude Haiku 4.5. For Claude Fable 5.1, regional endpoints are available in `us-east-1` only.
389386 
390387| AWS region | Location | Endpoint types |
391388| ---------------- | ------------------------- | -------------------------- |
from line 416
419416 
420417## Quotas
421418 
422Default quota is 2 million input tokens per minute (TPM). You can request up to 5 million input TPM and 500,000 output TPM without additional Anthropic approval. AWS enforces requests-per-minute (RPM) limits on the Bedrock side; contact AWS support for RPM adjustments.
419Default quota is 2 million input tokens per minute (TPM). You can request up to 5 million input TPM and 500,000 output TPM without additional Anthropic approval. AWS enforces requests-per-minute (RPM) limits on the Bedrock side; contact AWS Support for RPM adjustments.
423420 
424421## Data retention
425422 
from line 428
431428 
432429## Support
433430 
434For support, contact **[[email protected]](mailto:[email protected])**. Include your AWS account ID and the `request-id` from any failed API responses.
435 
436<Note>
437 **Claude Mythos Preview** is a research preview model available to invited customers on Amazon Bedrock. For more information, see [Project Glasswing](https://anthropic.com/glasswing).
438</Note>
431For support, contact AWS Support or your AWS account team. Include your AWS account ID and the `request-id` from any failed API responses.
439432 

build-with-claude/claude-models-on-google-cloud/anthropic-managed Changed · +66 / -42 lines

from line 249
249249 curl "https://claude.googleapis.com/v1/projects/$ANTHROPIC_GOOGLE_CLOUD_PROJECT/locations/global/workspaces/$ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID/invoke/v1/messages" \
250250 -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
251251 -H "content-type: application/json" \
252 -H "anthropic-version: 2023-06-01" \
252 -H "anthropic-version: 2026-10-21" \
253253 -d '{
254254 "model": "claude-opus-5-5",
255255 "max_tokens": 1024,
from line 500
500500 
501501This section lists features that work on Claude Models on Google Cloud (Anthropic managed) and features that aren’t supported there. It doesn’t list every Claude API feature, and it doesn’t say whether an unlisted feature works.
502502 
503The following features work on Claude Models on Google Cloud (Anthropic managed) as they do on the Claude API:
503The Models API and the following features are available on Claude Models on Google Cloud (Anthropic managed):
504504 
505* **Fast mode:** [Fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode) for Claude Opus 5.5.
505* [Advisor tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) (Beta)
506* [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
507 * [Custom Skills](https://platform.claude.com/docs/en/build-with-claude/skills-guide#managing-custom-skills)
508 * [Pre-built Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview#pre-built-agent-skills)
509* [Batch processing](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
510* [Classifier refusals](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback)
511 * [Client-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#client-side-fallback) (Beta)
512 * [Server-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#server-side-fallback) (Beta)
513* [Code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool)
514* [Custom tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools)
515* [Data residency](https://platform.claude.com/docs/en/manage-claude/data-residency)
516* [Effort](https://platform.claude.com/docs/en/build-with-claude/effort)
517 * [Per-message effort](https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta) (Beta)
518* [Fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode)
519* [Files API](https://platform.claude.com/docs/en/build-with-claude/files)
520* [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector) (Beta)
521 * [Client-side MCP helpers](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector#client-side-mcp-helpers) (Beta)
522* [Memory tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/memory-tool)
523 * [Memory tool helpers](https://platform.claude.com/docs/en/agents-and-tools/tool-use/memory-tool#implement-the-memory-handler) (Beta)
524* [Message streaming](https://platform.claude.com/docs/en/build-with-claude/streaming)
525* [Message threads](https://platform.claude.com/docs/en/build-with-claude/message-threads) (Beta)
526* [Mid-conversation system messages](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages)
527 * [Mid-conversation tool changes](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages#mid-conversation-tool-changes) (Beta)
528 * [Turn-scoped system messages](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages#turn-scoped-system-messages) (Beta)
529* [OpenTelemetry](https://platform.claude.com/docs/en/manage-claude/opentelemetry) (Beta)
530* [PDF support](https://platform.claude.com/docs/en/build-with-claude/pdf-support)
531* [Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)
532 * [1-hour duration](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#1-hour-cache-duration)
533 * [5-minute duration (default)](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#how-prompt-caching-works)
534 * [Automatic caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#automatic-caching)
535* [SDK middleware](https://platform.claude.com/docs/en/cli-sdks-libraries/middleware)
536* [Structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs)
537 * [Typed structured output helpers](https://platform.claude.com/docs/en/build-with-claude/structured-outputs#usage)
538* [Thinking](https://platform.claude.com/docs/en/build-with-claude/thinking)
539 * [Adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/thinking-steering-and-cost)
540 * [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)
541* [Token counting](https://platform.claude.com/docs/en/build-with-claude/token-counting)
542* [Tool runner](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-runner) (Beta)
543* [Vision (images)](https://platform.claude.com/docs/en/build-with-claude/vision)
544* [Web fetch tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool)
545* [Web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool)
506546 
507* **Beta features:** If a beta is limited to selected organizations on the Claude API, the Anthropic organization that setup creates needs the same access.
547If a beta feature is limited to selected organizations on the Claude API, the Anthropic organization that setup creates needs the same access.
508548 
509* **Tools:** [Tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview), including:
510 
511 * Web search
512 * Web fetch
513 * Code execution
514 * The memory tool
515 * The advisor tool
516 * The MCP connector
517 
518* **Skills and files:** [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) and the [Files API](https://platform.claude.com/docs/en/build-with-claude/files).
519 
520* **Model capabilities:**
521 
522 * [Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)
523 * [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/thinking)
524 * [Adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/thinking#configuring-thinking)
525 * [Effort](https://platform.claude.com/docs/en/build-with-claude/effort)
526 * [Server-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#server-side-fallback)
527 * [Streaming](https://platform.claude.com/docs/en/build-with-claude/streaming)
528 * [Structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs)
529 * [Token counting](https://platform.claude.com/docs/en/build-with-claude/token-counting)
530 * [Mid-conversation system messages](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages)
531 
532* **Batches and models:** The [Message Batches API](https://platform.claude.com/docs/en/build-with-claude/batch-processing) and the Models API.
533 
534549To turn the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) on or off for the Anthropic organization that setup creates, [open the Claude Console](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed#using-the-claude-console), go to **Settings > Compliance**, and use the **Compliance API** toggle.
535550 
536551Customer-managed encryption keys (CMEK) are available with Google Cloud KMS keys. To activate CMEK for the Anthropic organization that setup creates, see [Who can use CMEK](https://platform.claude.com/docs/en/manage-claude/cmek#availability). To set up a key, follow [Set up CMEK with Google Cloud KMS](https://platform.claude.com/docs/en/manage-claude/cmek-google-cloud-kms). Then register, verify, and attach the key in the [Claude Console](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed#using-the-claude-console), as the setup page’s **Claude Platform** tab describes.
from line 552
537552 
538553### Claude Managed Agents
539554 
540[Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) is available through Claude Models on Google Cloud (Anthropic managed), including the following:
555[Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) is available through Claude Models on Google Cloud (Anthropic managed), including [sessions](https://platform.claude.com/docs/en/managed-agents/sessions) and the following features:
541556 
542* [Agents](https://platform.claude.com/docs/en/managed-agents/agent-setup)
543* [Environments](https://platform.claude.com/docs/en/managed-agents/environments)
544* [Sessions](https://platform.claude.com/docs/en/managed-agents/sessions)
545* [Credential vaults](https://platform.claude.com/docs/en/managed-agents/vaults)
546* [Memory stores](https://platform.claude.com/docs/en/managed-agents/memory)
547* [Scheduled deployments](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments)
548* [Self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes)
557* [Agent configurations](https://platform.claude.com/docs/en/managed-agents/agent-setup) (Beta)
558* [Cloud sandboxes](https://platform.claude.com/docs/en/managed-agents/environments) (Beta)
559* [Event deltas](https://platform.claude.com/docs/en/managed-agents/event-deltas) (Beta)
560* [GitHub access](https://platform.claude.com/docs/en/managed-agents/github) (Beta)
561* [Memory stores](https://platform.claude.com/docs/en/managed-agents/memory) (Beta)
562* [Multiagent orchestration](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration) (Beta)
563 * [Dynamic workflows](https://platform.claude.com/docs/en/managed-agents/workflow-runs) (Beta)
564 * [Session threads](https://platform.claude.com/docs/en/managed-agents/session-threads) (Beta)
565* [Outcomes](https://platform.claude.com/docs/en/managed-agents/define-outcomes) (Beta)
566* [Permission policies](https://platform.claude.com/docs/en/managed-agents/permission-policies) (Beta)
567* [Preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)
568* [Scheduled deployments](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments) (Beta)
569* [Self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) (Beta)
570* [Session budgets](https://platform.claude.com/docs/en/managed-agents/budgets) (Beta)
571* [Vaults](https://platform.claude.com/docs/en/managed-agents/vaults) (Beta)
572* [Web domain restrictions](https://platform.claude.com/docs/en/managed-agents/tools-web-restrictions) (Beta)
549573 
550574Access is checked when a session or a deployment is created, not while it runs:
551575 
from line 666
642666 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
643667 -H "Content-Type: application/json" \
644668 -d '{
645 "anthropic_version": "vertex-2023-10-16",
669 "anthropic_version": "2026-10-21",
646670 "messages": [{"role": "user", "content": "Hey Claude!"}],
647671 "max_tokens": 100
648672 }'
from line 765
741765 curl "https://claude.googleapis.com/v1/projects/$ANTHROPIC_GOOGLE_CLOUD_PROJECT/locations/global/workspaces/$ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID/invoke/v1/messages" \
742766 -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
743767 -H "content-type: application/json" \
744 -H "anthropic-version: 2023-06-01" \
768 -H "anthropic-version: 2026-10-21" \
745769 -d '{
746770 "model": "claude-opus-5-5",
747771 "max_tokens": 1024,

build-with-claude/claude-models-on-google-cloud/google-managed Changed · +4 / -4 lines

from line 100
100100 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
101101 -H "Content-Type: application/json" \
102102 -d '{
103 "anthropic_version": "vertex-2023-10-16",
103 "anthropic_version": "2026-10-21",
104104 "messages": [{"role": "user", "content": "Hey Claude!"}],
105105 "max_tokens": 100
106106 }'
from line 353
353353 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
354354 -H "Content-Type: application/json" \
355355 -d '{
356 "anthropic_version": "vertex-2023-10-16",
356 "anthropic_version": "2026-10-21",
357357 "messages": [{"role": "user", "content": "Hey Claude!"}],
358358 "max_tokens": 100
359359 }'
from line 549
549549 curl "https://claude.googleapis.com/v1/projects/$ANTHROPIC_GOOGLE_CLOUD_PROJECT/locations/global/workspaces/$ANTHROPIC_GOOGLE_CLOUD_WORKSPACE_ID/invoke/v1/messages" \
550550 -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
551551 -H "content-type: application/json" \
552 -H "anthropic-version: 2023-06-01" \
552 -H "anthropic-version: 2026-10-21" \
553553 -d '{
554554 "model": "claude-opus-5-5",
555555 "max_tokens": 1024,
from line 631
631631 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
632632 -H "Content-Type: application/json" \
633633 -d '{
634 "anthropic_version": "vertex-2023-10-16",
634 "anthropic_version": "2026-10-21",
635635 "messages": [{"role": "user", "content": "Hey Claude!"}],
636636 "max_tokens": 100
637637 }'

build-with-claude/claude-on-amazon-bedrock-legacy Changed · +30 / -16 lines

from line 10
1010 
1111<Warning>
1212 The latest version of the SDK sends API version `2026-10-21` by default, including through Amazon Bedrock. The ARN-versioned models in the model table on this page don’t support `2026-10-21` on Bedrock, and requests to them that send it can return a 400 error. If you call them through the SDK, keep the SDK on the version you use today, and pin that version where you install it so a later install doesn’t upgrade it. The Boto3 example sets `anthropic_version` in its request body and isn’t affected.
13 
14 To install an SDK for these models, use the commands in [Install an SDK for accessing Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy#install-an-sdk-for-accessing-bedrock), which install the last major version before API version `2026-10-21`.
1315</Warning>
1416 
1517Calling Claude through Bedrock slightly differs from how you would call Claude on the Claude API directly. This guide walks you through completing an API call to Claude on Bedrock using one of Anthropic’s [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries/overview).
from line 35
3335<Tabs>
3436 <Tab title="Python">
3537 ```bash
36 pip install -U "anthropic[bedrock]"
38 pip install -U "anthropic[bedrock]<2"
3739 ```
3840 </Tab>
3941 
4042 <Tab title="TypeScript">
4143 ```bash
42 npm install @anthropic-ai/bedrock-sdk
44 npm install @anthropic-ai/bedrock-sdk@0
4345 ```
46 
47 The example in [List available models](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy#list-available-models) also needs AWS’s Bedrock client. Install it with `npm install @aws-sdk/client-bedrock`.
4448 </Tab>
4549 
4650 <Tab title="C#">
4751 ```bash
48 dotnet add package Anthropic.Bedrock
52 dotnet add package Anthropic.Bedrock --version 0.14.1
4953 ```
54 
55 If your project also references the `Anthropic` package, keep it below version 13.
56 
57 The example in [List available models](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy#list-available-models) also needs AWS’s Bedrock client. Install it with `dotnet add package AWSSDK.Bedrock`.
5058 </Tab>
5159 
5260 <Tab title="Go">
from line 61
5361 ```bash
5462 go get github.com/anthropics/anthropic-sdk-go/bedrock
5563 ```
64 
65 The example in [List available models](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy#list-available-models) also needs AWS’s Bedrock client. Install it with `go get github.com/aws/aws-sdk-go-v2/service/bedrock`.
5666 </Tab>
5767 
5868 <Tab title="Java">
5969 <CodeGroup exclude="shell, python, typescript, csharp, go, php, ruby">
6070 ```groovy Gradle
61 implementation("com.anthropic:anthropic-java:3.4.0")
62 implementation("com.anthropic:anthropic-java-bedrock:3.4.0")
71 implementation("com.anthropic:anthropic-java:2.+")
72 implementation("com.anthropic:anthropic-java-bedrock:2.+")
6373 ```
6474 
6575 ```xml Maven
from line 76
6676 <dependency>
6777 <groupId>com.anthropic</groupId>
6878 <artifactId>anthropic-java</artifactId>
69 <version>3.4.0</version>
79 <version>[2.0.0,3.0.0)</version>
7080 </dependency>
7181 <dependency>
7282 <groupId>com.anthropic</groupId>
7383 <artifactId>anthropic-java-bedrock</artifactId>
74 <version>3.4.0</version>
84 <version>[2.0.0,3.0.0)</version>
7585 </dependency>
7686 ```
7787 
from line 113
103113 }
104114 ```
105115 </CodeGroup>
116 
117 The example in [List available models](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy#list-available-models) also needs AWS’s Bedrock client. Add `software.amazon.awssdk:bedrock` to your build.
106118 </Tab>
107119 
108120 <Tab title="PHP">
109121 ```bash
110 composer require anthropic-ai/sdk aws/aws-sdk-php
122 composer require "anthropic-ai/sdk:<1.0" aws/aws-sdk-php
111123 ```
112124 </Tab>
113125 
from line 126
114126 <Tab title="Ruby">
115127 ```bash
116128 # Gemfile
117 gem "anthropic"
129 gem "anthropic", "~> 1.0"
118130 gem "aws-sdk-bedrockruntime"
119131 ```
132 
133 The example in [List available models](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy#list-available-models) also needs AWS’s Bedrock client. Add `gem "aws-sdk-bedrock"` to your `Gemfile`.
120134 </Tab>
121135 
122136 <Tab title="Boto3 (Python)">
from line 664
650664 import com.anthropic.client.AnthropicClient;
651665 import com.anthropic.client.okhttp.AnthropicOkHttpClient;
652666 import com.anthropic.models.messages.MessageCreateParams;
667 import software.amazon.awssdk.regions.Region;
653668 
654669 // Option 1: Set AWS_BEARER_TOKEN_BEDROCK environment variable and use fromEnv()
655670 AnthropicClient client = AnthropicOkHttpClient.builder()
from line 675
660675 client = AnthropicOkHttpClient.builder()
661676 .backend(BedrockBackend.builder()
662677 .apiKey("your-bearer-token")
678 .region(Region.US_WEST_2)
663679 .build())
664680 .build();
665681 
from line 1031
10151031 using Anthropic.Bedrock;
10161032 using Anthropic.Models.Messages;
10171033 
1034 // Default credentials resolve region from AWS_REGION env var
10181035 AnthropicBedrockClient client = new(
1019 new AnthropicBedrockPrivateKeyCredentials { Region = "us-west-2" }
1036 await AnthropicBedrockCredentialsHelper.FromEnv()
1037 ?? throw new InvalidOperationException("AWS credentials not configured.")
10201038 );
10211039 
10221040 // Using US regional endpoint (CRIS)
from line 1130
11121130 ```
11131131 </Tab>
11141132</Tabs>
1115 
1116<Note>
1117 **Claude Mythos Preview** is a research preview model available to invited customers on Amazon Bedrock. For more information, see [Project Glasswing](https://anthropic.com/glasswing).
1118</Note>
11191133 
11201134## Additional resources
11211135 
Feedback