Follow Discord
Sweep 30 Oct 2026 · 21:36Z Build v2.1.315 533 read Stable v2.1.308 Latest v2.1.314 Next v2.1.315 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · api

One read of Claude Developer Platformapi-20261030T212610Z

396 pages moved out of 826 read.

Pages moved 396 significant first
Pages read 826 in this capture
Captured 21:26 UTC
Corpus hash 68200c8a9acb corpus-hash

What this read moved

1-25 of 396, page 1 of 16

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

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

from line 57
5757 
5858**What good looks like.**
5959 
60* 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[17](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
60* 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>.
6161* Deep in a task, a well-built loop pays full price on under 1% of its input.
6262* Below about 80%, look for something breaking the cache (see [What breaks the cache](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#what-breaks-the-cache)).
6363 
64Anthropic priced the DeepResearch Bench II[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) runs with and without the cache discount:
64Anthropic priced the DeepResearch Bench II<sup>[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> runs with and without the cache discount:
6565 
6666<Frame>
6767 ![Chart, DeepResearch Bench II: caching cuts Fable 5.1 from $40.58 USD to $5.64 USD a task; Sonnet 5.5, $5.13 USD to $1.05 USD](https://platform.claude.com/docs/images/cost-intel/caching-repriced.svg)
from line 71
7171 
7272Pricing other runs’ recorded token counts the same way, each model at its default effort, gives the average token cost per task without caching:
7373 
74| Benchmark | Model | Without caching |
75| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------- |
76| SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Opus 5.5 | 3.3 times the cost with caching |
77| SWE-bench Pro | Claude Sonnet 5.5 | 3.1 times the cost with caching |
78| Claude Managed Agents task set[25](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), whose sessions are short | Claude Haiku 5.5 | 1.7 times the cost with caching |
79| A small agent that triages bug reports ([Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens))[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Sonnet 5.5 | 7.3 times the cost with caching |
74| Benchmark | Model | Without caching |
75| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------- |
76| SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Opus 5.5 | 3.3 times the cost with caching |
77| SWE-bench Pro | Claude Sonnet 5.5 | 3.1 times the cost with caching |
78| Claude Managed Agents task set<sup>[25](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, whose sessions are short | Claude Haiku 5.5 | 1.7 times the cost with caching |
79| A small agent that triages bug reports ([Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens))<sup>[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Sonnet 5.5 | 7.3 times the cost with caching |
8080 
8181The saving varies with how many turns a task takes, because shorter loops re-read less.
8282 
from line 83
8383<Note>
8484 With Claude Haiku 5.5 on the Messages API, [compact a long conversation](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#manage-the-context-lifecycle) between tasks, before its prompt passes 100,000 tokens. Past that, every token of the request costs 5 times as much, output included. Cache reads and writes count toward the 100,000 (see [Long context pricing](https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing)).
8585 
86 If you use [compaction at a token threshold](https://platform.claude.com/docs/en/build-with-claude/compaction-threshold#parameters) instead, set its `trigger` a little below 100,000 minus your prompt’s largest growth between requests (the default is 150,000). In Anthropic’s test with 10,000-token turns, a trigger of 90,000 cost 70% less per request than the default[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
86 If you use [compaction at a token threshold](https://platform.claude.com/docs/en/build-with-claude/compaction-threshold#parameters) instead, set its `trigger` a little below 100,000 minus your prompt’s largest growth between requests (the default is 150,000). In Anthropic’s test with 10,000-token turns, a trigger of 90,000 cost 70% less per request than the default<sup>[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
8787</Note>
8888 
8989#### Pick the cache duration
from line 92
9292 
9393The 1-hour duration costs more to write (2x the input price instead of 1.25x). A miss on either duration bills the whole prefix at the write price instead of the read price.
9494 
95Choose the cache duration when a conversation starts. In Anthropic’s test, the first turn added at 1 hour to a conversation cached at 5 minutes wrote the whole prompt again, once: $0.80 USD at 100,000 tokens on Claude Opus 5.5, compared with $0.02 USD of input for a turn that read the cache[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
95Choose the cache duration when a conversation starts. In Anthropic’s test, the first turn added at 1 hour to a conversation cached at 5 minutes wrote the whole prompt again, once: $0.80 USD at 100,000 tokens on Claude Opus 5.5, compared with $0.02 USD of input for a turn that read the cache<sup>[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
9696 
97Anthropic measured a small agent that triages bug reports ([Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens)) with pauses inserted before some turns to simulate a person’s delay[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs). Accuracy stayed within run-to-run noise at every setting measured. Anthropic also measured extra requests that keep the 5-minute cache warm (keep-alive requests).
97Anthropic measured a small agent that triages bug reports ([Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens)) with pauses inserted before some turns to simulate a person’s delay<sup>[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>. Accuracy stayed within run-to-run noise at every setting measured. Anthropic also measured extra requests that keep the 5-minute cache warm (keep-alive requests).
9898 
9999To decide, count the gaps between consecutive requests in a conversation, and find your row in the following table:
100100 
from line 125
125125 
126126* **Claude Fable 5.1**, whose [cache reads](https://platform.claude.com/docs/en/about-claude/pricing#prompt-caching) cost 0.025x the input price.
127127 
128 * **Pauses run for minutes.** On Claude Fable 5.1, keep-alive requests[19](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) cost 13% to 20% less than the 1-hour cache, with 10% of turns paused and with a 6-minute pause before every turn.
128 * **Pauses run for minutes.** On Claude Fable 5.1, keep-alive requests<sup>[19](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> cost 13% to 20% less than the 1-hour cache, with 10% of turns paused and with a 6-minute pause before every turn.
129129 * **Pauses run toward an hour.** On Claude Fable 5.1, only with a 45-minute pause before every turn did the 1-hour cache win, by about $0.12 USD on a session of 5 bug reports.
130130 
131131The following chart plots cost per session against the share of paused turns on Claude Sonnet 5.5:
from line 152
1521522. Re-send the request’s headers with its body. Without the original request’s `anthropic-beta` header, the beta-gated fields in the replayed body are rejected.
1531533. Send it within 4 minutes of the previous request’s start, and every 4 minutes after that, until the next turn arrives or the session ends. Count from the request’s start, because the [cache’s 5-minute lifetime](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#how-prompt-caching-works) runs from there.
154154 
155That is the [pre-warming request](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pre-warming-the-cache): it refreshes the cache’s lifetime, returns no output, and costs little more than the cache read. Once the cache has expired, the next request, keep-alive or not, re-writes the prefix at the cache write price[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
155That is the [pre-warming request](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pre-warming-the-cache): it refreshes the cache’s lifetime, returns no output, and costs little more than the cache read. Once the cache has expired, the next request, keep-alive or not, re-writes the prefix at the cache write price<sup>[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
156156 
157157A `max_tokens: 0` request is rejected in the following cases:
158158 
from line 190
190190 
191191Keep per-request text in the newest user turn, after the last cache breakpoint, and make every cache-invalidating change at a natural break, such as the first request after a compaction. The cache is a byte-exact prefix match over the request in order (tools, then system prompt, then messages), so a change anywhere invalidates everything after it.
192192 
193When something must change mid-conversation, send it in the form that keeps the cache, where the model supports it. In Anthropic’s test on Claude Fable 5.1, Claude Opus 5.5, and Claude Sonnet 5.5, on a cached conversation of about 100,000 tokens, editing the system prompt cost about 25 to 50 times what the same text cost as a mid-conversation system message. Changing effort at the top level cost 20 to 40 times what it cost per message[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs):
193When something must change mid-conversation, send it in the form that keeps the cache, where the model supports it. In Anthropic’s test on Claude Fable 5.1, Claude Opus 5.5, and Claude Sonnet 5.5, on a cached conversation of about 100,000 tokens, editing the system prompt cost about 25 to 50 times what the same text cost as a mid-conversation system message. Changing effort at the top level cost 20 to 40 times what it cost per message<sup>[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>:
194194 
195195<Frame>
196196 ![Bar chart: system prompt edit up to $1.26 USD, top-level effort change up to $1.02 USD, either in a message up to $0.026 USD](https://platform.claude.com/docs/images/cost-intel/cache-break-cost.svg)
197197</Frame>
198198 
199At list prices, the stakes are highest on Claude Fable 5.1 and Claude Mythos 5.1, where a break rewrites the prefix at 1.25x the input price instead of reading it at 0.025x. On Claude Haiku 5.5, a system prompt edit cost 12.5x as much as an unchanged request, because the edit rewrote the whole conversation. On models that run the [prefix check](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#prefix-check), a request that makes this edit and sends earlier thinking blocks back can get a 400 error instead[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs). The top-level effort change, in a conversation that held the model’s first reply with its thinking, rewrote all but the system prompt. These figures are from the Messages API.
199At list prices, the stakes are highest on Claude Fable 5.1 and Claude Mythos 5.1, where a break rewrites the prefix at 1.25x the input price instead of reading it at 0.025x. On Claude Haiku 5.5, a system prompt edit cost 12.5x as much as an unchanged request, because the edit rewrote the whole conversation. On models that run the [prefix check](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#prefix-check), a request that makes this edit and sends earlier thinking blocks back can get a 400 error instead<sup>[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>. The top-level effort change, in a conversation that held the model’s first reply with its thinking, rewrote all but the system prompt. These figures are from the Messages API.
200200 
201201**What to do.**
202202 
203* Put nothing that changes per request, such as a timestamp or a queue position, ahead of the stable prefix: it turns every request into a full cache write. In Anthropic’s test, a 25-token status line at the front of the system prompt made each request write the whole conversation; moved to the end of the newest user turn, it left the cache read intact[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
203* Put nothing that changes per request, such as a timestamp or a queue position, ahead of the stable prefix: it turns every request into a full cache write. In Anthropic’s test, a 25-token status line at the front of the system prompt made each request write the whole conversation; moved to the end of the newest user turn, it left the cache read intact<sup>[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
204204* The [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#what-invalidates-the-cache) page lists the changes that invalidate the cache, such as a change to [`effort`](https://platform.claude.com/docs/en/build-with-claude/effort), the thinking configuration, the [`speed`](https://platform.claude.com/docs/en/build-with-claude/fast-mode) setting, the system prompt, or a tool definition. Changing the output format invalidates the cache for that conversation (see [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs#prompt-modification-and-token-costs)).
205205* Check which models support each form: [mid-conversation system messages](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages), and [per-message effort](https://platform.claude.com/docs/en/build-with-claude/effort#changing-effort-mid-conversation), which is in beta.
206206* After a cache-invalidating change, confirm cache reads have not dropped; if they have, [cache diagnostics](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics) shows where the prefix diverged.
207207 
208On an earlier model, Anthropic measured when to make such a change, on the triage agent’s long sessions[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs). An effort change and an added tool cost more mid-session, or on the request that triggered the compaction, than on the first request after compaction. Accuracy was within run-to-run noise. The sessions with no changes cost more than those changed after compaction for another reason: they ran at the default effort throughout, and two of them compacted a second time, while the others started at low effort:
208On an earlier model, Anthropic measured when to make such a change, on the triage agent’s long sessions<sup>[18](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>. An effort change and an added tool cost more mid-session, or on the request that triggered the compaction, than on the first request after compaction. Accuracy was within run-to-run noise. The sessions with no changes cost more than those changed after compaction for another reason: they ran at the default effort throughout, and two of them compacted a second time, while the others started at low effort:
209209 
210210<Frame>
211211 ![Bar chart, cost per triage session: $0.81 USD no changes, $0.95 USD mid-session, $0.92 USD at compaction, $0.75 USD after](https://platform.claude.com/docs/images/cost-intel/compaction-timing.svg)
from line 227
227227 
228228The levers interact with the cache and each other, so judge them by net effect, and use [cache diagnostics](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics) to confirm your cached prefix survives each change.
229229 
230In measurements on an earlier model[28](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), Anthropic ran them on an issue-triage agent working through 20 real bug reports with screenshots from a public repository, and on a longer variant of the same job with 2.6 times the tokens. With caching on, input trimming (image resizing and tool search) cut the cost of both runs further.
230In measurements on an earlier model<sup>[28](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, Anthropic ran them on an issue-triage agent working through 20 real bug reports with screenshots from a public repository, and on a longer variant of the same job with 2.6 times the tokens. With caching on, input trimming (image resizing and tool search) cut the cost of both runs further.
231231 
232232#### Defer unused tool definitions
233233 
234234Every tool definition attached to a request is input on every turn, and a few MCP servers add up to hundreds of them.
235235 
236In a measurement on an earlier model[27](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), Anthropic ran the triage agent with its own two tools plus a catalog of real tool definitions from public MCP servers, for a total of up to 502 tools, loading all of them or marking the extras `defer_loading` behind [tool search](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool):
236In a measurement on an earlier model<sup>[27](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, Anthropic ran the triage agent with its own two tools plus a catalog of real tool definitions from public MCP servers, for a total of up to 502 tools, loading all of them or marking the extras `defer_loading` behind [tool search](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool):
237237 
238238<Frame>
239239 ![Line chart: with all tools loaded, run cost rises from $0.55 USD to $1.02 USD at 502 tools; tool search keeps it at $0.56 USD](https://platform.claude.com/docs/images/cost-intel/tool-search.svg)
from line 247
247247 
248248#### Keep data files out of the prompt
249249 
250When the model has to compute over a table, upload it with the [Files API](https://platform.claude.com/docs/en/build-with-claude/files) and let the model query it with [code execution](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) instead of pasting it in. Anthropic asked 25 aggregate questions[15](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) (sums, filtered counts, group-bys, and a date filter) over a 1,862-row public CSV, with the answers computed by pandas:
250When the model has to compute over a table, upload it with the [Files API](https://platform.claude.com/docs/en/build-with-claude/files) and let the model query it with [code execution](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) instead of pasting it in. Anthropic asked 25 aggregate questions<sup>[15](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> (sums, filtered counts, group-bys, and a date filter) over a 1,862-row public CSV, with the answers computed by pandas:
251251 
252252<Frame>
253253 ![Scatter chart: file uploaded with code execution, 25 of 25 correct at $0.40 USD; pasted into the prompt, 7 of 25 at $5.01 USD](https://platform.claude.com/docs/images/cost-intel/data-files.svg)
from line 263
263263 ![Bar chart by run length: context editing adds 73% on the short run; compaction saves 32% and pruning 39% on the long](https://platform.claude.com/docs/images/cost-intel/hygiene.svg)
264264</Frame>
265265 
266Anthropic measured these levers on an earlier model[28](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs):
266Anthropic measured these levers on an earlier model<sup>[28](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>:
267267 
268268* On the 20-issue run the levers saved little or nothing, and context editing made the run cost more.
269269* On the long run the prune and compaction both cut the cost, while context editing changed nothing.
from line 359
359359 
360360The command then proposes its edits as a diff (one hunk shown) and lists what it deliberately left alone: the refund window, the tone requirement, and the quality bar. You review a patch, not a rewrite.
361361 
362Anthropic measured the effect on a support-desk evaluation[14](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), across two migrations between earlier models:
362Anthropic measured the effect on a support-desk evaluation<sup>[14](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, across two migrations between earlier models:
363363 
364364<Frame>
365365 ![Scatter chart, support-desk evaluation: the old prompt costs more on the new model; audited, it is cheaper and as accurate](https://platform.claude.com/docs/images/cost-intel/prompt-audit.svg)
from line 388
388388 
389389Compare models on cost per completed task, not per token, because you pay for completed tasks. For most agent workloads, start with Claude Opus 5.5 at its default effort (`medium`).
390390 
391A more capable model can finish a task with less work, which can offset much of the per-token premium. Anthropic measured this on the SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset, whose scores are not comparable to the public leaderboard, priced as a customer is billed:
391A more capable model can finish a task with less work, which can offset much of the per-token premium. Anthropic measured this on the SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset, whose scores are not comparable to the public leaderboard, priced as a customer is billed:
392392 
393393<Frame>
394394 ![Scatter chart, SWE-bench Pro: Claude Opus 5.5 at low effort matches Sonnet 5.5's default for about 7% more per solved task](https://platform.claude.com/docs/images/cost-intel/cost-per-task-sonnet-5-5.svg)
from line 396
396396 
397397The following table lists the results:
398398 
399| Benchmark | Model | Effort | Score | Cost |
400| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
401| SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset | Claude Sonnet 5.5 | `high` (default) | 87.6% of tasks solved | $0.11 USD per solved task |
402| SWE-bench Pro subset | Claude Opus 5.5 | `low` | 87.4% of tasks solved | $0.12 USD per solved task |
403| SWE-bench Pro subset | Claude Opus 5.5 | `medium` (default) | 92.8% of tasks solved | $0.22 USD per solved task |
404| SWE-bench Pro subset | Claude Fable 5.1 | `high` (default) | 92.3% of tasks solved (a single run) | $1.19 USD per solved task |
405| Internal agentic-coding benchmark[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Opus 5.5 | `medium` (default) | 86.6% | $0.84 USD per attempt |
406| Internal agentic-coding benchmark | Claude Fable 5.1 | `medium` | 84.2% (a single run) | $2.68 USD per attempt |
407| GPQA Diamond[9](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Haiku 5.5 | `medium` (default) | 85% accuracy, compared with 91% for each of Claude Opus 5.5 and Claude Sonnet 5.5 | About a twentieth of Claude Opus 5.5’s cost per correct answer and about a tenth of Claude Sonnet 5.5’s |
408| Claude Managed Agents task set[25](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), 79 tasks | Claude Haiku 5.5 | `medium` | 93% of attempts passed (a single run) | About $0.011 USD per passed attempt |
399| Benchmark | Model | Effort | Score | Cost |
400| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
401| SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset | Claude Sonnet 5.5 | `high` (default) | 87.6% of tasks solved | $0.11 USD per solved task |
402| SWE-bench Pro subset | Claude Opus 5.5 | `low` | 87.4% of tasks solved | $0.12 USD per solved task |
403| SWE-bench Pro subset | Claude Opus 5.5 | `medium` (default) | 92.8% of tasks solved | $0.22 USD per solved task |
404| SWE-bench Pro subset | Claude Fable 5.1 | `high` (default) | 92.3% of tasks solved (a single run) | $1.19 USD per solved task |
405| Internal agentic-coding benchmark<sup>[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Opus 5.5 | `medium` (default) | 86.6% | $0.84 USD per attempt |
406| Internal agentic-coding benchmark | Claude Fable 5.1 | `medium` | 84.2% (a single run) | $2.68 USD per attempt |
407| GPQA Diamond<sup>[9](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Haiku 5.5 | `medium` (default) | 85% accuracy, compared with 91% for each of Claude Opus 5.5 and Claude Sonnet 5.5 | About a twentieth of Claude Opus 5.5’s cost per correct answer and about a tenth of Claude Sonnet 5.5’s |
408| Claude Managed Agents task set<sup>[25](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, 79 tasks | Claude Haiku 5.5 | `medium` | 93% of attempts passed (a single run) | About $0.011 USD per passed attempt |
409409 
410410**What to do.**
411411 
from line 412
412412* Start with Claude Opus 5.5 at its default effort: on the SWE-bench Pro subset it matched Claude Fable 5.1 at its default, inside run-to-run noise, for about a fifth of the cost per solved task. Opus 5.5 and Fable 5.1 both largely saturate the SWE-bench Pro subset. Use Claude Fable 5.1 for demanding reasoning and long-horizon agentic work, or when your evals on Claude Opus 5.5 at higher effort still fall short.
413413* At the other end, Claude Haiku 5.5 suits high-volume and latency-sensitive work with checkable outputs.
414414* Price every candidate in cost per completed task on your own traffic, including Claude Opus 5.5 at its default effort and the frontier model at reduced effort. Each of Claude Opus 5.5’s token prices, cache reads included, is twice Claude Sonnet 5.5’s, but on the SWE-bench Pro subset Opus 5.5 at `low` solved about the same share of tasks as Sonnet 5.5 at its default, inside run-to-run noise, for about 7% more per solved task.
415* Measure what a more expensive model buys on your own workload. On the 45 DeepResearch Bench II[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) tasks scored for every model, at default effort, Claude Opus 5.5 scored 2.6 points above Claude Sonnet 5.5 for 1.5 times the cost per task, and Claude Fable 5.1 scored 6.0 points above Claude Sonnet 5.5 for 5.8 times. On all 50 tasks, with four biology tasks that only Claude Sonnet 5.5 answered counted as failures, neither is measurably ahead of Claude Sonnet 5.5.
415* Measure what a more expensive model buys on your own workload. On the 45 DeepResearch Bench II<sup>[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> tasks scored for every model, at default effort, Claude Opus 5.5 scored 2.6 points above Claude Sonnet 5.5 for 1.5 times the cost per task, and Claude Fable 5.1 scored 6.0 points above Claude Sonnet 5.5 for 5.8 times. On all 50 tasks, with four biology tasks that only Claude Sonnet 5.5 answered counted as failures, neither is measurably ahead of Claude Sonnet 5.5.
416416* Price the tail of your workload, not the median: compare models on the hardest tenth of your tasks, not the typical one.
417417 
418The bill is decided by the tasks the cheaper model fails, because a failed task still bills its tokens, then the retry, then whatever the failure costs downstream. The tail is also where the money goes even when nothing fails. On a 20-problem WideSearch[1](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) run, two problems carried 43% of the spend:
418The bill is decided by the tasks the cheaper model fails, because a failed task still bills its tokens, then the retry, then whatever the failure costs downstream. The tail is also where the money goes even when nothing fails. On a 20-problem WideSearch<sup>[1](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> run, two problems carried 43% of the spend:
419419 
420420<Frame>
421421 ![Bar chart of 20 WideSearch problems ranked by cost: the top two carry 43% of spend and the cheapest half 10%](https://platform.claude.com/docs/images/cost-intel/tail.svg)
from line 425
425425 
426426### Upgrade the model
427427 
428If you are a model or two behind, the cheapest lever is the model string. In Anthropic’s measurements, each newer model solved at least as many tasks as the one before it, usually for less per solved task. The chart plots recent Claude models on two benchmarks in which an agent works alone on one written task and tests check the result: the SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset, where every model ran through the same test setup, and Terminal-Bench 3[20](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs). The table lists what each upgrade changed:
428If you are a model or two behind, the cheapest lever is the model string. In Anthropic’s measurements, each newer model solved at least as many tasks as the one before it, usually for less per solved task. The chart plots recent Claude models on two benchmarks in which an agent works alone on one written task and tests check the result: the SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset, where every model ran through the same test setup, and Terminal-Bench 3<sup>[20](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>. The table lists what each upgrade changed:
429429 
430430<Frame>
431431 ![Charts: on SWE-bench Pro, Opus 5.5 and Sonnet 5.5 cut cost per solved task most; on Terminal-Bench 3, Opus drops to $28 USD](https://platform.claude.com/docs/images/cost-intel/upgrade-ladder-sonnet-5-5.svg)
432432</Frame>
433433 
434| Benchmark | Upgrade | Effort | Score | Cost |
435| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | --------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
436| SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset | Claude Sonnet 4.6 to Claude Sonnet 5 | Default | 5 more points | 16% less per solved task |
437| SWE-bench Pro subset | Claude Sonnet 5 to Claude Sonnet 5.5 | Default | About 10 more points | 87% less per solved task; 85% less at Claude Sonnet 5’s prices |
438| SWE-bench Pro subset | Claude Opus 5 to Claude Opus 5.5 | Default: `high` to `medium` | About the same: 91.9% to 92.8% of tasks solved | 78% less per solved task; about 69% less at Claude Opus 5’s prices |
439| SWE-bench Pro subset | Claude Fable 5 to Claude Fable 5.1 | Default | About the same score | 43% less per solved task |
440| Terminal-Bench 3[20](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Opus 4.7 to Claude Opus 4.8 | `high` | From 7% to 15% of tasks solved | From $183 USD to $63 USD per solved task |
441| Terminal-Bench 3 | Claude Opus 4.8 to Claude Opus 5 | `high` | From 15% to 41% of tasks solved | From $63 USD to $28 USD per solved task, a 56% saving |
442| Claude Managed Agents task set[25](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Haiku 4.5 to Claude Haiku 5.5 | As served; `medium` on Claude Haiku 5.5 | From 62% to 93% of attempts passed, one run per model | From $0.041 USD to about $0.010 USD in token cost per attempt; about 84% less per passed attempt |
434| Benchmark | Upgrade | Effort | Score | Cost |
435| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------ | --------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
436| SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset | Claude Sonnet 4.6 to Claude Sonnet 5 | Default | 5 more points | 16% less per solved task |
437| SWE-bench Pro subset | Claude Sonnet 5 to Claude Sonnet 5.5 | Default | About 10 more points | 87% less per solved task; 85% less at Claude Sonnet 5’s prices |
438| SWE-bench Pro subset | Claude Opus 5 to Claude Opus 5.5 | Default: `high` to `medium` | About the same: 91.9% to 92.8% of tasks solved | 78% less per solved task; about 69% less at Claude Opus 5’s prices |
439| SWE-bench Pro subset | Claude Fable 5 to Claude Fable 5.1 | Default | About the same score | 43% less per solved task |
440| Terminal-Bench 3<sup>[20](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Opus 4.7 to Claude Opus 4.8 | `high` | From 7% to 15% of tasks solved | From $183 USD to $63 USD per solved task |
441| Terminal-Bench 3 | Claude Opus 4.8 to Claude Opus 5 | `high` | From 15% to 41% of tasks solved | From $63 USD to $28 USD per solved task, a 56% saving |
442| Claude Managed Agents task set<sup>[25](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Haiku 4.5 to Claude Haiku 5.5 | As served; `medium` on Claude Haiku 5.5 | From 62% to 93% of attempts passed, one run per model | From $0.041 USD to about $0.010 USD in token cost per attempt; about 84% less per passed attempt |
443443 
444444**When it pays.**
445445 
446446* The size of the saving depends on the work. From Claude Opus 5 to Claude Opus 5.5, it is 78% per solved task on the SWE-bench Pro subset and 40% on typical workloads ([Introducing Claude Opus 5.5](https://www.anthropic.com/news/claude-opus-5-5)). From Claude Sonnet 5 to Claude Sonnet 5.5, it is 87% on the same subset and up to 30% for most work ([Introducing Claude Sonnet 5.5](https://www.anthropic.com/news/claude-sonnet-5-5)).
447447* Where older models already solve most tasks, the cost of each attempt decides the saving: on the SWE-bench Pro subset, Claude Opus 5.5 scores about the same as Claude Opus 5 for 78% less per solved task.
448* Where older models mostly fail, the pass rate decides the saving: on Terminal-Bench 3[20](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), the upgrade from Claude Opus 4.8 to Claude Opus 5 raises tasks solved from 15% to 41% and costs 56% less per solved task.
448* Where older models mostly fail, the pass rate decides the saving: on Terminal-Bench 3<sup>[20](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, the upgrade from Claude Opus 4.8 to Claude Opus 5 raises tasks solved from 15% to 41% and costs 56% less per solved task.
449449* Compare on cost per solved task, not per token: the same text costs about 30% more tokens on Claude 4.7 and later models, so a per-token comparison makes the newer models look more expensive by construction.
450450 
451451### Tune effort
from line 454
454454 
455455The following table lists Anthropic’s measurements on two benchmarks with current models; scores and costs are not comparable between the two benchmarks. Costs are per task, not per solved task as in [Compare models on cost per task](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#compare-models-on-cost-per-task). Each score pools two runs on SWE-bench Pro and three on DeepResearch Bench II, unless its cell says otherwise:
456456 
457| Benchmark | Model | Effort | Score | Cost per task |
458| --------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------ | ------------------------------------ | ------------- |
459| SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset | Claude Opus 5.5 | `low` | 87.4% of tasks solved | $0.11 USD |
460| SWE-bench Pro subset | Claude Opus 5.5 | `medium` (default) | 92.8% of tasks solved | $0.21 USD |
461| SWE-bench Pro subset | Claude Opus 5.5 | `high` | 95.3% of tasks solved | $0.29 USD |
462| SWE-bench Pro subset | Claude Opus 5.5 | `xhigh` | 96.7% of tasks solved (a single run) | $0.74 USD |
463| DeepResearch Bench II[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Claude Fable 5.1 | `low` | Rubric score 60.5% | $3.47 USD |
464| DeepResearch Bench II | Claude Fable 5.1 | `medium` | Rubric score 60.5% | $4.44 USD |
465| DeepResearch Bench II | Claude Fable 5.1 | `high` (default) | Rubric score 63.0% | $5.64 USD |
457| Benchmark | Model | Effort | Score | Cost per task |
458| -------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------ | ------------------------------------ | ------------- |
459| SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset | Claude Opus 5.5 | `low` | 87.4% of tasks solved | $0.11 USD |
460| SWE-bench Pro subset | Claude Opus 5.5 | `medium` (default) | 92.8% of tasks solved | $0.21 USD |
461| SWE-bench Pro subset | Claude Opus 5.5 | `high` | 95.3% of tasks solved | $0.29 USD |
462| SWE-bench Pro subset | Claude Opus 5.5 | `xhigh` | 96.7% of tasks solved (a single run) | $0.74 USD |
463| DeepResearch Bench II<sup>[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Claude Fable 5.1 | `low` | Rubric score 60.5% | $3.47 USD |
464| DeepResearch Bench II | Claude Fable 5.1 | `medium` | Rubric score 60.5% | $4.44 USD |
465| DeepResearch Bench II | Claude Fable 5.1 | `high` (default) | Rubric score 63.0% | $5.64 USD |
466466 
467The following chart plots accuracy against cost per task for Claude Opus 5.5 on the SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset:
467The following chart plots accuracy against cost per task for Claude Opus 5.5 on the SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset:
468468 
469469<Frame>
470470 ![Line chart of accuracy against cost per task by effort: steep from low to high for Claude Opus 5.5 on SWE-bench Pro](https://platform.claude.com/docs/images/cost-intel/effort-sweep-opus-5-5-swe-bench-pro.svg)
471471</Frame>
472472 
473The following chart plots rubric score against cost per task for Claude Fable 5.1 on DeepResearch Bench II[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs):
473The following chart plots rubric score against cost per task for Claude Fable 5.1 on DeepResearch Bench II<sup>[7](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>:
474474 
475475<Frame>
476476 ![Line chart, DeepResearch Bench II, Fable 5.1: rubric score 60.5% at low effort, 60.5% at medium, 63.0% at high, as cost rises](https://platform.claude.com/docs/images/cost-intel/effort-limit-repriced.svg)
from line 479
479479**What to do.**
480480 
481481* Sweep two or three effort levels on a sample of your own traffic, each in a separate session: changing top-level effort mid-session [invalidates the cache](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#cache-repeated-context) and distorts the comparison. The curve is the baseline any multi-model strategy must beat ([step 2 of measuring on your own workload](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#measure-on-your-own-workload)).
482* On long-horizon coding, effort is a real tradeoff, which [re-running failures at higher effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#re-run-failures-at-higher-effort) turns back into a saving. At `medium`, Claude Sonnet 5.5 scored about 7 points lower than at its default, `high`, on the SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset for about 59% of the cost per task (2 runs each), and scored 62.7% compared with 77.8% on the internal agentic-coding benchmark[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) (1 attempt per task).
482* On long-horizon coding, effort is a real tradeoff, which [re-running failures at higher effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#re-run-failures-at-higher-effort) turns back into a saving. At `medium`, Claude Sonnet 5.5 scored about 7 points lower than at its default, `high`, on the SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset for about 59% of the cost per task (2 runs each), and scored 62.7% compared with 77.8% on the internal agentic-coding benchmark<sup>[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> (1 attempt per task).
483483* At `xhigh` and `max`, Claude Sonnet 5.5 can start its own rounds of review after it finishes a task, which takes more time and tokens. To keep that work on the task, add the prompt under “Thoroughness at `xhigh` and `max` effort” in [Prompting Claude Sonnet 5.5](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-sonnet-5-5#steer-initiative-and-scope) to your system prompt.
484* On research tasks, measure the model you ship. Claude Fable 5.1 scored 2.5 points higher at `high` than at `low` on DeepResearch Bench II, for 1.6 times the cost, and no higher at `medium` than at `low`; Claude Opus 5.5 scored 13.3 points lower at `low` than at `medium` on DRACO[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs). The two results come from different models on different benchmarks, so they show that the answer varies, not why.
485* At `low`, Claude Opus 5.5’s typical task took 84% less time than at `medium` on DRACO[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), 30% less on HLE[22](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), and 47% less on an internal set of physics problems[23](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), and it scored 13.3, 3.4, and 14.0 points lower (3, 3, and 4 attempts per task).
486* On an internal defect-search benchmark for work larger than one context window[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), Claude Fable 5.1 took 15.2, 17.5, and 19.9 hours per run at `low`, `medium`, and `high` (3 runs each). To save time, also compare lower effort with the two changes in [Show the model elapsed time](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#show-the-model-elapsed-time): `low` effort saved more time, and the changes kept more of the score.
484* On research tasks, measure the model you ship. Claude Fable 5.1 scored 2.5 points higher at `high` than at `low` on DeepResearch Bench II, for 1.6 times the cost, and no higher at `medium` than at `low`; Claude Opus 5.5 scored 13.3 points lower at `low` than at `medium` on DRACO<sup>[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>. The two results come from different models on different benchmarks, so they show that the answer varies, not why.
485* At `low`, Claude Opus 5.5’s typical task took 84% less time than at `medium` on DRACO<sup>[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, 30% less on HLE<sup>[22](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, and 47% less on an internal set of physics problems<sup>[23](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, and it scored 13.3, 3.4, and 14.0 points lower (3, 3, and 4 attempts per task).
486* On an internal defect-search benchmark for work larger than one context window<sup>[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, Claude Fable 5.1 took 15.2, 17.5, and 19.9 hours per run at `low`, `medium`, and `high` (3 runs each). To save time, also compare lower effort with the two changes in [Show the model elapsed time](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#show-the-model-elapsed-time): `low` effort saved more time, and the changes kept more of the score.
487487 
488488### Re-run failures at higher effort
489489 
490490When a task’s outcome is checkable, the cheapest policy on the effort curve is not a fixed setting: run every task at a low setting and re-run only the failures at a higher one.
491491 
492Anthropic computed this policy task by task from the Claude Opus 5.5 effort runs on the SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset in [Tune effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#tune-effort):
492Anthropic computed this policy task by task from the Claude Opus 5.5 effort runs on the SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> subset in [Tune effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#tune-effort):
493493 
494494<Frame>
495495 ![Chart, SWE-bench Pro, Opus 5.5: low or medium effort with failures re-run at high matches any fixed effort for less than high](https://platform.claude.com/docs/images/cost-intel/escalation-opus-5-5.svg)
from line 518
518518* Set `max_tokens` to 64,000 for agentic work, or to 128,000, the maximum, when a single cut-off attempt is costly. [Stream responses](https://platform.claude.com/docs/en/build-with-claude/streaming) that large, treat [`stop_reason: max_tokens`](https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons#max-tokens) as a failure, and save money with effort, which the model can see.
519519* On Claude Haiku 5.5, raise a small `max_tokens` or lower effort: thinking is on by default and counts toward the cap, so a response can end before any text (see the [Claude Haiku 5.5 migration guide](https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide#configure-thinking)).
520520 
521The following table shows what each model solved and what a solved task cost at each cap on an internal repository-task benchmark[12](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), one attempt per task, each model at its default effort. The rows at 16,384 average two runs, and the other rows are one run each:
521The following table shows what each model solved and what a solved task cost at each cap on an internal repository-task benchmark<sup>[12](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, one attempt per task, each model at its default effort. The rows at 16,384 average two runs, and the other rows are one run each:
522522 
523523| Model | `max_tokens` | Attempts ended by the cap | Tasks solved | Cost per solved task |
524524| ---------------- | ------------ | ------------------------- | ------------ | ------------------------ |
from line 533
533533 
534534Compare the caps within each model. The two models were run a month apart, and their costs are priced on different bases.
535535 
536On the internal repository tasks[12](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), almost every turn finishes far below a 16,384-token cap. The rare long turn is what a higher cap buys:
536On the internal repository tasks<sup>[12](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, almost every turn finishes far below a 16,384-token cap. The rare long turn is what a higher cap buys:
537537 
538538<Frame>
539539 ![Dot plot of per-turn output for Opus 5.5 and Fable 5.1: medians a few hundred tokens, longest 61k and 128k, against the caps](https://platform.claude.com/docs/images/cost-intel/max-tokens-ladder-opus-5-5.svg)
from line 541
541541 
542542Ask for shorter answers. Output tokens cost five times input tokens on Claude Haiku 5.5, Claude Sonnet 5.5, Claude Opus 5.5, and Claude Fable 5.1, and in an agent loop every token the model writes comes back as input on every later turn, so you pay for a long answer again and again.
543543 
544In a measurement on an earlier model[26](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), Anthropic ran a small agent that triages bug reports ([Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens)) under three final-answer instructions, three runs each, with the same model and tools:
544In a measurement on an earlier model<sup>[26](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, Anthropic ran a small agent that triages bug reports ([Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens)) under three final-answer instructions, three runs each, with the same model and tools:
545545 
546546* The original asked for two lines.
547547* The shorter variant asked for one.
from line 557
557557 
558558### Show the model elapsed time
559559 
560To make an agent finish sooner and cost less, tell it that time matters, and show it the elapsed time on every request. In Anthropic’s measurement, the two changes cut the time of a single Claude Opus 5.5 agent at `medium` effort by 47% and its cost by 60% on the typical (median) DRACO[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) research task, and its average score was 4.1 points lower.
560To make an agent finish sooner and cost less, tell it that time matters, and show it the elapsed time on every request. In Anthropic’s measurement, the two changes cut the time of a single Claude Opus 5.5 agent at `medium` effort by 47% and its cost by 60% on the typical (median) DRACO<sup>[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> research task, and its average score was 4.1 points lower.
561561 
562On HLE[22](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) and an internal physics set[23](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), the typical task took 14% and 7% less time, and the physics score was 3.0 points lower. Lowering effort to `low` saved more time and cost than the changes did, and lost more score (reference 21). Check the score on your own tasks before you adopt the changes.
562On HLE<sup>[22](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> and an internal physics set<sup>[23](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, the typical task took 14% and 7% less time, and the physics score was 3.0 points lower. Lowering effort to `low` saved more time and cost than the changes did, and lost more score (reference 21). Check the score on your own tasks before you adopt the changes.
563563 
564564For working code, see the Claude Cookbook recipe [Multi-agent teams under latency pressure and budgets](https://github.com/anthropics/claude-cookbooks/blob/main/patterns/agents/latency_multi_agent.ipynb), which applies both changes to a team of agents. To say that time matters in the system prompt instead, see [Time signals for multiagent harnesses](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#time-signals-for-multi-agent-harnesses).
565565 
from line 596
596596 
597597The following table compares each pairing with its executor alone at the same effort:
598598 
599| Benchmark | Score | Cost | Advisor consulted |
600| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
601| Internal agentic-coding benchmark[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | 90.1%, 1.7 points over the executor alone, at the edge of run-to-run noise | $2.92 USD per attempt, about 2.1 times the executor alone | About 1.4 times per attempt; 4% of attempts received no advice |
602| GPQA Diamond[9](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Within run-to-run noise of the executor alone | 12% more per question for Claude Haiku 5.5, 25% more for Claude Sonnet 5.5 | On none of the 198 questions, in two runs each; no system prompt asked for consultations |
603| Chartography[13](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | 61.7, 7 points below the executor alone and beyond run-to-run noise | About the same as the executor alone | On 1 of 300 tasks |
599| Benchmark | Score | Cost | Advisor consulted |
600| --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
601| Internal agentic-coding benchmark<sup>[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | 90.1%, 1.7 points over the executor alone, at the edge of run-to-run noise | $2.92 USD per attempt, about 2.1 times the executor alone | About 1.4 times per attempt; 4% of attempts received no advice |
602| GPQA Diamond<sup>[9](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Within run-to-run noise of the executor alone | 12% more per question for Claude Haiku 5.5, 25% more for Claude Sonnet 5.5 | On none of the 198 questions, in two runs each; no system prompt asked for consultations |
603| Chartography<sup>[13](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | 61.7, 7 points below the executor alone and beyond run-to-run noise | About the same as the executor alone | On 1 of 300 tasks |
604604 
605605* **Internal agentic-coding benchmark.** Claude Opus 5.5 at `high`, with a Claude Fable 5.1 advisor.
606606* **GPQA Diamond.** Claude Haiku 5.5 or Claude Sonnet 5.5 at each model’s default (`medium` and `high`), with a Claude Opus 5.5 advisor.
from line 617
617617**What to do.**
618618 
619619* Measure the consult rate on your own tasks. The advisor tool’s definition, about 1,000 prompt tokens per request, adds cost even when the executor never consults. With [prompt caching](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#cache-repeated-context), a multi-turn agent loop pays for the definition at the cache-read price after the first request, so this overhead matters most for short, single-request tasks.
620* If the executor rarely consults, see [Prompting for coding and agent tasks](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#prompting-for-coding-and-agent-tasks) for system prompts that ask for consultations, and measure again after you add one. On 20 SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) problems, the suggested prompt made no clear difference for Claude Sonnet 5.5.
621* Restore the executor’s effort if the consult rate collapses. In measurements on earlier models, one pairing that consulted on most tasks at the default effort consulted on few when effort was lowered, and then scored below the executor alone at its default effort (SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)).
620* If the executor rarely consults, see [Prompting for coding and agent tasks](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#prompting-for-coding-and-agent-tasks) for system prompts that ask for consultations, and measure again after you add one. On 20 SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> problems, the suggested prompt made no clear difference for Claude Sonnet 5.5.
621* Restore the executor’s effort if the consult rate collapses. In measurements on earlier models, one pairing that consulted on most tasks at the default effort consulted on few when effort was lowered, and then scored below the executor alone at its default effort (SWE-bench Pro<sup>[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>).
622622* Recheck at every model release, because releases move both the capability gap and the price ratio.
623623 
624624### Orchestrator strategy: delegate bulk work
from line 625
625625 
626626Delegation saved money in only two situations, in measurements with workers on Claude Sonnet 5, an earlier model:
627627 
628* Routine work with a long cost tail (an easy slice of BrowseComp[4](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs))
629* Work larger than one context window (an internal defect-search benchmark[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs))
628* Routine work with a long cost tail (an easy slice of BrowseComp<sup>[4](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>)
629* Work larger than one context window (an internal defect-search benchmark<sup>[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>)
630630 
631When the work is one dependent chain, or fits in a single context without a long cost tail, the orchestrator’s model alone at lower effort came out ahead in every case measured on earlier models (the harder BrowseComp set and DeepWideSearch[6](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)); independent external work reports the same pattern[5](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
631When the work is one dependent chain, or fits in a single context without a long cost tail, the orchestrator’s model alone at lower effort came out ahead in every case measured on earlier models (the harder BrowseComp set and DeepWideSearch<sup>[6](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>); independent external work reports the same pattern<sup>[5](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
632632 
633633To build an orchestrator, use [multiagent orchestration](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration) in Claude Managed Agents: configure an orchestrator agent and worker agents that it can call, each with its own model.
634634 
from line 645
645645**What to do.**
646646 
647647* **Routine work with a long cost tail:** measure this case first, for accuracy as well as cost. The measurement behind it covers only problems that the delegated configuration answered correctly in every run (reference 4).
648* **Work larger than one context window:** delegate partitions to workers. Lowering effort cannot help, because the bill is the reading itself: on the defect-search benchmark[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), Claude Fable 5.1 alone cost $468 USD to $552 USD per run across its three effort settings and took 15 to 20 hours. With earlier-model workers, delegation cost less and finished sooner, for a lower score.
649* **Claude Haiku 5.5 subagents on coding tasks:** compare them with lower effort first. On an internal coding benchmark on Claude Managed Agents, they were an alternative to lowering effort, not better. Adding them to Claude Opus 5.5 at `medium`, with a short delegation prompt, cut cost per attempt by 32% and the pass rate by about 4 percentage points (95% interval 1.3 to 7.1), about what a mix of `low` and `medium` without subagents would give at that cost[29](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs).
648* **Work larger than one context window:** delegate partitions to workers. Lowering effort cannot help, because the bill is the reading itself: on the defect-search benchmark<sup>[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, Claude Fable 5.1 alone cost $468 USD to $552 USD per run across its three effort settings and took 15 to 20 hours. With earlier-model workers, delegation cost less and finished sooner, for a lower score.
649* **Claude Haiku 5.5 subagents on coding tasks:** compare them with lower effort first. On an internal coding benchmark on Claude Managed Agents, they were an alternative to lowering effort, not better. Adding them to Claude Opus 5.5 at `medium`, with a short delegation prompt, cut cost per attempt by 32% and the pass rate by about 4 percentage points (95% interval 1.3 to 7.1), about what a mix of `low` and `medium` without subagents would give at that cost<sup>[29](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>.
650650 
651651## Measure on your own workload
652652 
from line 853
853853 
854854The following table lists the levers in the order to try them. The figures come from Anthropic’s tests, launch posts, and published prices and speeds:
855855 
856| Lever | Saving | Quality cost | Latency | Where |
857| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
858| Prompt caching | Cost cut by a factor of 4.8 to 7.2 on a research agent, and by 83% to 86% on a small triage agent | None | Faster | [Cache repeated context](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#cache-repeated-context) |
859| 1-hour cache duration | With 1 turn in 10 after a pause, the 5-minute default cost 54% more; with 1 in 20, about the same | None | On earlier models, stayed warm after a pause[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | [Pick the cache duration](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#pick-the-cache-duration) |
860| Input trimming | A further 21% to 26% off a small triage agent’s bill | With tool search, accuracy in the same range as without[27](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) | Neutral | [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens) |
861| Tool search | 45% with 500 tool definitions attached; 20% from deferring a GitHub MCP server’s toolset | None for tools the task never needs | Neutral | [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens) |
862| Data files through code execution | 92% on a data task of 25 questions, with prompt caching off | A gain: 25 of 25 correct instead of 7 | Faster | [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens) |
863| Batch API | 50% | None | Results within 24 hours | [Batch work that can wait](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#batch-work-that-can-wait) |
864| Prompt audit against the current model | 14% on both model upgrades tested | None; a gain on one | Faster (fewer tool rounds) | [Audit prompts against the current model](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#audit-prompts-against-the-current-model) |
865| Upgrade the model | Usually less: up to 40% less on typical workloads, and up to 87% less per solved task on a coding benchmark | None; a gain on most | Neutral | [Upgrade the model](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#upgrade-the-model) |
866| Lower effort | On long coding tasks, `medium` cost about 30% to 52% less than `high`, and `low` about two thirds less | Up to 15 points lower, depending on the task; 2.5 on one research agent | Faster | [Tune effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#tune-effort) |
867| Re-run failures | About 40% less than running everything at `high`, at the same pass rate or slightly better | None | A second attempt on the tasks that fail | [Re-run failures at higher effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#re-run-failures-at-higher-effort) |
868| Ask for shorter answers | About 13% less, from 39% fewer output tokens | None | Faster | [Set budgets and output caps](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#set-budgets-and-output-caps) |
869| Raising `max_tokens` | None: cost per solved task stayed about the same | A gain: up to 22 points more tasks solved on one coding benchmark; none on another | Neutral | [Set budgets and output caps](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#set-budgets-and-output-caps) |
870| Advisor | None: about 2.1 times the cost of the model alone, on a coding benchmark | On coding, a small gain that may be chance; on chart reading, a loss | About 1.4 extra calls per attempt, on coding | [Advisor strategy](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#advisor-strategy-escalate-hard-decisions) |
871| Orchestrator | About half the cost of the orchestrator’s model alone, on work larger than one context window; on routine work, measure first | 10 to 12 points lower on that work | Much faster on that work | [Orchestrator strategy](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#orchestrator-strategy-delegate-bulk-work) |
872| Fast mode | None: twice the standard token prices | None | Up to 2.5x higher output tokens per second | [Show the model elapsed time](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#show-the-model-elapsed-time) |
856| Lever | Saving | Quality cost | Latency | Where |
857| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
858| Prompt caching | Cost cut by a factor of 4.8 to 7.2 on a research agent, and by 83% to 86% on a small triage agent | None | Faster | [Cache repeated context](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#cache-repeated-context) |
859| 1-hour cache duration | With 1 turn in 10 after a pause, the 5-minute default cost 54% more; with 1 in 20, about the same | None | On earlier models, stayed warm after a pause<sup>[16](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | [Pick the cache duration](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#pick-the-cache-duration) |
860| Input trimming | A further 21% to 26% off a small triage agent’s bill | With tool search, accuracy in the same range as without<sup>[27](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup> | Neutral | [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens) |
861| Tool search | 45% with 500 tool definitions attached; 20% from deferring a GitHub MCP server’s toolset | None for tools the task never needs | Neutral | [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens) |
862| Data files through code execution | 92% on a data task of 25 questions, with prompt caching off | A gain: 25 of 25 correct instead of 7 | Faster | [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens) |
863| Batch API | 50% | None | Results within 24 hours | [Batch work that can wait](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#batch-work-that-can-wait) |
864| Prompt audit against the current model | 14% on both model upgrades tested | None; a gain on one | Faster (fewer tool rounds) | [Audit prompts against the current model](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#audit-prompts-against-the-current-model) |
865| Upgrade the model | Usually less: up to 40% less on typical workloads, and up to 87% less per solved task on a coding benchmark | None; a gain on most | Neutral | [Upgrade the model](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#upgrade-the-model) |
866| Lower effort | On long coding tasks, `medium` cost about 30% to 52% less than `high`, and `low` about two thirds less | Up to 15 points lower, depending on the task; 2.5 on one research agent | Faster | [Tune effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#tune-effort) |
867| Re-run failures | About 40% less than running everything at `high`, at the same pass rate or slightly better | None | A second attempt on the tasks that fail | [Re-run failures at higher effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#re-run-failures-at-higher-effort) |
868| Ask for shorter answers | About 13% less, from 39% fewer output tokens | None | Faster | [Set budgets and output caps](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#set-budgets-and-output-caps) |
869| Raising `max_tokens` | None: cost per solved task stayed about the same | A gain: up to 22 points more tasks solved on one coding benchmark; none on another | Neutral | [Set budgets and output caps](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#set-budgets-and-output-caps) |
870| Advisor | None: about 2.1 times the cost of the model alone, on a coding benchmark | On coding, a small gain that may be chance; on chart reading, a loss | About 1.4 extra calls per attempt, on coding | [Advisor strategy](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#advisor-strategy-escalate-hard-decisions) |
871| Orchestrator | About half the cost of the orchestrator’s model alone, on work larger than one context window; on routine work, measure first | 10 to 12 points lower on that work | Much faster on that work | [Orchestrator strategy](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#orchestrator-strategy-delegate-bulk-work) |
872| Fast mode | None: twice the standard token prices | None | Up to 2.5x higher output tokens per second | [Show the model elapsed time](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#show-the-model-elapsed-time) |
873873 
874874### Automate the search with the Claude API skill
875875 
from line 889
889889/claude-api hillclimb
890890```
891891 
892Anthropic measured the first lever of `cost-optimize` and two searches on tau2-bench retail[24](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), all on earlier models. The cache breakpoints that `cost-optimize` produced cut cost per task, and the pass rate fell by less than the spread of identical runs.
892Anthropic measured the first lever of `cost-optimize` and two searches on tau2-bench retail<sup>[24](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs)</sup>, all on earlier models. The cache breakpoints that `cost-optimize` produced cut cost per task, and the pass rate fell by less than the spread of identical runs.
893893 
894894A search found a cheaper configuration by lowering effort and moving down a model tier. Its pass rate stayed inside the band set before the search by a fraction of a task, and ended below the stricter floor the search used for its own verdicts. A second search, started from the lower-cost model at its default effort, kept nothing. Reference 24 has the figures and what each search cost to run.
895895 

agents-and-tools/mcp-tunnels/console Changed · +23 / -15 lines

from line 116
116116 
117117## Use the tunnel in an agent
118118 
119Once your stack is running and has one or more MCP servers configured, attach an upstream MCP server to a Managed Agent session. To call the same servers from the Messages API instead, see [Use the tunneled MCP servers](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/overview#use-the-tunneled-mcp-servers).
119Once your stack is running, add a tunneled MCP server to an agent when you create a [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) session. To call the same servers from the Messages API instead, see [Use the tunneled MCP servers](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/overview#use-the-tunneled-mcp-servers).
120120 
121<Note>
122 The picker only shows tunnels with at least one active certificate. A tunnel that still shows **Needs certificate** in the **MCP tunnels** list does not appear in the dropdown menu; register a CA certificate first. The picker is also workspace-scoped: it lists tunnels in the same workspace as the session, not other workspaces.
123</Note>
124 
125121<Steps>
126122 <Step title="Open the Create session dialog box">
127 In the Claude Console, go to the [Sessions](https://platform.claude.com/sessions) page (`platform.claude.com/sessions`) and click **Create session**.
123 In the Claude Console, go to the [Sessions](https://platform.claude.com/sessions) page (`platform.claude.com/sessions`). In the workspace picker in the sidebar, select the workspace that holds the tunnel. Click **Create session**.
128124 </Step>
129125 
130 <Step title="Define an inline agent">
131 In the agent picker, select **Create new agent** so you can edit the MCP server list directly.
126 <Step title="Create a new agent">
127 From the **Agent** dropdown menu, select **Create new agent**, because the dialog box can add MCP servers only to a new agent. Enter a name for the agent in the **Name** field.
132128 </Step>
133129 
134130 <Step title="Add the MCP server">
135 Click **+ MCP Server** and open the dropdown menu. Tunnels created in the current workspace appear at the top of the list, above the public connector catalog. Select the tunnel that fronts the server you want to reach.
131 Under **MCP servers**, click **MCP server**. On the card that appears, open the **Select a server** dropdown menu and select your tunnel from the top of the list. Only tunnels in the selected workspace that have an [active CA certificate](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/console#add-a-ca-certificate) are listed.
136132 </Step>
137133 
138 <Step title="Supply the routing">
139 The card shows two optional fields: **Subdomain** (prefixed to the tunnel domain) and **Path** (appended after it). Fill in one or both, depending on how your proxy’s routes are configured. The **Resolves to** line shows the full MCP server URL that the agent connects to.
134 <Step title="Enter the subdomain and path">
135 In the **Subdomain** field, enter the subdomain that your proxy’s `routes` map sends to the MCP server, such as `wiki`. In the **Path** field, enter the path that the MCP server expects, such as `mcp`. Check that the **Resolves to** line shows your subdomain and path under the tunnel domain, such as `https://wiki.abcd1234.tunnel.anthropic.com/mcp`.
140136 </Step>
141</Steps>
142137 
143<Note>
144 The tunnel carries traffic; it does not authenticate to the upstream MCP server. Configure OAuth or bearer authentication on the MCP server the same way as for any other MCP server.
145</Note>
138 <Step title="Add a credential if the MCP server needs one">
139 The tunnel carries traffic to the upstream MCP server but does not authenticate to it. If the server requires OAuth or a bearer token, click **Connect** on the card and save a credential in a vault. If the card shows **Needs vault** instead, go to **Credential vaults** and add a vault that holds a credential for the **Resolves to** URL. If the server requires no authentication, ignore **Connect** or **Needs vault** on the card. To learn how vaults work, see [Authenticate with vaults](https://platform.claude.com/docs/en/managed-agents/vaults).
140 </Step>
141 
142 <Step title="Select an environment">
143 In the **Environment** field, above **MCP servers**, select an environment. If no warning appears below the field, go to the next step. If a warning says that the environment blocks MCP servers, click **Edit environment**, which opens the environment in a new browser tab. Under **Networking**, add the host from the **Resolves to** line, such as `wiki.abcd1234.tunnel.anthropic.com`, to **Allowed hosts**. Leave the **Allow MCP servers** checkbox unchecked, as the [Limit the network](https://platform.claude.com/docs/en/managed-agents/secure-deployment#limit-the-network) section recommends. Click **Save** and return to the browser tab with the dialog box.
144 </Step>
145 
146 <Step title="Create the session">
147 Under **Credential vaults**, remove any vault that the session does not need. If a vault remains, select the checkbox that confirms you are authorized to use it. In the dialog box, click **Create session**. The Console saves the agent and opens the session.
148 </Step>
149 
150 <Step title="Test the connection">
151 Ask the agent to use one of the MCP server’s tools. You should see a tool call followed by its result. If the agent can’t reach the server, see [Troubleshoot MCP tunnels](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/troubleshooting).
152 </Step>
153</Steps>
146154 
147155## Archive a tunnel
148156 

agents-and-tools/mcp-tunnels/overview Changed · +4 / -2 lines

from line 47
4747* **[cloudflared](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/concepts#components):** Cloudflare’s open-source tunnel connector. It initiates outbound-only connections to the [tunnel edge](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/concepts#components) and carries encrypted traffic from Anthropic to your proxy.
4848* **[Proxy](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/concepts#components):** Anthropic’s routing component. It terminates [inner TLS](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/concepts#components), validates that upstream IPs fall within an allowed range, and routes each request to the correct [upstream MCP server](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/concepts#components) based on hostname.
4949 
50Each MCP server you expose gets a hostname under your tunnel domain (for example, `docs.<your-tunnel-domain>`). You attach these hostnames to a Managed Agent session in the Claude Console, or pass them to the Messages API through the [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector).
50Each MCP server you expose gets a hostname under your tunnel domain (for example, `docs.<your-tunnel-domain>`). You attach these hostnames to an agent in the Claude Console, or pass them to the Messages API through the [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector).
5151 
5252## Prerequisites
5353 
from line 158
158158### Managed Agents (Console)
159159 
1601601. On the [Sessions](https://platform.claude.com/sessions) page (`platform.claude.com/sessions`) in the Claude Console, create a session and select **Create new agent** so you can edit the MCP server list.
1612. Click **+ MCP Server** and open the dropdown menu. Tunnels in the session’s workspace that have at least one active certificate appear at the top of the list, above the public connector catalog.
1612. Under **MCP servers**, click **MCP server** and open the dropdown menu. Tunnels in the session’s workspace that have at least one active certificate appear at the top of the list, above the public connector catalog.
1621623. Select the tunnel and supply the **Subdomain** that your proxy routes to a specific MCP server, and the **Path** the upstream MCP server expects. The **Resolves to** line shows the exact URL.
163 
164For the full procedure, see [Use the tunnel in an agent](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/console#use-the-tunnel-in-an-agent).
163165 
164166### Messages API
165167 

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

from line 495
495495 
496496### Content limits
497497 
498The `max_content_tokens` parameter limits the amount of content included in the context. If the fetched content exceeds this limit, the tool truncates it. This helps control token usage when fetching large documents. The limit applies to text content, not to binary content such as PDFs.
498The `max_content_tokens` parameter limits the amount of content included in the context. If the fetched content exceeds this limit, the tool truncates it. This helps control token usage when fetching large documents. The limit is approximate: the actual number of input tokens used can vary by a small amount. The limit applies to text content, not to binary content such as PDFs.
499499 
500<Note>
501 The `max_content_tokens` parameter limit is approximate. The actual number of input tokens used can vary by a small amount.
502</Note>
500If a fetched PDF would make the request exceed the [PDF page or size limits](https://platform.claude.com/docs/en/build-with-claude/pdf-support#check-pdf-requirements), the `web_fetch_tool_result` is an error with the `content_too_large` error code. PDFs and images already in the conversation count toward those limits, so removing them can let the fetch succeed.
503501 
504502On Claude Managed Agents, the `web_fetch` entry of the agent toolset also accepts `max_content_tokens`; see the [web tool settings](https://platform.claude.com/docs/en/managed-agents/tools-web-restrictions#settings).
505503 
from line 682
684682* `url_not_accessible`: Failed to fetch content (HTTP error)
685683* `too_many_requests`: Rate limit exceeded
686684* `unsupported_content_type`: Content type not supported (only text, HTML, and PDF)
685* `content_too_large`: Fetched PDF would make the request exceed the PDF page or size limits (see [Content limits](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#content-limits))
687686* `max_uses_exceeded`: Maximum web fetch tool uses exceeded
688687* `unavailable`: An internal error occurred
689688 

api/beta Changed · +4994 / -222 lines

## Beta › Organization › Claude Tag › Slack Channels ### Set Up Slack Channel ### List Slack Channels ### Get Slack Channel ### Update Slack Channel ### Remove Slack Channel ## Beta › Organization › Claude Tag › Slack Workspaces ### List Slack Workspaces ### Get Slack Workspace ### Update Slack Workspace ## Beta › Organization › Claude Tag › Bundles ### List Bundles ### Get Bundle ## Beta › Organization › Claude Tag › Bundles › Targets ### List Bundle Targets ### Attach Bundle ### Get Bundle Target ### Detach Bundle

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 9
99 
1010### Anthropic Beta
1111 
12- `AnthropicBeta = string or "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 51 more`
12- `AnthropicBeta = string or "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 52 more`
1313 
14 Beta names you can send in the `anthropic-beta` header.
15 
16 See [Beta headers](https://platform.claude.com/docs/en/api/beta-headers?sdk_languages=http) for how to send them and where to find the name a feature needs.
17 
1418 - `string`
1519 
1620 - `"message-batches-2024-09-24"`
from line 125
121125 
122126 - `"analytics-usage-cost-2026-08-24"`
123127 
128 - `"experimental-claude-tag-2026-10-21"`
129 
124130### Beta API Error
125131 
126132- `BetaAPIError object`
from line 611
605611 
606612 - `"analytics-usage-cost-2026-08-24"`
607613 
614 - `"experimental-claude-tag-2026-10-21"`
615 
608616- `"anthropic-workspace-id": optional string`
609617 
610618 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1100
10921100 
10931101 - `"analytics-usage-cost-2026-08-24"`
10941102 
1103 - `"experimental-claude-tag-2026-10-21"`
1104 
10951105- `"anthropic-workspace-id": optional string`
10961106 
10971107 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1568
15581568 
15591569 - `"analytics-usage-cost-2026-08-24"`
15601570 
1571 - `"experimental-claude-tag-2026-10-21"`
1572 
15611573- `"anthropic-user-profile-id": optional string`
15621574 
15631575 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 2469
24572469 
24582470 - `BetaEncryptedCodeExecutionResultBlockParam object`
24592471 
2460 Code execution result with encrypted stdout for PFC + web_search results.
2472 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
24612473 
24622474 - `type: "encrypted_code_execution_result"`
24632475 
from line 3005
29933005 
29943006 - `BetaCodeExecutionTool20260120 object`
29953007 
2996 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
3008 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
29973009 
3010 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
3011 
3012 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
3013 
29983014 - `type: "code_execution_20260120"`
29993015 
30003016 - `name: "code_execution"`
from line 5657
56415657 
56425658 - `BetaCodeExecutionTool20260120 object`
56435659 
5644 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
5660 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
56455661 
5662 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
5663 
5664 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
5665 
56465666 - `BetaCodeExecutionTool20260521 object`
56475667 
56485668 Code execution tool with REPL state persistence.
from line 6357
63376357 
63386358 - `BetaEncryptedCodeExecutionResultBlock object`
63396359 
6340 Code execution result with encrypted stdout for PFC + web_search results.
6360 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form.
63416361 
6362 The API returns this block in place of `code_execution_result` when the code called the web search tool.
6363 
6364 See the [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling?sdk_languages=http) to learn more about programmatic tool calling.
6365 
63426366 - `type: "encrypted_code_execution_result"`
63436367 
63446368 default: encrypted_code_execution_result
from line 6923
68996923 
69006924 - `BetaCodeExecutionTool20260120 object`
69016925 
6902 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
6926 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
69036927 
6928 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
6929 
6930 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
6931 
69046932 - `type: "code_execution_20260120"`
69056933 
69066934 - `name: "code_execution"`
from line 7613
75857613 - `BetaComputerToolset20260801 object`
75867614 
75877615 The computer toolset: a single `tools[]` entry (carrying no
7588 `name`) that declares the computer tool family. The model is
7589 served the family's tool with any members disabled via `configs`
7590 removed from its schema. Every member is enabled by default, zoom
7591 included. The single-tool options `display_number` and
7592 `enable_zoom` are not fields of a toolset entry — it carries only
7593 `type`, `configs`, and `cache_control`; zoom is controlled
7594 via `configs.zoom.enabled`.
7595 
7596 - `type: "computer_toolset_20260801"`
7597 
7598 - `cache_control: optional BetaCacheControlEphemeral or null`
7599 
7600 Create a cache control breakpoint at this content block.
7601 
7602 - `configs: optional BetaComputerToolsetConfigs or null`
7603 
7604 Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent.
7605 
7606 - `type: optional BetaComputerTypeConfig or null`
7607 
7608 `type`'s config overrides.
7609 
7610 - `defer_loading: optional boolean or null`
7611 
7612 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7613 
7614 - `enabled: optional boolean or null`
7615 
7616 Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
7617 
7618 - `cursor_position: optional BetaComputerCursorPositionConfig or null`
7619 
7620 `cursor_position`'s config overrides.
7621 
7622 - `defer_loading: optional boolean or null`
7623 
7624 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7625 
7626 - `enabled: optional boolean or null`
7627 
7628 Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
7629 
7630 - `double_click: optional BetaComputerDoubleClickConfig or null`
7631 
7632 `double_click`'s config overrides.
7633 
7634
7616 `name`) that declares the computer tool f

api/beta/agents Changed · +12 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 133
133133 
134134 - `"analytics-usage-cost-2026-08-24"`
135135 
136 - `"experimental-claude-tag-2026-10-21"`
137 
136138- `"anthropic-workspace-id": optional string`
137139 
138140 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2157
21552157 
21562158 - `"analytics-usage-cost-2026-08-24"`
21572159 
2160 - `"experimental-claude-tag-2026-10-21"`
2161 
21582162- `"anthropic-workspace-id": optional string`
21592163 
21602164 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3215
32113215 
32123216 - `"analytics-usage-cost-2026-08-24"`
32133217 
3218 - `"experimental-claude-tag-2026-10-21"`
3219 
32143220- `"anthropic-workspace-id": optional string`
32153221 
32163222 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4256
42504256 
42514257 - `"analytics-usage-cost-2026-08-24"`
42524258 
4259 - `"experimental-claude-tag-2026-10-21"`
4260 
42534261- `"anthropic-workspace-id": optional string`
42544262 
42554263 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 6255
62476255 
62486256 - `"analytics-usage-cost-2026-08-24"`
62496257 
6258 - `"experimental-claude-tag-2026-10-21"`
6259 
62506260- `"anthropic-workspace-id": optional string`
62516261 
62526262 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 8229
82198229 
82208230 - `name: string`
82218231 
8222 Name of the tool. Compared exactly, so upper and lower case letters are different.
8223 
8224 minLength: 1, maxLength: 128
8225 
8226 - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter or null`
8227 
8228 Which of the web_search and web_fetch t
8232 Name of the tool. Compared exactly, so u

api/beta/deployments Changed · +16 / -0 lines

from line 133
133133 
134134 - `"analytics-usage-cost-2026-08-24"`
135135 
136 - `"experimental-claude-tag-2026-10-21"`
137 
136138- `"anthropic-workspace-id": optional string`
137139 
138140 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1333
13311333 
13321334 - `"analytics-usage-cost-2026-08-24"`
13331335 
1336 - `"experimental-claude-tag-2026-10-21"`
1337 
13341338- `"anthropic-workspace-id": optional string`
13351339 
13361340 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2080
20762080 
20772081 - `"analytics-usage-cost-2026-08-24"`
20782082 
2083 - `"experimental-claude-tag-2026-10-21"`
2084 
20792085- `"anthropic-workspace-id": optional string`
20802086 
20812087 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2818
28122818 
28132819 - `"analytics-usage-cost-2026-08-24"`
28142820 
2821 - `"experimental-claude-tag-2026-10-21"`
2822 
28152823- `"anthropic-workspace-id": optional string`
28162824 
28172825 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3966
39583966 
39593967 - `"analytics-usage-cost-2026-08-24"`
39603968 
3969 - `"experimental-claude-tag-2026-10-21"`
3970 
39613971- `"anthropic-workspace-id": optional string`
39623972 
39633973 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4705
46954705 
46964706 - `"analytics-usage-cost-2026-08-24"`
46974707 
4708 - `"experimental-claude-tag-2026-10-21"`
4709 
46984710- `"anthropic-workspace-id": optional string`
46994711 
47004712 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5106
50945106 
50955107 - `"analytics-usage-cost-2026-08-24"`
50965108 
5109 - `"experimental-claude-tag-2026-10-21"`
5110 
50975111- `"anthropic-workspace-id": optional string`
50985112 
50995113 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5844
58305844 - `"message-threads-2026-08-12"`
58315845 
58325846 - `"analytics-usage-cost-2026-08-24"`
5847 
5848 - `"experimental-claude-tag-2026-10-21"`
58335849 
58345850- `"anthropic-workspace-id": optional string`
58355851 

api/beta/dreams Changed · +10 / -0 lines

from line 137
137137 
138138 - `"analytics-usage-cost-2026-08-24"`
139139 
140 - `"experimental-claude-tag-2026-10-21"`
141 
140142- `"anthropic-workspace-id": optional string`
141143 
142144 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 732
730732 
731733 - `"analytics-usage-cost-2026-08-24"`
732734 
735 - `"experimental-claude-tag-2026-10-21"`
736 
733737- `"anthropic-workspace-id": optional string`
734738 
735739 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1160
11561160 
11571161 - `"analytics-usage-cost-2026-08-24"`
11581162 
1163 - `"experimental-claude-tag-2026-10-21"`
1164 
11591165- `"anthropic-workspace-id": optional string`
11601166 
11611167 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1583
15771583 
15781584 - `"analytics-usage-cost-2026-08-24"`
15791585 
1586 - `"experimental-claude-tag-2026-10-21"`
1587 
15801588- `"anthropic-workspace-id": optional string`
15811589 
15821590 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2006
19982006 - `"message-threads-2026-08-12"`
19992007 
20002008 - `"analytics-usage-cost-2026-08-24"`
2009 
2010 - `"experimental-claude-tag-2026-10-21"`
20012011 
20022012- `"anthropic-workspace-id": optional string`
20032013 

api/beta/environments Changed · +30 / -4 lines

from line 133
133133 
134134 - `"analytics-usage-cost-2026-08-24"`
135135 
136 - `"experimental-claude-tag-2026-10-21"`
137 
136138- `"anthropic-workspace-id": optional string`
137139 
138140 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 618
616618 
617619 - `"analytics-usage-cost-2026-08-24"`
618620 
621 - `"experimental-claude-tag-2026-10-21"`
622 
619623- `"anthropic-workspace-id": optional string`
620624 
621625 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 959
955959 
956960 - `"analytics-usage-cost-2026-08-24"`
957961 
962 - `"experimental-claude-tag-2026-10-21"`
963 
958964- `"anthropic-workspace-id": optional string`
959965 
960966 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1291
12851291 
12861292 - `"analytics-usage-cost-2026-08-24"`
12871293 
1294 - `"experimental-claude-tag-2026-10-21"`
1295 
12881296- `"anthropic-workspace-id": optional string`
12891297 
12901298 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1745
17371745 
17381746 - `"analytics-usage-cost-2026-08-24"`
17391747 
1748 - `"experimental-claude-tag-2026-10-21"`
1749 
17401750- `"anthropic-workspace-id": optional string`
17411751 
17421752 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1920
19101920 
19111921 - `"analytics-usage-cost-2026-08-24"`
19121922 
1923 - `"experimental-claude-tag-2026-10-21"`
1924 
19131925- `"anthropic-workspace-id": optional string`
19141926 
19151927 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2722
27102722 
27112723 - `"analytics-usage-cost-2026-08-24"`
27122724 
2725 - `"experimental-claude-tag-2026-10-21"`
2726 
27132727- `"anthropic-workspace-id": optional string`
27142728 
27152729 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2994
29802994 
29812995 - `"analytics-usage-cost-2026-08-24"`
29822996 
2997 - `"experimental-claude-tag-2026-10-21"`
2998 
29832999- `"Anthropic-Worker-ID": optional string`
29843000 
29853001 Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console
from line 3252
32363252 
32373253 - `"analytics-usage-cost-2026-08-24"`
32383254 
3255 - `"experimental-claude-tag-2026-10-21"`
3256 
32393257#### Returns
32403258 
32413259- `BetaSelfHostedWork object`
from line 3517
34993517 
35003518 - `"analytics-usage-cost-2026-08-24"`
35013519 
3520 - `"experimental-claude-tag-2026-10-21"`
3521 
35023522#### Returns
35033523 
35043524- `BetaSelfHostedWorkHeartbeatResponse object`
from line 3533
35133533 
35143534 - `last_heartbeat: string`
35153535 
3516 RFC 3339 timestamp of the actual heartbeat from DB
3536 RFC 3339 timestamp of the most recent heartbeat recorded for this work item, or an empty string if none has been recorded
35173537 
35183538 - `lease_extended: boolean`
35193539 
from line 3715
36953715 
36963716 - `"analytics-usage-cost-2026-08-24"`
36973717 
3718 - `"experimental-claude-tag-2026-10-21"`
3719 
36983720- `"anthropic-workspace-id": optional string`
36993721 
37003722 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3995
39733995 
39743996 - `"analytics-usage-cost-2026-08-24"`
39753997 
3998 - `"experimental-claude-tag-2026-10-21"`
3999 
39764000#### Returns
39774001 
39784002- `BetaSelfHostedWorkListResponse object`
from line 4258
42344258 
42354259 - `"analytics-usage-cost-2026-08-24"`
42364260 
4261 - `"experimental-claude-tag-2026-10-21"`
4262 
42374263- `"anthropic-workspace-id": optional string`
42384264 
42394265 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4526
45004526 
45014527 - `"analytics-usage-cost-2026-08-24"`
45024528 
4529 - `"experimental-claude-tag-2026-10-21"`
4530 
45034531- `"anthropic-workspace-id": optional string`
45044532 
45054533 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4540
45124540 
45134541 Statistics about the work queue for an environment.
45144542 
4515 Uses Redis Stream consumer group metrics for O(1) queries.
4516 
45174543 - `type: "work_queue_stats"`
45184544 
45194545 The type of object
from line 4548
45224548 
45234549 - `depth: number`
45244550 
4525 Number of work items waiting to be picked up (lag from consumer group)
4551 Number of work items waiting to be picked up
45264552 
45274553 - `oldest_queued_at: string or null`
45284554 

api/beta/environments/work Changed · +20 / -8 lines

from line 141
141141 
142142 - `"analytics-usage-cost-2026-08-24"`
143143 
144 - `"experimental-claude-tag-2026-10-21"`
145 
144146- `"anthropic-workspace-id": optional string`
145147 
146148 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 413
411413 
412414 - `"analytics-usage-cost-2026-08-24"`
413415 
416 - `"experimental-claude-tag-2026-10-21"`
417 
414418- `"Anthropic-Worker-ID": optional string`
415419 
416420 Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console
from line 671
667671 
668672 - `"analytics-usage-cost-2026-08-24"`
669673 
674 - `"experimental-claude-tag-2026-10-21"`
675 
670676### Returns
671677 
672678- `BetaSelfHostedWork object`
from line 936
930936 
931937 - `"analytics-usage-cost-2026-08-24"`
932938 
939 - `"experimental-claude-tag-2026-10-21"`
940 
933941### Returns
934942 
935943- `BetaSelfHostedWorkHeartbeatResponse object`
from line 952
944952 
945953 - `last_heartbeat: string`
946954 
947 RFC 3339 timestamp of the actual heartbeat from DB
955 RFC 3339 timestamp of the most recent heartbeat recorded for this work item, or an empty string if none has been recorded
948956 
949957 - `lease_extended: boolean`
950958 
from line 1134
11261134 
11271135 - `"analytics-usage-cost-2026-08-24"`
11281136 
1137 - `"experimental-claude-tag-2026-10-21"`
1138 
11291139- `"anthropic-workspace-id": optional string`
11301140 
11311141 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1414
14041414 
14051415 - `"analytics-usage-cost-2026-08-24"`
14061416 
1417 - `"experimental-claude-tag-2026-10-21"`
1418 
14071419### Returns
14081420 
14091421- `BetaSelfHostedWorkListResponse object`
from line 1677
16651677 
16661678 - `"analytics-usage-cost-2026-08-24"`
16671679 
1680 - `"experimental-claude-tag-2026-10-21"`
1681 
16681682- `"anthropic-workspace-id": optional string`
16691683 
16701684 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1945
19311945 
19321946 - `"analytics-usage-cost-2026-08-24"`
19331947 
1948 - `"experimental-claude-tag-2026-10-21"`
1949 
19341950- `"anthropic-workspace-id": optional string`
19351951 
19361952 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1959
19431959 
19441960 Statistics about the work queue for an environment.
19451961 
1946 Uses Redis Stream consumer group metrics for O(1) queries.
1947 
19481962 - `type: "work_queue_stats"`
19491963 
19501964 The type of object
from line 1967
19531967 
19541968 - `depth: number`
19551969 
1956 Number of work items waiting to be picked up (lag from consumer group)
1970 Number of work items waiting to be picked up
19571971 
19581972 - `oldest_queued_at: string or null`
19591973 
from line 2102
20882102 
20892103 - `last_heartbeat: string`
20902104 
2091 RFC 3339 timestamp of the actual heartbeat from DB
2105 RFC 3339 timestamp of the most recent heartbeat recorded for this work item, or an empty string if none has been recorded
20922106 
20932107 - `lease_extended: boolean`
20942108 
from line 2218
22042218 
22052219 Statistics about the work queue for an environment.
22062220 
2207 Uses Redis Stream consumer group metrics for O(1) queries.
2208 
22092221 - `type: "work_queue_stats"`
22102222 
22112223 The type of object
from line 2226
22142226 
22152227 - `depth: number`
22162228 
2217 Number of work items waiting to be picked up (lag from consumer group)
2229 Number of work items waiting to be picked up
22182230 
22192231 - `oldest_queued_at: string or null`
22202232 

api/beta/environments/work/stats Changed · +3 / -3 lines

from line 135
135135 
136136 - `"analytics-usage-cost-2026-08-24"`
137137 
138 - `"experimental-claude-tag-2026-10-21"`
139 
138140- `"anthropic-workspace-id": optional string`
139141 
140142 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 149
147149 
148150 Statistics about the work queue for an environment.
149151 
150 Uses Redis Stream consumer group metrics for O(1) queries.
151 
152152 - `type: "work_queue_stats"`
153153 
154154 The type of object
from line 157
157157 
158158 - `depth: number`
159159 
160 Number of work items waiting to be picked up (lag from consumer group)
160 Number of work items waiting to be picked up
161161 
162162 - `oldest_queued_at: string or null`
163163 

api/beta/files Changed · +10 / -0 lines

from line 133
133133 
134134 - `"analytics-usage-cost-2026-08-24"`
135135 
136 - `"experimental-claude-tag-2026-10-21"`
137 
136138- `"anthropic-workspace-id": optional string`
137139 
138140 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 398
396398 
397399 - `"analytics-usage-cost-2026-08-24"`
398400 
401 - `"experimental-claude-tag-2026-10-21"`
402 
399403- `"anthropic-workspace-id": optional string`
400404 
401405 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 642
638642 
639643 - `"analytics-usage-cost-2026-08-24"`
640644 
645 - `"experimental-claude-tag-2026-10-21"`
646 
641647- `"anthropic-workspace-id": optional string`
642648 
643649 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 792
786792 
787793 - `"analytics-usage-cost-2026-08-24"`
788794 
795 - `"experimental-claude-tag-2026-10-21"`
796 
789797- `"anthropic-workspace-id": optional string`
790798 
791799 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1024
10161024 - `"message-threads-2026-08-12"`
10171025 
10181026 - `"analytics-usage-cost-2026-08-24"`
1027 
1028 - `"experimental-claude-tag-2026-10-21"`
10191029 
10201030- `"anthropic-workspace-id": optional string`
10211031 

api/beta/memory_stores Changed · +28 / -0 lines

from line 133
133133 
134134 - `"analytics-usage-cost-2026-08-24"`
135135 
136 - `"experimental-claude-tag-2026-10-21"`
137 
136138- `"anthropic-workspace-id": optional string`
137139 
138140 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 401
399401 
400402 - `"analytics-usage-cost-2026-08-24"`
401403 
404 - `"experimental-claude-tag-2026-10-21"`
405 
402406- `"anthropic-workspace-id": optional string`
403407 
404408 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 626
622626 
623627 - `"analytics-usage-cost-2026-08-24"`
624628 
629 - `"experimental-claude-tag-2026-10-21"`
630 
625631- `"anthropic-workspace-id": optional string`
626632 
627633 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 846
840846 
841847 - `"analytics-usage-cost-2026-08-24"`
842848 
849 - `"experimental-claude-tag-2026-10-21"`
850 
843851- `"anthropic-workspace-id": optional string`
844852 
845853 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1090
10821090 
10831091 - `"analytics-usage-cost-2026-08-24"`
10841092 
1093 - `"experimental-claude-tag-2026-10-21"`
1094 
10851095- `"anthropic-workspace-id": optional string`
10861096 
10871097 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1265
12551265 
12561266 - `"analytics-usage-cost-2026-08-24"`
12571267 
1268 - `"experimental-claude-tag-2026-10-21"`
1269 
12581270- `"anthropic-workspace-id": optional string`
12591271 
12601272 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1566
15541566 
15551567 - `"analytics-usage-cost-2026-08-24"`
15561568 
1569 - `"experimental-claude-tag-2026-10-21"`
1570 
15571571- `"anthropic-workspace-id": optional string`
15581572 
15591573 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1861
18471861 
18481862 - `"analytics-usage-cost-2026-08-24"`
18491863 
1864 - `"experimental-claude-tag-2026-10-21"`
1865 
18501866- `"anthropic-workspace-id": optional string`
18511867 
18521868 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2138
21222138 
21232139 - `"analytics-usage-cost-2026-08-24"`
21242140 
2141 - `"experimental-claude-tag-2026-10-21"`
2142 
21252143- `"anthropic-workspace-id": optional string`
21262144 
21272145 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2390
23722390 
23732391 - `"analytics-usage-cost-2026-08-24"`
23742392 
2393 - `"experimental-claude-tag-2026-10-21"`
2394 
23752395- `"anthropic-workspace-id": optional string`
23762396 
23772397 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2662
26422662 
26432663 - `"analytics-usage-cost-2026-08-24"`
26442664 
2665 - `"experimental-claude-tag-2026-10-21"`
2666 
26452667- `"anthropic-workspace-id": optional string`
26462668 
26472669 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2915
28932915 
28942916 - `"analytics-usage-cost-2026-08-24"`
28952917 
2918 - `"experimental-claude-tag-2026-10-21"`
2919 
28962920- `"anthropic-workspace-id": optional string`
28972921 
28982922 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3253
32293253 
32303254 - `"analytics-usage-cost-2026-08-24"`
32313255 
3256 - `"experimental-claude-tag-2026-10-21"`
3257 
32323258- `"anthropic-workspace-id": optional string`
32333259 
32343260 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3571
35453571 - `"message-threads-2026-08-12"`
35463572 
35473573 - `"analytics-usage-cost-2026-08-24"`
3574 
3575 - `"experimental-claude-tag-2026-10-21"`
35483576 
35493577- `"anthropic-workspace-id": optional string`
35503578 

api/beta/memory_stores/memories Changed · +10 / -0 lines

from line 155
155155 
156156 - `"analytics-usage-cost-2026-08-24"`
157157 
158 - `"experimental-claude-tag-2026-10-21"`
159 
158160- `"anthropic-workspace-id": optional string`
159161 
160162 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 450
448450 
449451 - `"analytics-usage-cost-2026-08-24"`
450452 
453 - `"experimental-claude-tag-2026-10-21"`
454 
451455- `"anthropic-workspace-id": optional string`
452456 
453457 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 727
723727 
724728 - `"analytics-usage-cost-2026-08-24"`
725729 
730 - `"experimental-claude-tag-2026-10-21"`
731 
726732- `"anthropic-workspace-id": optional string`
727733 
728734 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 979
973979 
974980 - `"analytics-usage-cost-2026-08-24"`
975981 
982 - `"experimental-claude-tag-2026-10-21"`
983 
976984- `"anthropic-workspace-id": optional string`
977985 
978986 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1250
12421250 - `"message-threads-2026-08-12"`
12431251 
12441252 - `"analytics-usage-cost-2026-08-24"`
1253 
1254 - `"experimental-claude-tag-2026-10-21"`
12451255 
12461256- `"anthropic-workspace-id": optional string`
12471257 

api/beta/memory_stores/memory_versions Changed · +6 / -0 lines

from line 213
213213 
214214 - `"analytics-usage-cost-2026-08-24"`
215215 
216 - `"experimental-claude-tag-2026-10-21"`
217 
216218- `"anthropic-workspace-id": optional string`
217219 
218220 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 551
549551 
550552 - `"analytics-usage-cost-2026-08-24"`
551553 
554 - `"experimental-claude-tag-2026-10-21"`
555 
552556- `"anthropic-workspace-id": optional string`
553557 
554558 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 869
865869 - `"message-threads-2026-08-12"`
866870 
867871 - `"analytics-usage-cost-2026-08-24"`
872 
873 - `"experimental-claude-tag-2026-10-21"`
868874 
869875- `"anthropic-workspace-id": optional string`
870876 

api/beta/messages Changed · +218 / -50 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 137
137137 
138138 - `"analytics-usage-cost-2026-08-24"`
139139 
140 - `"experimental-claude-tag-2026-10-21"`
141 
140142- `"anthropic-user-profile-id": optional string`
141143 
142144 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 1038
10361038 
10371039 - `BetaEncryptedCodeExecutionResultBlockParam object`
10381040 
1039 Code execution result with encrypted stdout for PFC + web_search results.
1041 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
10401042 
10411043 - `type: "encrypted_code_execution_result"`
10421044 
from line 1574
15721574 
15731575 - `BetaCodeExecutionTool20260120 object`
15741576 
1575 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
1577 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
15761578 
1579 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
1580 
1581 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
1582 
15771583 - `type: "code_execution_20260120"`
15781584 
15791585 - `name: "code_execution"`
from line 4226
42204226 
42214227 - `BetaCodeExecutionTool20260120 object`
42224228 
4223 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
4229 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
42244230 
4231 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
4232 
4233 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
4234 
42254235 - `BetaCodeExecutionTool20260521 object`
42264236 
42274237 Code execution tool with REPL state persistence.
from line 4926
49164926 
49174927 - `BetaEncryptedCodeExecutionResultBlock object`
49184928 
4919 Code execution result with encrypted stdout for PFC + web_search results.
4929 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form.
49204930 
4931 The API returns this block in place of `code_execution_result` when the code called the web search tool.
4932 
4933 See the [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling?sdk_languages=http) to learn more about programmatic tool calling.
4934 
49214935 - `type: "encrypted_code_execution_result"`
49224936 
49234937 default: encrypted_code_execution_result
from line 5492
54785492 
54795493 - `BetaCodeExecutionTool20260120 object`
54805494 
5481 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
5495 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
54825496 
5497 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
5498 
5499 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
5500 
54835501 - `type: "code_execution_20260120"`
54845502 
54855503 - `name: "code_execution"`
from line 7020
70027020 
70037021 - `response_inclusion: optional "full" or "excluded"`
70047022 
7005 How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn.
7006 
7007 - `"full"`
7008 
7009 - `"excluded"`
7010 
7011 - `strict: optional boolean`
7012 
7013 When true, guarantees schema validation on tool names and inputs
7014 
7015 - `url_sources: optional BetaWebFetchURLSources or null`
7016 
7017 Which sources contribute to the set of URLs the tool may fetch. Omitted means every source.
7018 
7019 - `use_cache: optional boolean`
7020 
7021 Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources.
7022 
7023 - `BetaAdvisorTool20260301 object`
7024 
7025 - `type: "advisor_20260301"`
7026 
7027 - `model: Model`
7028 
7029 The model that will complete your prompt.
7030 
7031 See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options.
7032 
7033 - `"claude-haiku-5-5"`
7034 
7035 Fastest model for high-volume, real-time tasks
7036 
7037 - `"claude-sonnet-5-5"`
7038 
7039 Efficient model for coding and agents
7040 
7041 - `"claude-fable-5-1"`
7042 
7043 Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows
7044 
7045 - `"claude-opus-5-5"`
7046 
7047 Powerful intelligence for coding, knowledge work, and long-running agents
7048 
7049
7023 How this tool's result blocks appear in the

api/beta/messages/batches Changed · +63 / -11 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 137
137137 
138138 - `"analytics-usage-cost-2026-08-24"`
139139 
140 - `"experimental-claude-tag-2026-10-21"`
141 
140142- `"anthropic-user-profile-id": optional string`
141143 
142144 The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored.
from line 1058
10561058 
10571059 - `BetaEncryptedCodeExecutionResultBlockParam object`
10581060 
1059 Code execution result with encrypted stdout for PFC + web_search results.
1061 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
10601062 
10611063 - `type: "encrypted_code_execution_result"`
10621064 
from line 1594
15921594 
15931595 - `BetaCodeExecutionTool20260120 object`
15941596 
1595 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
1597 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
15961598 
1599 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
1600 
1601 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
1602 
15971603 - `type: "code_execution_20260120"`
15981604 
15991605 - `name: "code_execution"`
from line 4246
42404246 
42414247 - `BetaCodeExecutionTool20260120 object`
42424248 
4243 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
4249 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
42444250 
4251 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
4252 
4253 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
4254 
42454255 - `BetaCodeExecutionTool20260521 object`
42464256 
42474257 Code execution tool with REPL state persistence.
from line 4623
46134623 
46144624 - `"analytics-usage-cost-2026-08-24"`
46154625 
4626 - `"experimental-claude-tag-2026-10-21"`
4627 
46164628- `"anthropic-workspace-id": optional string`
46174629 
46184630 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4921
49094921 
49104922 - `"analytics-usage-cost-2026-08-24"`
49114923 
4924 - `"experimental-claude-tag-2026-10-21"`
4925 
49124926- `"anthropic-workspace-id": optional string`
49134927 
49144928 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5228
52145228 
52155229 - `"analytics-usage-cost-2026-08-24"`
52165230 
5231 - `"experimental-claude-tag-2026-10-21"`
5232 
52175233- `"anthropic-workspace-id": optional string`
52185234 
52195235 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5517
55015517 
55025518 - `"analytics-usage-cost-2026-08-24"`
55035519 
5520 - `"experimental-claude-tag-2026-10-21"`
5521 
55045522- `"anthropic-workspace-id": optional string`
55055523 
55065524 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5698
56805698 
56815699 - `"analytics-usage-cost-2026-08-24"`
56825700 
5701 - `"experimental-claude-tag-2026-10-21"`
5702 
56835703- `"anthropic-workspace-id": optional string`
56845704 
56855705 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 6347
63276347 
63286348 - `BetaEncryptedCodeExecutionResultBlock object`
63296349 
6330 Code execution result with encrypted stdout for PFC + web_search results.
6350 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form.
63316351 
6352 The API returns this block in place of `code_execution_result` when the code called the web search tool.
6353 
6354 See the [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling?sdk_languages=http) to learn more about programmatic tool calling.
6355 
63326356 - `type: "encrypted_code_execution_result"`
63336357 
63346358 default: encrypted_code_execution_result
from line 6913
68896913 
68906914 - `BetaCodeExecutionTool20260120 object`
68916915 
6892 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
6916 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
68936917 
6918 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
6919 
6920 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
6921 
68946922 - `type: "code_execution_20260120"`
68956923 
68966924 - `name: "code_execution"`
from line 7232
72047232 
72057233 `new_tab`'s config overrides.
72067234 
7207 - `defer_loading: optional boolean or null`
7208 
7209 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7210 
7211 - `enabled: optional boolean or null`
7212 
7213 Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
7214 
7215 - `read_console: optional BetaBrowserReadConsoleConfig or null`
7216 
7217 `read_console`'s config overrides.
7218 
7219 - `defer_loading: optional boolean or null`
7220 
7221 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7222 
7223 - `enabled: optional boolean or null`
7224 
7225 Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
7226 
7227 - `read_network: optional BetaBrowserReadNetworkConfig or null`
7228 
7229 `read_network`'s config overrides.
7230 
7231 - `defer_loading: optional boolean or null`
7232 
7233 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7234 
7235 - `enabled: optional boolean or null`
7236 
7237 Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
7238 
7239 - `read_page: optional BetaBrowserReadPageConfig or null`
7240 
7241 `read_page`'s config overrides.
7242 
7243 - `defer_loading: optional boolean or null`
7244 
7245 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7246 
7247 - `enabled: optional boolean or null`
7248 
7249 Whether this member i
7235 - `defer_loading: optiona

api/beta/messages/batches/create Changed · +13 / -3 lines

from line 135
135135 
136136 - `"analytics-usage-cost-2026-08-24"`
137137 
138 - `"experimental-claude-tag-2026-10-21"`
139 
138140- `"anthropic-user-profile-id": optional string`
139141 
140142 The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored.
from line 1056
10541056 
10551057 - `BetaEncryptedCodeExecutionResultBlockParam object`
10561058 
1057 Code execution result with encrypted stdout for PFC + web_search results.
1059 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
10581060 
10591061 - `type: "encrypted_code_execution_result"`
10601062 
from line 1592
15901592 
15911593 - `BetaCodeExecutionTool20260120 object`
15921594 
1593 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
1595 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
15941596 
1597 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
1598 
1599 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
1600 
15951601 - `type: "code_execution_20260120"`
15961602 
15971603 - `name: "code_execution"`
from line 4244
42384244 
42394245 - `BetaCodeExecutionTool20260120 object`
42404246 
4241 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
4247 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
4248 
4249 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
4250 
4251 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
42424252 
42434253 - `BetaCodeExecutionTool20260521 object`
42444254 

api/beta/messages/batches/results Changed · +12 / -2 lines

from line 141
141141 
142142 - `"analytics-usage-cost-2026-08-24"`
143143 
144 - `"experimental-claude-tag-2026-10-21"`
145 
144146- `"anthropic-workspace-id": optional string`
145147 
146148 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 790
788790 
789791 - `BetaEncryptedCodeExecutionResultBlock object`
790792 
791 Code execution result with encrypted stdout for PFC + web_search results.
793 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form.
792794 
795 The API returns this block in place of `code_execution_result` when the code called the web search tool.
796 
797 See the [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling?sdk_languages=http) to learn more about programmatic tool calling.
798 
793799 - `type: "encrypted_code_execution_result"`
794800 
795801 default: encrypted_code_execution_result
from line 1356
13501356 
13511357 - `BetaCodeExecutionTool20260120 object`
13521358 
1353 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
1359 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
1360 
1361 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
1362 
1363 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
13541364 
13551365 - `type: "code_execution_20260120"`
13561366 

api/beta/messages/count_tokens Changed · +13 / -3 lines

from line 135
135135 
136136 - `"analytics-usage-cost-2026-08-24"`
137137 
138 - `"experimental-claude-tag-2026-10-21"`
139 
138140- `"anthropic-user-profile-id": optional string`
139141 
140142 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 1024
10221024 
10231025 - `BetaEncryptedCodeExecutionResultBlockParam object`
10241026 
1025 Code execution result with encrypted stdout for PFC + web_search results.
1027 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
10261028 
10271029 - `type: "encrypted_code_execution_result"`
10281030 
from line 1560
15581560 
15591561 - `BetaCodeExecutionTool20260120 object`
15601562 
1561 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
1563 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
15621564 
1565 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
1566 
1567 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
1568 
15631569 - `type: "code_execution_20260120"`
15641570 
15651571 - `name: "code_execution"`
from line 3993
39873993 
39883994 - `BetaCodeExecutionTool20260120 object`
39893995 
3990 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
3996 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
3997 
3998 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
3999 
4000 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
39914001 
39924002 - `BetaCodeExecutionTool20260521 object`
39934003 

api/beta/messages/create Changed · +23 / -5 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 135
135135 
136136 - `"analytics-usage-cost-2026-08-24"`
137137 
138 - `"experimental-claude-tag-2026-10-21"`
139 
138140- `"anthropic-user-profile-id": optional string`
139141 
140142 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 1036
10341036 
10351037 - `BetaEncryptedCodeExecutionResultBlockParam object`
10361038 
1037 Code execution result with encrypted stdout for PFC + web_search results.
1039 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
10381040 
10391041 - `type: "encrypted_code_execution_result"`
10401042 
from line 1572
15701572 
15711573 - `BetaCodeExecutionTool20260120 object`
15721574 
1573 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
1575 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
15741576 
1577 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
1578 
1579 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
1580 
15751581 - `type: "code_execution_20260120"`
15761582 
15771583 - `name: "code_execution"`
from line 4224
42184224 
42194225 - `BetaCodeExecutionTool20260120 object`
42204226 
4221 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
4227 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
42224228 
4229 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
4230 
4231 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
4232 
42234233 - `BetaCodeExecutionTool20260521 object`
42244234 
42254235 Code execution tool with REPL state persistence.
from line 4924
49144924 
49154925 - `BetaEncryptedCodeExecutionResultBlock object`
49164926 
4917 Code execution result with encrypted stdout for PFC + web_search results.
4927 The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form.
49184928 
4929 The API returns this block in place of `code_execution_result` when the code called the web search tool.
4930 
4931 See the [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling?sdk_languages=http) to learn more about programmatic tool calling.
4932 
49194933 - `type: "encrypted_code_execution_result"`
49204934 
49214935 default: encrypted_code_execution_result
from line 5490
54765490 
54775491 - `BetaCodeExecutionTool20260120 object`
54785492 
5479 Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
5493 A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
54805494 
5495 REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
5496 
5497 See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool?sdk_languages=http#tool-versions) to learn what each tool version adds.
5498 
54815499 - `type: "code_execution_20260120"`
54825500 
54835501 - `name: "code_execution"`
from line 7018
70007018 
70017019 - `response_inclusion: optional "full" or "excluded"`
70027020 
7003 How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn.
7004 
7005 - `"full"`
7006 
7007 - `"excluded"`
7008 
7009 - `strict: optional boolean`
7010 
7011 When true, guarantees schema validation on tool names and inputs
7012 
7013 - `url_sources: optional BetaWebFetchURLSources or null`
7014 
7015 Which sources contribute to the set of URLs the tool may fetch. Omitted means every source.
7016 
7017 - `use_cache: optional boolean`
7018 
7019 Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources.
7020 
7021 - `BetaAdvisorTool20260301 object`
7022 
7023 - `type: "advisor_20260301"`
7024 
7025 - `model: Model`
7026 
7027 The model that will complete your prompt.
7028 
7029 See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options.
7030 
7031 - `"claude-haiku-5-5"`
7032 
7033 Fastest model for high-volume, real-time tasks
7034 
7035 - `"claude-sonnet-5-5"`
7036 
7037 Efficient model for coding and agents
7038 
7039 - `"claude-fable-5-1"`
7040 
7041 Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows
7042 
7043 - `"claude-opus-5-5"`
7044 
7045 Powerful intelligence for coding, knowledge work, and long-running agents
7046 
7047
7021 How this tool's result blocks appear in the

api/beta/organization Changed · +4688 / -204 lines

## Organization › Claude Tag › Slack Channels ### Set Up Slack Channel ### List Slack Channels ### Get Slack Channel ### Update Slack Channel ### Remove Slack Channel ## Organization › Claude Tag › Slack Workspaces ### List Slack Workspaces ### Get Slack Workspace ### Update Slack Workspace ## Organization › Claude Tag › Bundles ### List Bundles ### Get Bundle ## Organization › Claude Tag › Bundles › Targets ### List Bundle Targets ### Attach Bundle ### Get Bundle Target ### Detach Bundle

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.

from line 306
306306 "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT",
307307 "created_at": "2024-10-30T23:58:27.427722Z",
308308 "created_by": {
309 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
309 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
310310 "type": "user"
311311 },
312312 "expires_at": "2024-10-30T23:58:27.427722Z",
from line 314
314314 "partial_key_hint": "sk-ant-api03-R2D...igAA",
315315 "principal": {
316316 "type": "user_actor",
317 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
317 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
318318 },
319319 "scope": {
320320 "type": "workspace",
from line 483
483483 "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT",
484484 "created_at": "2024-10-30T23:58:27.427722Z",
485485 "created_by": {
486 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
486 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
487487 "type": "user"
488488 },
489489 "expires_at": "2024-10-30T23:58:27.427722Z",
from line 491
491491 "partial_key_hint": "sk-ant-api03-R2D...igAA",
492492 "principal": {
493493 "type": "user_actor",
494 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
494 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
495495 },
496496 "scope": {
497497 "type": "workspace",
from line 675
675675 "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT",
676676 "created_at": "2024-10-30T23:58:27.427722Z",
677677 "created_by": {
678 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
678 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
679679 "type": "user"
680680 },
681681 "expires_at": "2024-10-30T23:58:27.427722Z",
from line 683
683683 "partial_key_hint": "sk-ant-api03-R2D...igAA",
684684 "principal": {
685685 "type": "user_actor",
686 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
686 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
687687 },
688688 "scope": {
689689 "type": "workspace",
from line 722
722722 
723723 - `kms_arn: string`
724724 
725 Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.
725 Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.
726726 
727727 maxLength: 2048
728728 
from line 734
734734 
735735 **Deprecated**
736736 
737 IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.
737 IAM role ARN. Deprecated; this field is ignored.
738738 
739739 - `BetaGCPExternalKeyConfig object`
740740 
from line 776
776776 
777777 Data residency geo. Only `us` is supported.
778778 
779- `user_profile_id: optional string or null`
780 
781 ID of a user profile to bind the key to. Omit this field for a key that isn't bound to a user profile. Such a key can be attached to a Workspace whatever its user profile. The binding cannot be changed later. A key bound to a user profile can only be attached to a Workspace that has the same user profile.
782 
779783#### Returns
780784 
781785- `BetaExternalKey object`
from line 796
792796 
793797 - `id: string`
794798 
795 Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN.
799 Identifier of the external key config: a tagged ID prefixed `ekey_`, or, on Claude Platform on AWS, an AWS KMS key's ARN.
796800 
797801 - `attachment: BetaExternalKeyAttachedAttachment or BetaExternalKeyUnattachedAttachment`
798802 
from line 824
820824 
821825 - `geo: string`
822826 
823 Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips.
827 Data residency geo. Selects the region that handles this key's encrypt/decrypt roundtrips.
824828 
825829 - `provider_config: BetaAWSExternalKeyConfig or BetaGCPExternalKeyConfig or BetaAzureExternalKeyConfig`
826830 
from line 836
832836 
833837 - `kms_arn: string`
834838 
835 Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.
839 Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.
836840 
837841 maxLength: 2048
838842 
from line 848
844848 
845849 **Deprecated**
846850 
847 IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.
851 IAM role ARN. Deprecated; this field is ignored.
848852 
849853 - `BetaGCPExternalKeyConfig object`
850854 
from line 882
878882 
879883 format: date-time
880884 
885 - `user_profile_id: string or null`
886 
887 ID of the user profile the key is bound to, or null if the key is not bound to one. A key bound to a user profile can only be attached to a Workspace that has the same user profile. A key that isn't bound can be attached to a Workspace whatever its user profile.
888 
881889#### Example
882890 
883891```bash
from line 897
889897 "provider_config": {
890898 "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222",
891899 "type": "aws"
892 }
900 },
901 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
893902 }'
894903```
895904 
from line 920
911920 "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek"
912921 },
913922 "type": "external_key",
914 "updated_at": "2024-10-30T23:58:27.427722Z"
923 "updated_at": "2024-10-30T23:58:27.427722Z",
924 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
915925}
916926```
917927 
from line 964
954964 
955965 - `id: string`
956966 
957 Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN.
967 Identifier of the external key config: a tagged ID prefixed `ekey_`, or, on Claude Platform on AWS, an AWS KMS key's ARN.
958968 
959969 - `attachment: BetaExternalKeyAttachedAttachment or BetaExternalKeyUnattachedAttachment`
960970 
from line 992
982992 
983993 - `geo: string`
984994 
985 Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips.
995 Data residency geo. Selects the region that handles this key's encrypt/decrypt roundtrips.
986996 
987997 - `provider_config: BetaAWSExternalKeyConfig or BetaGCPExternalKeyConfig or BetaAzureExternalKeyConfig`
988998 
from line 1004
9941004 
9951005 - `kms_arn: string`
9961006 
997 Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.
1007 Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.
9981008 
9991009 maxLength: 2048
10001010 
from line 1016
10061016 
10071017 **Deprecated**
10081018 
1009 IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.
1019 IAM role ARN. Deprecated; this field is ignored.
10101020 
10111021 - `BetaGCPExternalKeyConfig object`
10121022 
from line 1050
10401050 
10411051 format: date-time
10421052 
1053 - `user_profile_id: string or null`
1054 
1055 ID of the user profile the key is bound to, or null if the key is not bound to one. A key bound to a user profile can only be attached to a Workspace that has the same user profile. A key that isn't bound can be attached to a Workspace whatever its user profile.
1056 
10431057- `next_page: string or null`
10441058 
10451059 Opaque cursor for the next page, or null if no more results. Pass as `?page=` to fetch the next page.
from line 1086
10721086 "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek"
10731087 },
10741088 "type": "external_key",
1075 "updated_at": "2024-10-30T23:58:27.427722Z"
1089 "updated_at": "2024-10-30T23:58:27.427722Z",
1090 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
10761091 }
10771092 ],
10781093 "next_page": "next_page"
from line 1132
11171132 
11181133 - `id: string`
11191134 
1120 Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN.
1135 Identifier of the external key config: a tagged ID prefixed `ekey_`, or, on Claude Platform on AWS, an AWS KMS key's ARN.
11211136 
11221137 - `attachment: BetaExternalKeyAttachedAttachment or BetaExternalKeyUnattachedAttachment`
11231138 
from line 1160
11451160 
11461161 - `geo: string`
11471162 
1148 Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips.
1163 Data residency geo. Selects the region that handles this key's encrypt/decrypt roundtrips.
11491164 
11501165 - `provider_config: BetaAWSExternalKeyConfig or BetaGCPExternalKeyConfig or BetaAzureExternalKeyConfig`
11511166 
from line 1172
11571172 
11581173 - `kms_arn: string`
11591174 
1160 Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.
1175 Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.
11611176 
11621177 maxLength: 2048
11631178 
from line 1184
11691184 
11701185 **Deprecated**
11711186 
1172 IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.
1187 IAM role ARN. Deprecated; this field is ignored.
11731188 
11741189 - `BetaGCPExternalKeyConfig object`
11751190 
from line 1218
12031218 
12041219 format: date-time
12051220 
1221 - `user_profile_id: string or null`
1222 
1223 ID of the user profile the key is bound to, or null if the key is not bound to one. A key bound to a user profile can only be attached to a Workspace that has the same user profile. A key that isn't bound can be attached to a Workspace whatever its user profile.
1224 
12061225#### Example
12071226 
12081227```bash
from line 1248
12291248 "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek"
12301249 },
12311250 "type": "external_key",
1232 "updated_at": "2024-10-30T23:58:27.427722Z"
1251 "updated_at": "2024-10-30T23:58:27.427722Z",
1252 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
12331253}
12341254```
12351255 
from line 1301
12811301 
12821302 - `kms_arn: string`
12831303 
1284 Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.
1304 Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.
12851305 
12861306 maxLength: 2048
12871307 
from line 1313
12931313 
12941314 **Deprecated**
12951315 
1296 IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.
1316 IAM role ARN. Deprecated; this field is ignored.
12971317 
12981318 - `BetaGCPExternalKeyConfig object`
12991319 
from line 1361
13411361 
13421362 - `id: string`
13431363 
1344 Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN.
1364 Identifier of the external key config: a tagged ID prefixed `ekey_`, or, on Claude Platform on AWS, an AWS KMS key's ARN.
13451365 
13461366 - `attachment: BetaExternalKeyAttachedAttachment or BetaExternalKeyUnattachedAttachment`
13471367 
from line 1389
13691389 
13701390 - `geo: string`
13711391 
1372 Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips.
1392 Data residency geo. Selects the region that handles this key's encrypt/decrypt roundtrips.
13731393 
13741394 - `provider_config: BetaAWSExternalKeyConfig or BetaGCPExternalKeyConfig or BetaAzureExternalKeyConfig`
13751395 
from line 1401
13811401 
13821402 - `kms_arn: string`
13831403 
1384 Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.
1404 Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.
13851405 
13861406 maxLength: 2048
13871407 
from line 1413
13931413 
13941414 **Deprecated**
13951415 
1396 IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.
1416 IAM role ARN. Deprecated; this field is ignored.
13971417 
13981418 - `BetaGCPExternalKeyConfig object`
13991419 
from line 1447
14271447 
14281448 format: date-time
14291449 
1450 - `user_profile_id: string or null`
1451 
1452 ID of the user profile the key is bound to, or null if the key is not bound to one. A key bound to a user profile can only be attached to a Workspace that has the same user profile. A key that isn't bound can be attached to a Workspace whatever its user profile.
1453 
14301454#### Example
14311455 
14321456```bash
from line 1479
14551479 "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek"
14561480 },
14571481 "type": "external_key",
1458 "updated_at": "2024-10-30T23:58:27.427722Z"
1482 "updated_at": "2024-10-30T23:58:27.427722Z",
1483 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
14591484}
14601485```
14611486 
from line 1742
17171742 
17181743 - `"analytics-usage-cost-2026-08-24"`
17191744 
1745 - `"experimental-claude-tag-2026-10-21"`
1746 
17201747#### Body parameters
17211748 
17221749- `issuer_url: string`
from line 2150
21232150 
21242151 - `"analytics-usage-cost-2026-08-24"`
21252152 
2153 - `"experimental-claude-tag-2026-10-21"`
2154 
21262155#### Returns
21272156 
21282157- `data: array of BetaFederationIssuer`
from line 2469
24402469 
24412470 - `"analytics-usage-cost-2026-08-24"`
24422471 
2472 - `"experimental-claude-tag-2026-10-21"`
2473 
24432474#### Returns
24442475 
24452476- `BetaFederationIssuer object`
from line 2791
27602791 
27612792 - `"analytics-usage-cost-2026-08-24"`
27622793 
2794 - `"experimental-claude-tag-2026-10-21"`
2795 
27632796#### Body parameters
27642797 
27652798- `check_jti: optional boolean or null`
from line 3191
31583191 
31593192 - `"analytics-usage-cost-2026-08-24"`
31603193 
3194 - `"experimental-claude-tag-2026-10-21"`
3195 
31613196#### Returns
31623197 
31633198- `BetaFederationIssuer object`
from line 3517
34823517 
34833518 - `"analytics-usage-cost-2026-08-24"`
34843519 
3520 - `"experimental-claude-tag-2026-10-21"`
3521 
34853522#### Body parameters
34863523 
34873524- `issuer_id: string`
from line 3950
39133950 
39143951 - `"analytics-usage-cost-2026-08-24"`
39153952 
3953 - `"experimental-claude-tag-2026-10-21"`
3954 
39163955#### Returns
39173956 
39183957- `data: array of BetaFederationRule`
from line 4269
42304269 
42314270 - `"analytics-usage-cost-2026-08-24"`
42324271 
4272 - `"experimental-claude-tag-2026-10-21"`
4273 
42334274#### Returns
42344275 
42354276- `BetaFederationRule object`
from line 4606
45654606 
45664607 - `"analytics-usage-cost-2026-08-24"`
45674608 
4609 - `"experimental-claude-tag-2026-10-21"`
4610 
45684611#### Body parameters
45694612 
45704613- `applies_to_all_workspaces: optional boolean or null`
from line 5015
49725015 
49735016 - `"analytics-usage-cost-2026-08-24"`
49745017 
5018 - `"experimental-claude-tag-2026-10-21"`
5019 
49755020#### Returns
49765021 
49775022- `BetaFederationRule object`
from line 5348
53035348 
53045349 - `"analytics-usage-cost-2026-08-24"`
53055350 
5351 - `"experimental-claude-tag-2026-10-21"`
5352 
53065353#### Body parameters
53075354 
53085355- `workspace_id: string`
from line 5565
55185565 
55195566 - `"analytics-usage-cost-2026-08-24"`
55205567 
5568 - `"experimental-claude-tag-2026-10-21"`
5569 
55215570#### Returns
55225571 
55235572- `data: array of BetaFederationRuleWorkspace`
from line 5772
57235772 
57245773 - `"analytics-usage-cost-2026-08-24"`
57255774 
5775 - `"experimental-claude-tag-2026-10-21"`
5776 
57265777#### Returns
57275778 
57285779- `type: "federation_rule_workspace_deleted"`
from line 6451
64006451 
64016452 - `"analytics-usage-cost-2026-08-24"`
64026453 
6454 - `"experimental-claude-tag-2026-10-21"`
6455 
64036456#### Body parameters
64046457 
64056458- `name: string`
from line 6720
66676720 
66686721 - `"analytics-usage-cost-2026-08-24"`
66696722 
6723 - `"experimental-claude-tag-2026-10-21"`
6724 
66706725#### Returns
66716726 
66726727- `data: array of BetaServiceAccount`
from line 6951
68966951 
68976952 - `"analytics-usage-cost-2026-08-24"`
68986953 
6954 - `"experimental-claude-tag-2026-10-21"`
6955 
68996956#### Returns
69006957 
69016958- `BetaServiceAccount object`
from line 7183
71267183 
71277184 - `"analytics-usage-cost-2026-08-24"`
71287185 
7186 - `"experimental-claude-tag-2026-10-21"`
7187 
71297188#### Body parameters
71307189 
71317190- `description: optional string or null`
from line 7433
73747433 
73757434 - `"analytics-usage-cost-2026-08-24"`
73767435 
7436 - `"experimental-claude-tag-2026-10-21"`
7437 
73777438#### Returns
73787439 
73797440- `BetaServiceAccount object`
from line 7670
76097670 
76107671 - `"analytics-usage-cost-2026-08-24"`
76117672 
7673 - `"experimental-claude-tag-2026-10-21"`
7674 
76127675#### Body parameters
76137676 
76147677- `workspace_id: string`
from line 7916
78537916 
78547917 - `"analytics-usage-cost-2026-08-24"`
78557918 
7919 - `"experimental-claude-tag-2026-10-21"`
7920 
78567921#### Returns
78577922 
78587923- `data: array of BetaServiceAccountWorkspaceMember`
from line 8134
80698134 
80708135 - `"analytics-usage-cost-2026-08-24"`
80718136 
8137 - `"experimental-claude-tag-2026-10-21"`
8138 
80728139#### Returns
80738140 
80748141- `type: "service_account_workspace_member_deleted"`
from line 8293
82268293{
82278294 "data": [
82288295 {
8229 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
8296 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
82308297 "added_at": "2024-10-30T23:58:27.427722Z",
82318298 "email": "[email protected]",
82328299 "name": "Jane Doe",
from line 8391
83248391 
83258392```json
83268393{
8327 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
8394 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
83288395 "added_at": "2024-10-30T23:58:27.427722Z",
83298396 "email": "[email protected]",
83308397 "name": "Jane Doe",
from line 8506
84398506 
84408507```json
84418508{
8442 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
8509 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
84438510 "added_at": "2024-10-30T23:58:27.427722Z",
84448511 "email": "[email protected]",
84458512 "name": "Jane Doe",
from line 8562
84958562 
84968563```json
84978564{
8498 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
8565 "id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
84998566 "type": "user_deleted"
85008567}
85018568```
from line 8637
85708637 
85718638 - `compartment_id: string`
85728639 
8573 Identifier for this Workspace's encryption compartment. When you configure a
8574 customer-managed encryption key (CMEK) on AWS, reference this value in your
8575 KMS key-policy condition so the key is scoped to this compartment. On GCP and
8576 Azure, Anthropic enforces the compartment binding automatically; you do not
8577 need to reference this value in your key configuration. See the CMEK
8578 integration guide for the required key configuration; unless your organization
8579 is on Claude Platform on AWS, it includes a separate value used during key
8580 validation. On Claude Platform on AWS there is no separate validation value:
8581 the key is validated against this Workspace's own value when it is attached, so
8582 if your key policy uses the compartment condition, add this value to it before
8583 attaching the key.
8640 Identifier for this Workspace's encryption compartment. When you configure an
8641 AWS KMS customer-managed encryption key (CMEK) that isn't bound to a user
8642 profile, reference this value in your KMS key-policy condition so the key is
8643 scoped to this compartment. On GCP and Azure, Anthropic enforces the compartment
8644 binding automatically; you do not need to reference this value in your key
8645 configuration. See the CMEK integration guide for the required key
8646 configuration; unless your organization is on Claude Platform on AWS, it
8647 includes a separate value used during key validation. On Claude Platform on AWS
8648 there is no separate validation value: your organization's own key is validated
8649 against this Workspace's own value when it is attached, so if its key policy
8650 uses the compartment condition, add this value to it before attaching the key.
85848651 
85858652 - `created_at: string`
85868653 
from line 8693
86268693 Workspace. Setting this field requires CMEK to be enabled for your
86278694 organization. When set, data stored for this Workspace is encrypted with the
86288695 referenced key. Create key configurations with the External Keys API. On
8629 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
8630 single-Region key in the same AWS account and Region as the Workspace. On that
8631 platform the key is validated against this Workspace when it is attached, so a
8632 key-policy problem is reported as an error on this request. This field is write-once:
8633 once a key is attached to a Workspace it cannot be detached or replaced. To
8634 rotate key material, rotate the underlying key on your cloud KMS; the
8635 `external_key_id` stays the same.
8696 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
8697 organization's own key must be a single-Region key in the same AWS account and
8698 Region as the Workspace. On that platform the key is validated against this
8699 Workspace when it is attached, so a key-policy problem is reported as an error
8700 on this request. This field is write-once: once a key is attached to a Workspace
8701 it cannot be detached or replaced. To rotate key material, rotate the underlying
8702 key on your cloud KMS; the `external_key_id` stays the same.
86368703 
86378704 - `name: string`
86388705 
from line 8709
86428709 
86438710 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
86448711 
8712 - `user_profile_id: string or null`
8713 
8714 ID of the user profile attached to the Workspace, or null if it has none. Every inference request through a Workspace that has a user profile must name that profile.
8715 
86458716- `first_id: string or null`
86468717 
86478718 First ID in the `data` list. Can be used as the `before_id` for the previous page.
from line 8755
86848755 "env": "prod",
86858756 "team": "platform"
86868757 },
8687 "type": "workspace"
8758 "type": "workspace",
8759 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
86888760 }
86898761 ],
86908762 "first_id": "first_id",
from line 8893
88218893 
88228894 - `"analytics-usage-cost-2026-08-24"`
88238895 
8896 - `"experimental-claude-tag-2026-10-21"`
8897 
88248898#### Body parameters
88258899 
88268900- `name: string`
from line 8943
88698943 Workspace. Setting this field requires CMEK to be enabled for your
88708944 organization. When set, data stored for this Workspace is encrypted with the
88718945 referenced key. Create key configurations with the External Keys API. On
8872 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
8873 single-Region key in the same AWS account and Region as the Workspace. On that
8874 platform the key is validated against this Workspace when it is attached, so a
8875 key-policy problem is reported as an error on this request. This field is write-once:
8876 once a key is attached to a Workspace it cannot be detached or replaced. To
8877 rotate key material, rotate the underlying key on your cloud KMS; the
8878 `external_key_id` stays the same.
8946 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
8947 organization's own key must be a single-Region key in the same AWS account and
8948 Region as the Workspace. On that platform the key is validated against this
8949 Workspace when it is attached, so a key-policy problem is reported as an error
8950 on this request. This field is write-once: once a key is attached to a Workspace
8951 it cannot be detached or replaced. To rotate key material, rotate the underlying
8952 key on your cloud KMS; the `external_key_id` stays the same.
88798953 
88808954- `tags: optional map[string] or null`
88818955 
88828956 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
88838957 
8958- `user_profile_id: optional string or null`
8959 
8960 ID of a user profile to attach to the Workspace. Every inference request through the Workspace must then name this user profile; the API rejects a request that names none or a different one. The user profile can't be replaced or removed later; only deleting the user profile clears it.
8961 
88848962#### Returns
88858963 
88868964- `BetaWorkspace object`
from line 8983
89058983 
89068984 - `compartment_id: string`
89078985 
8908 Identifier for this Workspace's encryption compartment. When you configure a
8909 customer-managed encryption key (CMEK) on AWS, reference this value in your
8910 KMS key-policy condition so the key is scoped to this compartment. On GCP and
8911 Azure, Anthropic enforces the compartment binding automatically; you do not
8912 need to reference this value in your key configuration. See the CMEK
8913 integration guide for the required key configuration; unless your organization
8914 is on Claude Platform on AWS, it includes a separate value used during key
8915 validation. On Claude Platform on AWS there is no separate validation value:
8916 the key is validated against this Workspace's own value when it is attached, so
8917 if your key policy uses the compartment condition, add this value to it before
8918 attaching the key.
8986 Identifier for this Workspace's encryption compartment. When you configure an
8987 AWS KMS customer-managed encryption key (CMEK) that isn't bound to a user
8988 profile, reference this value in your KMS key-policy condition so the key is
8989 scoped to this compartment. On GCP and Azure, Anthropic enforces the compartment
8990 binding automatically; you do not need to reference this value in your key
8991 configuration. See the CMEK integration guide for the required key
8992 configuration; unless your organization is on Claude Platform on AWS, it
8993 includes a separate value used during key validation. On Claude Platform on AWS
8994 there is no separate validation value: your organization's own key is validated
8995 against this Workspace's own value when it is attached, so if its key policy
8996 uses the compartment condition, add this value to it before attaching the key.
89198997 
89208998 - `created_at: string`
89218999 
from line 9039
89619039 Workspace. Setting this field requires CMEK to be enabled for your
89629040 organization. When set, data stored for this Workspace is encrypted with the
89639041 referenced key. Create key configurations with the External Keys API. On
8964 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
8965 single-Region key in the same AWS account and Region as the Workspace. On that
8966 platform the key is validated against this Workspace when it is attached, so a
8967 key-policy problem is reported as an error on this request. This field is write-once:
8968 once a key is attached to a Workspace it cannot be detached or replaced. To
8969 rotate key material, rotate the underlying key on your cloud KMS; the
8970 `external_key_id` stays the same.
9042 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
9043 organization's own key must be a single-Region key in the same AWS account and
9044 Region as the Workspace. On that platform the key is validated against this
9045 Workspace when it is attached, so a key-policy problem is reported as an error
9046 on this request. This field is write-once: once a key is attached to a Workspace
9047 it cannot be detached or replaced. To rotate key material, rotate the underlying
9048 key on your cloud KMS; the `external_key_id` stays the same.
89719049 
89729050 - `name: string`
89739051 
from line 9055
89779055 
89789056 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
89799057 
9058 - `user_profile_id: string or null`
9059 
9060 ID of the user profile attached to the Workspace, or null if it has none. Every inference request through a Workspace that has a user profile must name that profile.
9061 
89809062#### Example
89819063 
89829064```bash
from line 9073
89919073 "tags": {
89929074 "env": "prod",
89939075 "team": "platform"
8994 }
9076 },
9077 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
89959078 }'
89969079```
89979080 
from line 9098
90159098 "env": "prod",
90169099 "team": "platform"
90179100 },
9018 "type": "workspace"
9101 "type": "workspace",
9102 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
90199103}
90209104```
90219105 
from line 9147
90639147 
90649148 - `compartment_id: string`
90659149 
9066 Identifier for this Workspace's encryption compartment. When you configure a
9067 customer-managed encryption key (CMEK) on AWS, reference this value in your
9068 KMS key-policy condition so the key is scoped to this compartment. On GCP and
9069 Azure, Anthropic enforces the compartment binding automatically; you do not
9070 need to reference this value in your key configuration. See the CMEK
9071 integration guide for the required key configuration; unless your organization
9072 is on Claude Platform on AWS, it includes a separate value used during key
9073 validation. On Claude Platform on AWS there is no separate validation value:
9074 the key is validated against this Workspace's own value when it is attached, so
9075 if your key policy uses the compartment condition, add this value to it before
9076 attaching the key.
9150 Identifier for this Workspace's encryption compartment. When you configure an
9151 AWS KMS customer-managed encryption key (CMEK) that isn't bound to a user
9152 profile, reference this value in your KMS key-policy condition so the key is
9153 scoped to this compartment. On GCP and Azure, Anthropic enforces the compartment
9154 binding automatically; you do not need to reference this value in your key
9155 configuration. See the CMEK integration guide for the required key
9156 configuration; unless your organization is on Claude Platform on AWS, it
9157 includes a separate value used during key validation. On Claude Platform on AWS
9158 there is no separate validation value: your organization's own key is validated
9159 against this Workspace's own value when it is attached, so if its key policy
9160 uses the compartment condition, add this value to it before attaching the key.
90779161 
90789162 - `created_at: string`
90799163 
from line 9203
91199203 Workspace. Setting this field requires CMEK to be enabled for your
91209204 organization. When set, data stored for this Workspace is encrypted with the
91219205 referenced key. Create key configurations with the External Keys API. On
9122 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
9123 single-Region key in the same AWS account and Region as the Workspace. On that
9124 platform the key is validated against this Workspace when it is attached, so a
9125 key-policy problem is reported as an error on this request. This field is write-once:
9126 once a key is attached to a Workspace it cannot be detached or replaced. To
9127 rotate key material, rotate the underlying key on your cloud KMS; the
9128 `external_key_id` stays the same.
9206 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
9207 organization's own key must be a single-Region key in the same AWS account and
9208 Region as the Workspace. On that platform the key is validated against this
9209 Workspace when it is attached, so a key-policy problem is reported as an error
9210 on this request. This field is write-once: once a key is attached to a Workspace
9211 it cannot be detached or replaced. To rotate key material, rotate the underlying
9212 key on your cloud KMS; the `external_key_id` stays the same.
91299213 
91309214 - `name: string`
91319215 
from line 9219
91359219 
91369220 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
91379221 
9222 - `user_profile_id: string or null`
9223 
9224 ID of the user profile attached to the Workspace, or null if it has none. Every inference request through a Workspace that has a user profile must name that profile.
9225 
91389226#### Example
91399227 
91409228```bash
from line 9251
91639251 "env": "prod",
91649252 "team": "platform"
91659253 },
9166 "type": "workspace"
9254 "type": "workspace",
9255 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
91679256}
91689257```
91699258 
from line 9312
92239312 Workspace. Setting this field requires CMEK to be enabled for your
92249313 organization. When set, data stored for this Workspace is encrypted with the
92259314 referenced key. Create key configurations with the External Keys API. On
9226 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
9227 single-Region key in the same AWS account and Region as the Workspace. On that
9228 platform the key is validated against this Workspace when it is attached, so a
9229 key-policy problem is reported as an error on this request. This field is write-once:
9230 once a key is attached to a Workspace it cannot be detached or replaced. To
9231 rotate key material, rotate the underlying key on your cloud KMS; the
9232 `external_key_id` stays the same.
9315 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
9316 organization's own key must be a single-Region key in the same AWS account and
9317 Region as the Workspace. On that platform the key is validated against this
9318 Workspace when it is attached, so a key-policy problem is reported as an error
9319 on this request. This field is write-once: once a key is attached to a Workspace
9320 it cannot be detached or replaced. To rotate key material, rotate the underlying
9321 key on your cloud KMS; the `external_key_id` stays the same.
92339322 
92349323- `name: optional string`
92359324 
from line 9330
92419330 
92429331 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
92439332 
9333- `user_profile_id: optional string`
9334 
9335 ID of a user profile to attach to the Workspace. Every inference request through the Workspace must then name this user profile; the API rejects a request that names none or a different one. Once set, it can't be replaced or removed (sending the same ID again changes nothing); only deleting the user profile clears it. The default Workspace can't have a user profile.
9336 
92449337#### Returns
92459338 
92469339- `BetaWorkspace object`
from line 9358
92659358 
92669359 - `compartment_id: string`
92679360 
9268 Identifier for this Workspace's encryption compartment. When you configure a
9269 customer-managed encryption key (CMEK) on AWS, reference this value in your
9270 KMS key-policy condition so the key is scoped to this compartment. On GCP and
9271 Azure, Anthropic enforces the compartment binding automatically; you do not
9272 need to reference this value in your key configuration. See the CMEK
9273 integration guide for the required key configuration; unless your organization
9274 is on Claude Platform on AWS, it includes a separate value used during key
9275 validation. On Claude Platform on AWS there is no separate validation value:
9276 the key is validated against this Workspace's own value when it is attached, so
9277 if your key policy uses the compartment condition, add this value to it before
9278 attaching the key.
9361 Identifier for this Workspace's encryption compartment. When you configure an
9362 AWS KMS customer-managed encryption key (CMEK) that isn't bound to a user
9363 profile, reference this value in your KMS key-policy condition so the key is
9364 scoped to this compartment. On GCP and Azure, Anthropic enforces the compartment
9365 binding automatically; you do not need to reference this value in your key
9366 configuration. See the CMEK integration guide for the required key
9367 configuration; unless your organization is on Claude Platform on AWS, it
9368 includes a separate value used during key validation. On Claude Platform on AWS
9369 there is no separate validation value: your organization's own key is validated
9370 against this Workspace's own value when it is attached, so if its key policy
9371 uses the compartment condition, add this value to it before attaching the key.
92799372 
92809373 - `created_at: string`
92819374 
from line 9414
93219414 Workspace. Setting this field requires CMEK to be enabled for your
93229415 organization. When set, data stored for this Workspace is encrypted with the
93239416 referenced key. Create key configurations with the External Keys API. On
9324 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
9325 single-Region key in the same AWS account and Region as the Workspace. On that
9326 platform the key is validated against this Workspace when it is attached, so a
9327 key-policy problem is reported as an error on this request. This field is write-once:
9328 once a key is attached to a Workspace it cannot be detached or replaced. To
9329 rotate key material, rotate the underlying key on your cloud KMS; the
9330 `external_key_id` stays the same.
9417 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
9418 organization's own key must be a single-Region key in the same AWS account and
9419 Region as the Workspace. On that platform the key is validated against this
9420 Workspace when it is attached, so a key-policy problem is reported as an error
9421 on this request. This field is write-once: once a key is attached to a Workspace
9422 it cannot be detached or replaced. To rotate key material, rotate the underlying
9423 key on your cloud KMS; the `external_key_id` stays the same.
93319424 
93329425 - `name: string`
93339426 
from line 9430
93379430 
93389431 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
93399432 
9433 - `user_profile_id: string or null`
9434 
9435 ID of the user profile attached to the Workspace, or null if it has none. Every inference request through a Workspace that has a user profile must name that profile.
9436 
93409437#### Example
93419438 
93429439```bash
from line 9447
93509447 "tags": {
93519448 "env": "prod",
93529449 "team": "platform"
9353 }
9450 },
9451 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
93549452 }'
93559453```
93569454 
from line 9472
93749472 "env": "prod",
93759473 "team": "platform"
93769474 },
9377 "type": "workspace"
9475 "type": "workspace",
9476 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
93789477}
93799478```
93809479 
from line 9519
94209519 
94219520 - `compartment_id: string`
94229521 
9423 Identifier for this Workspace's encryption compartment. When you configure a
9424 customer-managed encryption key (CMEK) on AWS, reference this value in your
9425 KMS key-policy condition so the key is scoped to this compartment. On GCP and
9426 Azure, Anthropic enforces the compartment binding automatically; you do not
9427 need to reference this value in your key configuration. See the CMEK
9428 integration guide for the required key configuration; unless your organization
9429 is on Claude Platform on AWS, it includes a separate value used during key
9430 validation. On Claude Platform on AWS there is no separate validation value:
9431 the key is validated against this Workspace's own value when it is attached, so
9432 if your key policy uses the compartment condition, add this value to it before
9433 attaching the key.
9522 Identifier for this Workspace's encryption compartment. When you configure an
9523 AWS KMS customer-managed encryption key (CMEK) that isn't bound to a user
9524 profile, reference this value in your KMS key-policy condition so the key is
9525 scoped to this compartment. On GCP and Azure, Anthropic enforces the compartment
9526 binding automatically; you do not need to reference this value in your key
9527 configuration. See the CMEK integration guide for the required key
9528 configuration; unless your organization is on Claude Platform on AWS, it
9529 includes a separate value used during key validation. On Claude Platform on AWS
9530 there is no separate validation value: your organization's own key is validated
9531 against this Workspace's own value when it is attached, so if its key policy
9532 uses the compartment condition, add this value to it before attaching the key.
94349533 
94359534 - `created_at: string`
94369535 
from line 9575
94769575 Workspace. Setting this field requires CMEK to be enabled for your
94779576 organization. When set, data stored for this Workspace is encrypted with the
94789577 referenced key. Create key configurations with the External Keys API. On
9479 Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a
9480 single-Region key in the same AWS account and Region as the Workspace. On that
9481 platform the key is validated against this Workspace when it is attached, so a
9482 key-policy problem is reported as an error on this request. This field is write-once:
9483 once a key is attached to a Workspace it cannot be detached or replaced. To
9484 rotate key material, rotate the underlying key on your cloud KMS; the
9485 `external_key_id` stays the same.
9578 Claude Platform on AWS the value for an AWS KMS key is the key's ARN, and your
9579 organization's own key must be a single-Region key in the same AWS account and
9580 Region as the Workspace. On that platform the key is validated against this
9581 Workspace when it is attached, so a key-policy problem is reported as an error
9582 on this request. This field is write-once: once a key is attached to a Workspace
9583 it cannot be detached or replaced. To rotate key material, rotate the underlying
9584 key on your cloud KMS; the `external_key_id` stays the same.
94869585 
94879586 - `name: string`
94889587 
from line 9591
94929591 
94939592 User-defined tags as string key-value pairs. Keys may not begin with `anthropic`.
94949593 
9594 - `user_profile_id: string or null`
9595 
9596 ID of the user profile attached to the Workspace, or null if it has none. Every inference request through a Workspace that has a user profile must name that profile.
9597 
94959598#### Example
94969599 
94979600```bash
from line 9624
95219624 "env": "prod",
95229625 "team": "platform"
95239626 },
9524 "type": "workspace"
9627 "type": "workspace",
9628 "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
95259629}
95269630```
95279631 
from line 10236
1013210236 "data": [
1013310237 {
1013410238 "type": "workspace_member",
10135 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
10239 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1013610240 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
1013710241 "workspace_role": "workspace_admin"
1013810242 }
from line 10327
1022310327 -H 'anthropic-version: 2026-10-21' \
1022410328 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
1022510329 -d '{
10226 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
10330 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1022710331 "workspace_role": "workspace_admin"
1022810332 }'
1022910333```
from line 10337
1023310337```json
1023410338{
1023510339 "type": "workspace_member",
10236 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
10340 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1023710341 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
1023810342 "workspace_role": "workspace_admin"
1023910343}
from line 10414
1031010414```json
1031110415{
1031210416 "type": "workspace_member",
10313 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
10417 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1031410418 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
1031510419 "workspace_role": "workspace_admin"
1031610420}
from line 10511
1040710511```json
1040810512{
1040910513 "type": "workspace_member",
10410 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
10514 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1041110515 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
1041210516 "workspace_role": "workspace_admin"
1041310517}
from line 10573
1046910573```json
1047010574{
1047110575 "type": "workspace_member_deleted",
10472 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
10576 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1047310577 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
1047410578}
1047510579```
from line 10735
1063110735 
1063210736 - `"analytics-usage-cost-2026-08-24"`
1063310737 
10738 - `"experimental-claude-tag-2026-10-21"`
10739 
1063410740#### Returns
1063510741 
1063610742- `data: array of BetaServiceAccountWorkspaceMember`
from line 10950
1084410950 
1084510951 - `"analytics-usage-cost-2026-08-24"`
1084610952 
10953 - `"experimental-claude-tag-2026-10-21"`
10954 
1084710955#### Body parameters
1084810956 
1084910957- `service_account_id: string`
from line 11181
1107311181 
1107411182 - `"analytics-usage-cost-2026-08-24"`
1107511183 
11184 - `"experimental-claude-tag-2026-10-21"`
11185 
1107611186#### Returns
1107711187 
1107811188- `BetaServiceAccountWorkspaceMember object`
from line 11389
1127911389 
1128011390 - `"analytics-usage-cost-2026-08-24"`
1128111391 
11392 - `"experimental-claude-tag-2026-10-21"`
11393 
1128211394#### Body parameters
1128311395 
1128411396- `workspace_role: BetaNoBillingWorkspaceRole`
from line 11614
1150211614 
1150311615 - `"analytics-usage-cost-2026-08-24"`
1150411616 
11617 - `"experimental-claude-tag-2026-10-21"`
11618 
1150511619#### Returns
1150611620 
1150711621- `type: "service_account_workspace_member_deleted"`
from line 11931
1181711931 
1181811932Setting `state` to `enabled` turns on the Compliance API and begins
1181911933capturing organization activity events. Setting it to `disabled` turns
11820both off. `state` reflects whether the Compliance API is enabled.
11934both off. Access Transparency events are an exception: they are still
11935captured while the Compliance API is disabled, and the Compliance API
11936activity feed returns them once it is enabled again. `state` reflects
11937whether the Compliance API is enabled.
1182111938 
1182211939A request that sets `state` to its current value succeeds and leaves the
1182311940resource unchanged. A `disabled` request stays in effect until a later
from line 12272
1215512272 
1215612273 - `"analytics-usage-cost-2026-08-24"`
1215712274 
12275 - `"experimental-claude-tag-2026-10-21"`
12276 
1215812277#### Returns
1215912278 
1216012279- `BetaMessagesUsageReport object`
from line 12422
1230312422 "ending_at": "2025-08-02T00:00:00Z",
1230412423 "results": [
1230512424 {
12306 "account_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
12425 "account_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
1230712426 "api_key_id": "apikey_01Rj2N8SVvo6BePZj99NhmiT",
1230812427 "cache_creation": {
1230912428 "ephemeral_1h_input_tokens": 0,
from line 12897
1277812897 
1277912898 - `"analytics-usage-cost-2026-08-24"`
1278012899 
12900 - `"experimental-claude-tag-2026-10-21"`
12901 
1278112902#### Returns
1278212903 
1278312904- `BetaCostReport object`
from line 13213
1309213213 
1309313214 - `"analytics-usage-cost-2026-08-24"`
1309413215 
13216 - `"experimental-claude-tag-2026-10-21"`
13217 
1309513218#### Returns
1309613219 
1309713220- `data: array of BetaOrganizationTunnel`
from line 13427
1330413427 
1330513428 - `"analytics-usage-cost-2026-08-24"`
1330613429 
13430 - `"experimental-claude-tag-2026-10-21"`
13431 
1330713432#### Returns
1330813433 
1330913434- `BetaOrganizationTunnel object`
from line 13637
1351213637 
1351313638 - `"analytics-usage-cost-2026-08-24"`
1351413639 
13640 - `"experimental-claude-tag-2026-10-21"`
13641 
1351513642#### Returns
1351613643 
1351713644- `BetaOrganizationTunnel object`
from line 13848
1372113848 
1372213849 - `"analytics-usage-cost-2026-08-24"`
1372313850 
13851 - `"experimental-claude-tag-2026-10-21"`
13852 
1372413853#### Returns
1372513854 
1372613855- `BetaOrganizationTunnelToken object`
from line 14031
1390214031 
1390314032 - `"analytics-usage-cost-2026-08-24"`
1390414033 
14034 - `"experimental-claude-tag-2026-10-21"`
14035 
1390514036#### Body parameters
1390614037 
1390714038- `reason: optional string or null`
from line 14225
1409414225 
1409514226 - `"analytics-usage-cost-2026-08-24"`
1409614227 
14228 - `"experimental-claude-tag-2026-10-21"`
14229 
1409714230#### Body parameters
1409814231 
1409914232- `ca_certificate_pem: string`
from line 14465
1433214465 
1433314466 - `"analytics-usage-cost-2026-08-24"`
1433414467 
14468 - `"experimental-claude-tag-2026-10-21"`
14469 
1433514470#### Returns
1433614471 
1433714472- `data: array of BetaOrganizationTunnelCertificate`
from line 14683
1454814683 
1454914684 - `"analytics-usage-cost-2026-08-24"`
1455014685 
14686 - `"experimental-claude-tag-2026-10-21"`
14687 
1455114688#### Returns
1455214689 
1455314690- `BetaOrganizationTunnelCertificate object`
from line 14896
1475914896 
1476014897 - `"analytics-usage-cost-2026-08-24"`
1476114898 
14899 - `"experimental-claude-tag-2026-10-21"`
14900 
1476214901#### Returns
1476314902 
1476414903- `BetaOrganizationTunnelCertificate object`
from line 17411
1727217411 
1727317412 - `"analytics-usage-cost-2026-08-24"`
1727417413 
17414 - `"experimental-claude-tag-2026-10-21"`
17415 
1727517416#### Returns
1727617417 
1727717418- `data: array of BetaAnalyticsUsageItem`
from line 17723
1758217723 "email_address": "[email protected]",
1758317724 "name": "Jane Doe",
1758417725 "type": "user_actor",
17585 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
17726 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
1758617727 },
1758717728 "actor_type": "user_actor",
1758817729 "agent_id": "agent_01VHd3EAGJ6PLkP9LM7DDu3f",
from line 17756
1761517756 "server_tool_use": {
1761617757 "web_search_requests": 10
1761717758 },
17618 "total_tokens": 5377000,
17759 "total_tokens": 5375500,
1761917760 "uncached_input_tokens": 1284500
1762017761 }
1762117762 }
1762217763 ],
17623 "data_refreshed_at": "2019-12-27T18:11:19.117Z",
17764 "data_refreshed_at": "2026-10-01T04:02:11Z",
1762417765 "has_more": true,
1762517766 "next_page": "next_page"
1762617767}
from line 18193
1805218193 
1805318194 - `"analytics-usage-cost-2026-08-24"`
1805418195 
18196 - `"experimental-claude-tag-2026-10-21"`
18197 
1805518198#### Returns
1805618199 
1805718200- `data: array of BetaAnalyticsCostItem`
from line 18511
1836818511 "email_address": "[email protected]",
1836918512 "name": "Jane Doe",
1837018513 "type": "user_actor",
18371 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
18514 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
1837218515 },
1837318516 "actor_type": "user_actor",
1837418517 "agent_id": "agent_01VHd3EAGJ6PLkP9LM7DDu3f",
from line 18537
1839418537 "starting_at": "2026-09-01T00:00:00Z"
1839518538 }
1839618539 ],
18397 "data_refreshed_at": "2019-12-27T18:11:19.117Z",
18540 "data_refreshed_at": "2026-10-01T04:02:11Z",
1839818541 "has_more": true,
1839918542 "next_page": "next_page"
1840018543}
from line 18918
1877518918 
1877618919[Legacy] Get per-user token usage across a date range.
1877718920 
18778Returns usage per user, ranked by the chosen token metric; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users consume the most tokens. Only usage attributed to a user account is included; usage with no user attributed to it, such as requests attributed only to an API key, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
18921Returns usage per user, ranked by the chosen token metric; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users consume the most tokens. Only usage attributed to a user account is included; usage with no user attributed to it, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
1877918922 
1878018923This endpoint is one of the legacy Claude Enterprise usage and cost reports. For new integrations, use [`GET /v1/organizations/analytics/usage`](https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list?sdk_languages=http) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Claude Enterprise usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api?sdk_languages=http#migrate-from-enterprise-analytics-reports).
1878118924 
from line 19709
1956619709 
1956719710[Legacy] Get per-user cost in USD across a date range.
1956819711 
19569Returns cost per user, ranked by spend; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users account for the most cost. Only cost attributed to a user account is included; cost with no user attributed to it, such as requests attributed only to an API key, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
19712Returns cost per user, ranked by spend; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users account for the most cost. Only cost attributed to a user account is included; cost with no user attributed to it, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
1957019713 
1957119714This endpoint is one of the legacy Claude Enterprise usage and cost reports. For new integrations, use [`GET /v1/organizations/analytics/cost`](https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list?sdk_languages=http) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Claude Enterprise usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api?sdk_languages=http#migrate-from-enterprise-analytics-reports).
1957219715 
from line 20254
2011120254 
2011220255 - `"analytics-usage-cost-2026-08-24"`
2011320256 
20257 - `"experimental-claude-tag-2026-10-21"`
20258 
2011420259#### Body parameters
2011520260 
2011620261- `amount: string or null`
from line 20445
2030020445 "amount": "50000",
2030120446 "scope": {
2030220447 "type": "user",
20303 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
20448 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2030420449 },
2030520450 "period": "monthly"
2030620451 }'
from line 20463
2031820463 "period": "daily",
2031920464 "scope": {
2032020465 "type": "user",
20321 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
20466 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2032220467 },
2032320468 "type": "spend_limit",
2032420469 "updated_at": "2019-12-27T18:11:19.117Z"
from line 20636
2049120636 "period": "daily",
2049220637 "scope": {
2049320638 "type": "user",
20494 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
20639 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2049520640 },
2049620641 "type": "spend_limit",
2049720642 "updated_at": "2019-12-27T18:11:19.117Z"
from line 20867
2072220867 
2072320868 - `"analytics-usage-cost-2026-08-24"`
2072420869 
20870 - `"experimental-claude-tag-2026-10-21"`
20871 
2072520872#### Returns
2072620873 
2072720874- `data: array of BetaSpendLimit`
from line 21018
2087121018 "period": "daily",
2087221019 "scope": {
2087321020 "type": "user",
20874 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21021 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2087521022 },
2087621023 "type": "spend_limit",
2087721024 "updated_at": "2019-12-27T18:11:19.117Z"
from line 21271
2112421271 "email_address": "email_address",
2112521272 "name": "name",
2112621273 "type": "user_actor",
21127 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21274 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2112821275 },
2112921276 "amount": "50000",
2113021277 "currency": "USD",
from line 21279
2113221279 "period_to_date_spend": "12050.5",
2113321280 "scope": {
2113421281 "type": "user",
21135 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21282 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2113621283 },
2113721284 "source": {
2113821285 "type": "user",
21139 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21286 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2114021287 },
2114121288 "spend_limit_id": "spend_limit_id"
2114221289 }
from line 21579
2143221579 "email_address": "email_address",
2143321580 "name": "name",
2143421581 "type": "user_actor",
21435 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21582 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2143621583 },
2143721584 "created_at": "2019-12-27T18:11:19.117Z",
2143821585 "period": "daily",
from line 21589
2144221589 "email_address": "email_address",
2144321590 "name": "name",
2144421591 "type": "user_actor",
21445 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21592 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2144621593 },
2144721594 "spend_summary": {
2144821595 "actor": {
from line 21597
2145021597 "email_address": "email_address",
2145121598 "name": "name",
2145221599 "type": "user_actor",
21453 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21600 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2145421601 },
2145521602 "amount": "50000",
2145621603 "currency": "USD",
from line 21605
2145821605 "period_to_date_spend": "12050.5",
2145921606 "scope": {
2146021607 "type": "user",
21461 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21608 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2146221609 },
2146321610 "source": {
2146421611 "type": "user",
21465 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21612 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2146621613 },
2146721614 "spend_limit_id": "spend_limit_id"
2146821615 },
from line 21884
2173721884 "email_address": "email_address",
2173821885 "name": "name",
2173921886 "type": "user_actor",
21740 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21887 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2174121888 },
2174221889 "created_at": "2019-12-27T18:11:19.117Z",
2174321890 "period": "daily",
from line 21894
2174721894 "email_address": "email_address",
2174821895 "name": "name",
2174921896 "type": "user_actor",
21750 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21897 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2175121898 },
2175221899 "spend_summary": {
2175321900 "actor": {
from line 21902
2175521902 "email_address": "email_address",
2175621903 "name": "name",
2175721904 "type": "user_actor",
21758 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21905 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2175921906 },
2176021907 "amount": "50000",
2176121908 "currency": "USD",
from line 21910
2176321910 "period_to_date_spend": "12050.5",
2176421911 "scope": {
2176521912 "type": "user",
21766 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21913 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2176721914 },
2176821915 "source": {
2176921916 "type": "user",
21770 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
21917 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2177121918 },
2177221919 "spend_limit_id": "spend_limit_id"
2177321920 },
from line 22277
2213022277 "email_address": "email_address",
2213122278 "name": "name",
2213222279 "type": "user_actor",
22133 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22280 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2213422281 },
2213522282 "created_at": "2019-12-27T18:11:19.117Z",
2213622283 "period": "daily",
from line 22287
2214022287 "email_address": "email_address",
2214122288 "name": "name",
2214222289 "type": "user_actor",
22143 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22290 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2214422291 },
2214522292 "spend_limit": {
2214622293 "id": "id",
from line 22298
2215122298 "period": "daily",
2215222299 "scope": {
2215322300 "type": "user",
22154 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22301 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2215522302 },
2215622303 "type": "spend_limit",
2215722304 "updated_at": "2019-12-27T18:11:19.117Z"
from line 22309
2216222309 "email_address": "email_address",
2216322310 "name": "name",
2216422311 "type": "user_actor",
22165 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22312 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2216622313 },
2216722314 "amount": "50000",
2216822315 "currency": "USD",
from line 22317
2217022317 "period_to_date_spend": "12050.5",
2217122318 "scope": {
2217222319 "type": "user",
22173 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22320 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2217422321 },
2217522322 "source": {
2217622323 "type": "user",
22177 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22324 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2217822325 },
2217922326 "spend_limit_id": "spend_limit_id"
2218022327 },
from line 22599
2245222599 "email_address": "email_address",
2245322600 "name": "name",
2245422601 "type": "user_actor",
22455 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22602 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2245622603 },
2245722604 "created_at": "2019-12-27T18:11:19.117Z",
2245822605 "period": "daily",
from line 22609
2246222609 "email_address": "email_address",
2246322610 "name": "name",
2246422611 "type": "user_actor",
22465 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22612 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2246622613 },
2246722614 "spend_summary": {
2246822615 "actor": {
from line 22617
2247022617 "email_address": "email_address",
2247122618 "name": "name",
2247222619 "type": "user_actor",
22473 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22620 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2247422621 },
2247522622 "amount": "50000",
2247622623 "currency": "USD",
from line 22625
2247822625 "period_to_date_spend": "12050.5",
2247922626 "scope": {
2248022627 "type": "user",
22481 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22628 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2248222629 },
2248322630 "source": {
2248422631 "type": "user",
22485 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
22632 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2248622633 },
2248722634 "spend_limit_id": "spend_limit_id"
2248822635 },
from line 23188
2304123188 "email": "[email protected]",
2304223189 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
2304323190 "type": "rbac_group_member",
23044 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
23191 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2304523192 }
2304623193 ],
2304723194 "has_more": false,
from line 23262
2311523262 -H 'anthropic-version: 2026-10-21' \
2311623263 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
2311723264 -d '{
23118 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
23265 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2311923266 }'
2312023267```
2312123268 
from line 23274
2312723274 "email": "[email protected]",
2312823275 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
2312923276 "type": "rbac_group_member",
23130 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
23277 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2313123278}
2313223279```
2313323280 
from line 23335
2318823335{
2318923336 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
2319023337 "type": "rbac_group_member_deleted",
23191 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
23338 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2319223339}
2319323340```
2319423341 
from line 23569
2342223569 The vocabulary follows the resource: an `organization` grant carries a
2342323570 product-feature entitlement (for example `chat`), an admin-panel
2342423571 permission entitlement (`permission_*`), or a blanket capability-access
23425 mode — `capability_access_all` grants every product-feature entitlement,
23426 and `capability_access_all_ga` grants the generally-available subset as
23427 it stands at permission-check time; neither mode grants model-access
23428 entitlements. A consumer enumerating a role's per-feature grants should
23572 mode — `capability_access_all` grants every product-feature entitlement
23573 except `inference_hooks_inspection`, which a role holds only through its
23574 own row, and `capability_access_all_ga` grants the generally-available
23575 subset of those as it stands at permission-check time; neither mode grants
23576 model-access entitlements. A consumer enumerating a role's per-feature grants should
2342923577 treat a blanket row as granting every product-feature entitlement it
2343023578 covers, or it will under-report the role's effective access. A `connector_tool` grant carries
2343123579 a tool-access action (`use` or `always_allow`); a `connector_scope` grant
from line 23854
2370623854 
2370723855 - `"analytics-usage-cost-2026-08-24"`
2370823856 
23857 - `"experimental-claude-tag-2026-10-21"`
23858 
2370923859#### Body parameters (form-data)
2371023860 
2371123861- `files: array of file`
from line 24106
2395624106 "created_by": {
2395724107 "email_address": "[email protected]",
2395824108 "type": "user_actor",
23959 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
24109 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2396024110 },
2396124111 "description": "Reviews pull requests against your team's conventions.",
2396224112 "display_name": "Code Review Helper",
from line 24265
2411524265 
2411624266 - `"analytics-usage-cost-2026-08-24"`
2411724267 
24268 - `"experimental-claude-tag-2026-10-21"`
24269 
2411824270#### Returns
2411924271 
2412024272- `BetaPlugin object`
from line 24499
2434724499 "created_by": {
2434824500 "email_address": "[email protected]",
2434924501 "type": "user_actor",
24350 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
24502 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2435124503 },
2435224504 "description": "Reviews pull requests against your team's conventions.",
2435324505 "display_name": "Code Review Helper",
from line 24675
2452324675 
2452424676 - `"analytics-usage-cost-2026-08-24"`
2452524677 
24678 - `"experimental-claude-tag-2026-10-21"`
24679 
2452624680#### Body parameters
2452724681 
2452824682- `served_version_id: string`
from line 24919
2476524919 "created_by": {
2476624920 "email_address": "[email protected]",
2476724921 "type": "user_actor",
24768 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
24922 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2476924923 },
2477024924 "description": "Reviews pull requests against your team's conventions.",
2477124925 "display_name": "Code Review Helper",
from line 25132
2497825132 
2497925133 - `"analytics-usage-cost-2026-08-24"`
2498025134 
25135 - `"experimental-claude-tag-2026-10-21"`
25136 
2498125137#### Returns
2498225138 
2498325139- `data: array of BetaPlugin`
from line 25372
2521625372 "created_by": {
2521725373 "email_address": "[email protected]",
2521825374 "type": "user_actor",
25219 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
25375 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2522025376 },
2522125377 "description": "Reviews pull requests against your team's conventions.",
2522225378 "display_name": "Code Review Helper",
from line 25539
2538325539 
2538425540 - `"analytics-usage-cost-2026-08-24"`
2538525541 
25542 - `"experimental-claude-tag-2026-10-21"`
25543 
2538625544#### Returns
2538725545 
2538825546- `BetaDeletedPlugin object`
from line 25727
2556925727 
2557025728 - `"analytics-usage-cost-2026-08-24"`
2557125729 
25730 - `"experimental-claude-tag-2026-10-21"`
25731 
2557225732#### Body parameters (form-data)
2557325733 
2557425734- `files: array of file`
from line 25913
2575325913 "created_by": {
2575425914 "email_address": "[email protected]",
2575525915 "type": "user_actor",
25756 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
25916 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2575725917 },
2575825918 "description": "Reviews pull requests against your team's conventions.",
2575925919 "display_name": "Code Review Helper",
from line 26080
2592026080 
2592126081 - `"analytics-usage-cost-2026-08-24"`
2592226082 
26083 - `"experimental-claude-tag-2026-10-21"`
26084 
2592326085#### Returns
2592426086 
2592526087- `data: array of BetaPluginVersion`
from line 26258
2609626258 "created_by": {
2609726259 "email_address": "[email protected]",
2609826260 "type": "user_actor",
26099 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
26261 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2610026262 },
2610126263 "description": "Reviews pull requests against your team's conventions.",
2610226264 "display_name": "Code Review Helper",
from line 26415
2625326415 
2625426416 - `"analytics-usage-cost-2026-08-24"`
2625526417 
26418 - `"experimental-claude-tag-2026-10-21"`
26419 
2625626420#### Returns
2625726421 
2625826422- `BetaPluginVersion object`
from line 26587
2642326587 "created_by": {
2642426588 "email_address": "[email protected]",
2642526589 "type": "user_actor",
26426 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
26590 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
2642726591 },
2642826592 "description": "Reviews pull requests against your team's conventions.",
2642926593 "display_name": "Code Review Helper",
from line 26757
2659326757 
2659426758 - `"analytics-usage-cost-2026-08-24"`
2659526759 
26760 - `"experimental-claude-tag-2026-10-21"`
26761 
2659626762#### Example
2659726763 
2659826764```bash
from line 26935
2676926935 
2677026936 - `"analytics-usage-cost-2026-08-24"`
2677126937 
26938 - `"experimental-claude-tag-2026-10-21"`
26939 
2677226940#### Returns
2677326941 
2677426942- `data: array of BetaPluginInstallationSetting`
from line 27192
2702427192 
2702527193 - `"analytics-usage-cost-2026-08-24"`
2702627194 
27195 - `"experimental-claude-tag-2026-10-21"`
27196 
2702727197#### Body parameters
2702827198 
2702927199- `installation_preference: "auto_install" or "available" or "not_available" or "required"`
from line 27466
2729627466 
2729727467 - `"analytics-usage-cost-2026-08-24"`
2729827468 
27469 - `"experimental-claude-tag-2026-10-21"`
27470 
2729927471#### Returns
2730027472 
2730127473- `BetaDeletedPluginInstallationSetting object`
from line 27714
2754227714 
2754327715 - `"analytics-usage-cost-2026-08-24"`
2754427716 
27717 - `"experimental-claude-tag-2026-10-21"`
27718 
2754527719#### Returns
2754627720 
2754727721- `data: array of BetaPluginShare`
from line 27979
2780527979 
2780627980 - `"analytics-usage-cost-2026-08-24"`
2780727981 
27982 - `"experimental-claude-tag-2026-10-21"`
27983 
2780827984#### Returns
2780927985 
2781027986- `data: array of BetaPluginMarketplace`
from line 28256
2808028256 
2808128257 - `"analytics-usage-cost-2026-08-24"`
2808228258 
28259 - `"experimental-claude-tag-2026-10-21"`
28260 
2808328261#### Returns
2808428262 
2808528263- `BetaPluginMarketplace object`
from line 28523
2834528523 
2834628524 - `"analytics-usage-cost-2026-08-24"`
2834728525 
28526 - `"experimental-claude-tag-2026-10-21"`
28527 
2834828528#### Body parameters
2834928529 
2835028530- `default_installation_preference: "auto_install" or "available" or "not_available" or "required"`
from line 28812
2863228812 
2863328813 - `"analytics-usage-cost-2026-08-24"`
2863428814 
28815 - `"experimental-claude-tag-2026-10-21"`
28816 
2863528817#### Body parameters
2863628818 
2863728819- `repository_url: string`
from line 29088
2890629088 
2890729089 - `"analytics-usage-cost-2026-08-24"`
2890829090 
29091 - `"experimental-claude-tag-2026-10-21"`
29092 
2890929093#### Body parameters (form-data)
2891029094 
2891129095- `archive: file`
from line 29348
2916429348 
2916529349 - `"analytics-usage-cost-2026-08-24"`
2916629350 
29351 - `"experimental-claude-tag-2026-10-21"`
29352 
2916729353#### Body parameters
2916829354 
2916929355- `endpoint_url: string`
from line 29829
2964329829 
2964429830 - `"analytics-usage-cost-2026-08-24"`
2964529831 
29832 - `"experimental-claude-tag-2026-10-21"`
29833 
2964629834#### Returns
2964729835 
2964829836- `data: array of BetaTelemetryDestination`
from line 30188
3000030188 
3000130189 - `"analytics-usage-cost-2026-08-24"`
3000230190 
30191 - `"experimental-claude-tag-2026-10-21"`
30192 
3000330193#### Returns
3000430194 
3000530195- `BetaTelemetryDestination object`
from line 30542
3035230542 
3035330543 - `"analytics-usage-cost-2026-08-24"`
3035430544 
30545 - `"experimental-claude-tag-2026-10-21"`
30546 
3035530547#### Body parameters
3035630548 
3035730549- `display_name: optional string or null`
from line 31030
3083831030 
3083931031 - `"analytics-usage-cost-2026-08-24"`
3084031032 
31033 - `"experimental-claude-tag-2026-10-21"`
31034 
3084131035#### Returns
3084231036 
3084331037- `BetaDeletedTelemetryDestination object`
from line 31197
3100331197 
3100431198 - `"analytics-usage-cost-2026-08-24"`
3100531199 
31200 - `"experimental-claude-tag-2026-10-21"`
31201 
3100631202#### Returns
3100731203 
3100831204- `BetaTelemetryDestinationTestResponse object`
from line 31400
3120431400 
3120531401 - `"analytics-usage-cost-2026-08-24"`
3120631402 
31403 - `"experimental-claude-tag-2026-10-21"`
31404 
3120731405#### Returns
3120831406 
3120931407- `data: array of BetaTelemetryDestinationWorkspace`
from line 31597
3139931597 
3140031598 - `"analytics-usage-cost-2026-08-24"`
3140131599 
31600 - `"experimental-claude-tag-2026-10-21"`
31601 
3140231602#### Returns
3140331603 
3140431604- `BetaTelemetryDestinationWorkspace object`
from line 31788
3158831788 
3158931789 - `"analytics-usage-cost-2026-08-24"`
3159031790 
31791 - `"experimental-claude-tag-2026-10-21"`
31792 
3159131793#### Returns
3159231794 
3159331795- `BetaDeletedTelemetryDestinationWorkspace object`
from line 31964
3176231964 
3176331965 - `"analytics-usage-cost-2026-08-24"`
3176431966 
31967 - `"experimental-claude-tag-2026-10-21"`
31968 
3176531969#### Body parameters
3176631970 
3176731971- `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"`
from line 32240
3203632240 
3203732241 - `"analytics-usage-cost-2026-08-24"`
3203832242 
32243 - `"experimental-claude-tag-2026-10-21"`
32244 
3203932245#### Returns
3204032246 
3204132247- `data: array of BetaOrganizationWebhookEndpoint`
from line 32480
3227432480 
3227532481 - `"analytics-usage-cost-2026-08-24"`
3227632482 
32483 - `"experimental-claude-tag-2026-10-21"`
32484 
3227732485#### Returns
3227832486 
3227932487- `BetaOrganizationWebhookEndpoint object`
from line 32702
3249432702 
3249532703 - `"analytics-usage-cost-2026-08-24"`
3249632704 
32705 - `"experimental-claude-tag-2026-10-21"`
32706 
3249732707#### Body parameters
3249832708 
3249932709- `description: optional string`
from line 32958
3274832958 
3274932959 - `"analytics-usage-cost-2026-08-24"`
3275032960 
32961 - `"experimental-claude-tag-2026-10-21"`
32962 
3275132963#### Returns
3275232964 
3275332965- `BetaDeletedOrganizationWebhookEndpoint object`
from line 33134
3292233134 
3292333135 - `"analytics-usage-cost-2026-08-24"`
3292433136 
33137 - `"experimental-claude-tag-2026-10-21"`
33138 
3292533139#### Returns
3292633140 
3292733141- `BetaOrganizationWebhookEndpointSigningSecret object`
from line 33163
3294933163 "signing_secret": "signing_secret"
3295033164}
3295133165```
33166 
33167## Organization › Claude Tag › Slack Channels
33168 
33169### Set Up Slack Channel
33170 
33171**POST** `/v1/organizations/claude_tag/slack_channels`
33172 
33173Set a Slack channel up for Claude Tag and return it with its identifier. If the channel is already set up, whether in claude.ai, by Claude's first use in it or by an earlier request, the existing channel is returned, so the request can be repeated. `settings`, when sent, is applied as an update applies it. Before a channel is set up, Claude's Slack app confirms with Slack that the channel is in the workspace, is not archived and is visible to the app; a channel that fails the confirmation returns 404. Setting the channel up and applying `settings` are two steps: when the second is refused, the response is the refusal, the channel stays set up with every setting unset, and the error's `details.slack_channel_id` holds the channel's identifier.
33174 
33175#### Headers
33176 
33177- `"anthropic-version": optional string`
33178 
33179 The version of the Claude API you want to use.
33180 
33181 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
33182 
33183- `"anthropic-beta": optional array of AnthropicBeta`
33184 
33185 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
33186 
33187 - `string`
33188 
33189 - `"message-batches-2024-09-24"`
33190 
33191 - `"prompt-caching-2024-07-31"`
33192 
33193 - `"computer-use-2024-10-22"`
33194 
33195 - `"computer-use-2025-01-24"`
33196 
33197 - `"pdfs-2024-09-25"`
33198 
33199 - `"token-counting-2024-11-01"`
33200 
33201 - `"token-efficient-tools-2025-02-19"`
33202 
33203 - `"output-128k-2025-02-19"`
33204 
33205 - `"files-api-2025-04-14"`
33206 
33207 - `"mcp-client-2025-04-04"`
33208 
33209 - `"mcp-client-2025-11-20"`
33210 
33211 - `"dev-full-thinking-2025-05-14"`
33212 
33213 - `"interleaved-thinking-2025-05-14"`
33214 
33215 - `"code-execution-2025-05-22"`
33216 
33217 - `"extended-cache-ttl-2025-04-11"`
33218 
33219 - `"context-1m-2025-08-07"`
33220 
33221 - `"context-management-2025-06-27"`
33222 
33223 - `"model-context-window-exceeded-2025-08-26"`
33224 
33225 - `"skills-2025-10-02"`
33226 
33227 - `"fast-mode-2026-02-01"`
33228 
33229 - `"output-300k-2026-03-24"`
33230 
33231 - `"user-profiles-2026-03-24"`
33232 
33233 - `"user-profiles-2026-08-18"`
33234 
33235 - `"user-profiles-2026-09-04"`
33236 
33237 - `"advisor-tool-2026-03-01"`
33238 
33239 - `"managed-agents-2026-04-01"`
33240 
33241 - `"cache-diagnosis-2026-04-07"`
33242 
33243 - `"dreaming-2026-04-21"`
33244 
33245 - `"thinking-token-count-2026-05-13"`
33246 
33247 - `"server-side-fallback-2026-06-01"`
33248 
33249 - `"server-side-fallback-2026-07-01"`
33250 
33251 - `"fallback-credit-2026-06-01"`
33252 
33253 - `"fallback-credit-2026-07-01"`
33254 
33255 - `"agent-memory-2026-07-22"`
33256 
33257 - `"mid-conversation-tool-changes-2026-07-01"`
33258 
33259 - `"compact-2026-01-12"`
33260 
33261 - `"computer-use-2025-11-24"`
33262 
33263 - `"mcp-tunnels-2026-06-22"`
33264 
33265 - `"structured-outputs-2025-11-13"`
33266 
33267 - `"task-budgets-2026-03-13"`
33268 
33269 - `"thinking-display-updates-2026-08-18"`
33270 
33271 - `"ce-user-management-2026-07-13"`
33272 
33273 - `"mid-conversation-output-config-2026-07-01"`
33274 
33275 - `"thinking-binding-controls-2026-08-01"`
33276 
33277 - `"mid-conversation-system-clear-at-2026-08-21"`
33278 
33279 - `"compact-2026-09-04"`
33280 
33281 - `"inline-tools-2026-09-15"`
33282 
33283 - `"mcp-client-2026-09-15"`
33284 
33285 - `"ce-plugins-2026-09-01"`
33286 
33287 - `"spend-limit-reads-2026-09-26"`
33288 
33289 - `"telemetry-destinations-2026-08-11"`
33290 
33291 - `"webhooks-2026-10-07"`
33292 
33293 - `"message-threads-2026-08-12"`
33294 
33295 - `"analytics-usage-cost-2026-08-24"`
33296 
33297 - `"experimental-claude-tag-2026-10-21"`
33298 
33299#### Body parameters
33300 
33301- `slack: BetaClaudeTagSlackChannelIdentifiers`
33302 
33303 Slack's own identifiers for the channel to set up. The organization must own the workspace.
33304 
33305 - `channel_id: string`
33306 
33307 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
33308 
33309 minLength: 2, maxLength: 32
33310 
33311 - `workspace_id: string`
33312 
33313 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
33314 
33315 minLength: 2, maxLength: 32
33316 
33317- `settings: optional BetaClaudeTagSettingsCreate`
33318 
33319 Settings to store on the channel, applied as Update Slack Channel applies them.
33320 
33321 - `enabled: optional boolean or null`
33322 
33323 Whether Claude is on. `true` on a channel turns Claude on in it even when its workspace stores `false`. Null clears it.
33324 
33325 - `environment_id: optional string or null`
33326 
33327 The environment Claude's sessions run in: the identifier of an active environment of the organization, starting with `env_`. Null clears it.
33328 
33329 minLength: 1, maxLength: 64
33330 
33331 - `guest_policy: optional BetaClaudeTagGuestPolicy or null`
33332 
33333 What Claude does in a channel while a Slack guest is in it. Null clears it.
33334 
33335 - `BetaClaudeTagGuestPolicyAllow object`
33336 
33337 Claude answers in the channel.
33338 
33339 - `type: "allow"`
33340 
33341 - `BetaClaudeTagGuestPolicyRestrict object`
33342 
33343 Claude does not answer in the channel.
33344 
33345 - `type: "restrict"`
33346 
33347 - `BetaClaudeTagGuestPolicyChannelOnly object`
33348 
33349 Claude answers with only the Bundles attached to the channel itself.
33350 
33351 - `type: "channel_only"`
33352 
33353 - `instructions: optional string or null`
33354 
33355 Instructions for Claude, up to 8,192 characters after leading and trailing white space is trimmed. Null or blank text clears them.
33356 
33357 - `model: optional string or null`
33358 
33359 The model Claude uses: the identifier of a model, or the name of a model line, that the organization is entitled to for Claude Tag. Null clears it.
33360 
33361 minLength: 1, maxLength: 128
33362 
33363#### Returns
33364 
33365- `BetaClaudeTagSlackChannel object`
33366 
33367 A Slack channel set up for Claude Tag, with the settings it stores or, with `include_inherited`, the settings that apply in it.
33368 
33369 - `type: "slack_channel"`
33370 
33371 - `id: string`
33372 
33373 The channel's identifier. Starts with `slch_`. It does not change for as long as the channel is set up, with one exception: a channel that is not configured gets a new one when claude.ai replaces its record, which happens only while the organization's read-only mode is off. A channel that is removed and set up again also has a new one. The old one keeps returning 404; look the channel up by its Slack identifiers for the new one.
33374 
33375 - `created_at: string`
33376 
33377 Time the channel was set up, by whichever route. It does not change for as long as `id` does not.
33378 
33379 format: date-time
33380 
33381 - `settings: BetaClaudeTagSettings`
33382 
33383 What the channel itself stores or, with `include_inherited`, what applies in it. `sources` says which.
33384 
33385 - `enabled: boolean or null`
33386 
33387 Whether Claude is on. The nearest settings level that sets it decides.
33388 
33389 - `environment_id: string or null`
33390 
33391 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
33392 
33393 - `guest_policy: BetaClaudeTagGuestPolicy or null`
33394 
33395 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
33396 
33397 - `BetaClaudeTagGuestPolicyAllow object`
33398 
33399 Claude answers in the channel.
33400 
33401 - `type: "allow"`
33402 
33403 - `BetaClaudeTagGuestPolicyRestrict object`
33404 
33405 Claude does not answer in the channel.
33406 
33407 - `type: "restrict"`
33408 
33409 - `BetaClaudeTagGuestPolicyChannelOnly object`
33410 
33411 Claude answers with only the Bundles attached to the channel itself.
33412 
33413 - `type: "channel_only"`
33414 
33415 - `instructions: string or null`
33416 
33417 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
33418 
33419 - `model: string or null`
33420 
33421 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
33422 
33423 - `slack: BetaClaudeTagSlackChannelIdentifiers`
33424 
33425 Slack's own identifiers for the channel.
33426 
33427 - `channel_id: string`
33428 
33429 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
33430 
33431 minLength: 2, maxLength: 32
33432 
33433 - `workspace_id: string`
33434 
33435 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
33436 
33437 minLength: 2, maxLength: 32
33438 
33439 - `sources: BetaClaudeTagSettingSources`
33440 
33441 For each setting, the settings level its value in `settings` comes from.
33442 
33443 - `enabled: BetaClaudeTagSettingSource or null`
33444 
33445 The settings level `enabled` comes from.
33446 
33447 - `BetaClaudeTagSlackChannelSettingSource object`
33448 
33449 The value comes from the addressed Slack channel itself.
33450 
33451 - `type: "slack_channel"`
33452 
33453 - `slack_channel_id: string`
33454 
33455 The channel's identifier, starting with `slch_`.
33456 
33457 - `BetaClaudeTagSlackWorkspaceSettingSource object`
33458 
33459 The value comes from a Slack workspace of the organization.
33460 
33461 - `type: "slack_workspace"`
33462 
33463 - `slack_workspace_id: string`
33464 
33465 The workspace's identifier, starting with `slws_`.
33466 
33467 - `BetaClaudeTagSlackParentChannelSettingSource object`
33468 
33469 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
33470 
33471 - `type: "slack_parent_channel"`
33472 
33473 - `slack_channel_id: string`
33474 
33475 The parent channel's identifier, starting with `slch_`.
33476 
33477 - `BetaClaudeTagSlackDefaultSettingSource object`
33478 
33479 The value comes from the organization's Slack defaults, which have no identifier.
33480 
33481 - `type: "slack_default"`
33482 
33483 - `BetaClaudeTagDefaultSettingSource object`
33484 
33485 No settings level sets a value, and the built-in default applies.
33486 
33487 - `type: "default"`
33488 
33489 - `BetaClaudeTagSlackGridChannelSettingSource object`
33490 
33491 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
33492 
33493 - `type: "slack_grid_channel"`
33494 
33495 - `slack: BetaClaudeTagSlackChannelIdentifiers`
33496 
33497 Slack's own identifiers for the channel under that other workspace.
33498 
33499 - `environment_id: BetaClaudeTagSettingSource or null`
33500 
33501 The settings level `environment_id` comes from.
33502 
33503 - `guest_policy: BetaClaudeTagSettingSource or null`
33504 
33505 The settings level `guest_policy` comes from.
33506 
33507 - `instructions: array of BetaClaudeTagSettingSource`
33508 
33509 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
33510 
33511 - `BetaClaudeTagSlackChannelSettingSource object`
33512 
33513 The value comes from the addressed Slack channel itself.
33514 
33515 - `BetaClaudeTagSlackWorkspaceSettingSource object`
33516 
33517 The value comes from a Slack workspace of the organization.
33518 
33519 - `BetaClaudeTagSlackParentChannelSettingSource object`
33520 
33521 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
33522 
33523 - `BetaClaudeTagSlackDefaultSettingSource object`
33524 
33525 The value comes from the organization's Slack defaults, which have no identifier.
33526 
33527 - `BetaClaudeTagDefaultSettingSource object`
33528 
33529 No settings level sets a value, and the built-in default applies.
33530 
33531 - `BetaClaudeTagSlackGridChannelSettingSource object`
33532 
33533 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
33534 
33535 - `model: BetaClaudeTagSettingSource or null`
33536 
33537 The settings level `model` comes from.
33538 
33539 - `updated_at: string`
33540 
33541 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
33542 
33543 format: date-time
33544 
33545#### Example
33546 
33547```bash
33548curl https://api.anthropic.com/v1/organizations/claude_tag/slack_channels \
33549 -H 'Content-Type: application/json' \
33550 -H 'anthropic-version: 2026-10-21' \
33551 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
33552 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
33553 -d '{
33554 "slack": {
33555 "channel_id": "xx",
33556 "workspace_id": "xx"
33557 }
33558 }'
33559```
33560 
33561##### Response (200)
33562 
33563```json
33564{
33565 "id": "id",
33566 "created_at": "2019-12-27T18:11:19.117Z",
33567 "settings": {
33568 "enabled": true,
33569 "environment_id": "environment_id",
33570 "guest_policy": {
33571 "type": "allow"
33572 },
33573 "instructions": "instructions",
33574 "model": "model"
33575 },
33576 "slack": {
33577 "channel_id": "xx",
33578 "workspace_id": "xx"
33579 },
33580 "sources": {
33581 "enabled": {
33582 "slack_channel_id": "slack_channel_id",
33583 "type": "slack_channel"
33584 },
33585 "environment_id": {
33586 "slack_channel_id": "slack_channel_id",
33587 "type": "slack_channel"
33588 },
33589 "guest_policy": {
33590 "slack_channel_id": "slack_channel_id",
33591 "type": "slack_channel"
33592 },
33593 "instructions": [
33594 {
33595 "slack_channel_id": "slack_channel_id",
33596 "type": "slack_channel"
33597 }
33598 ],
33599 "model": {
33600 "slack_channel_id": "slack_channel_id",
33601 "type": "slack_channel"
33602 }
33603 },
33604 "type": "slack_channel",
33605 "updated_at": "2019-12-27T18:11:19.117Z"
33606}
33607```
33608 
33609### List Slack Channels
33610 
33611**GET** `/v1/organizations/claude_tag/slack_channels`
33612 
33613List the set-up Slack channels of one Slack workspace, newest first by `created_at`. A channel that is not set up is not listed: Slack holds the full list of a workspace's channels. Pass `slack_channel_id` as well to look one channel up by its Slack identifiers: `data` then holds that channel, or is empty when it is not set up, and `limit` and `page` are ignored. A workspace that the organization owns only through a Slack Enterprise Grid returns 404 until it is set up. With `include_inherited=true` each channel's `settings` holds what applies in it, and the request fails with 503 rather than resolve against a settings level that could not be read. A `page` cursor resumes only a request with the same `include_inherited`.
33614 
33615#### Query parameters
33616 
33617- `slack_workspace_id: string`
33618 
33619 The Slack workspace whose channels to list: Slack's identifier for it, as in the channel object's `slack.workspace_id`, not the workspace object's `id`.
33620 
33621- `include_inherited: optional boolean`
33622 
33623 When `true`, `settings` holds what applies in each channel once the settings levels above it are taken into account, and every member of `sources` names the level a value comes from. When `false` or left out, `settings` holds what each channel itself stores.
33624 
33625- `limit: optional number`
33626 
33627 Number of items to return per page, between 1 and 100. Defaults to 20.
33628 
33629 format: int32
33630 
33631- `page: optional string`
33632 
33633 Opaque cursor from a previous response's `next_page`.
33634 
33635- `slack_channel_id: optional string`
33636 
33637 Slack's identifier for one channel of that workspace, as in the channel object's `slack.channel_id`. It is not the channel object's `id`. With it `data` holds that channel alone, or nothing when the channel is not set up.
33638 
33639#### Headers
33640 
33641- `"anthropic-version": optional string`
33642 
33643 The version of the Claude API you want to use.
33644 
33645 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
33646 
33647- `"anthropic-beta": optional array of AnthropicBeta`
33648 
33649 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
33650 
33651 - `string`
33652 
33653 - `"message-batches-2024-09-24"`
33654 
33655 - `"prompt-caching-2024-07-31"`
33656 
33657 - `"computer-use-2024-10-22"`
33658 
33659 - `"computer-use-2025-01-24"`
33660 
33661 - `"pdfs-2024-09-25"`
33662 
33663 - `"token-counting-2024-11-01"`
33664 
33665 - `"token-efficient-tools-2025-02-19"`
33666 
33667 - `"output-128k-2025-02-19"`
33668 
33669 - `"files-api-2025-04-14"`
33670 
33671 - `"mcp-client-2025-04-04"`
33672 
33673 - `"mcp-client-2025-11-20"`
33674 
33675 - `"dev-full-thinking-2025-05-14"`
33676 
33677 - `"interleaved-thinking-2025-05-14"`
33678 
33679 - `"code-execution-2025-05-22"`
33680 
33681 - `"extended-cache-ttl-2025-04-11"`
33682 
33683 - `"context-1m-2025-08-07"`
33684 
33685 - `"context-management-2025-06-27"`
33686 
33687 - `"model-context-window-exceeded-2025-08-26"`
33688 
33689 - `"skills-2025-10-02"`
33690 
33691 - `"fast-mode-2026-02-01"`
33692 
33693 - `"output-300k-2026-03-24"`
33694 
33695 - `"user-profiles-2026-03-24"`
33696 
33697 - `"user-profiles-2026-08-18"`
33698 
33699 - `"user-profiles-2026-09-04"`
33700 
33701 - `"advisor-tool-2026-03-01"`
33702 
33703 - `"managed-agents-2026-04-01"`
33704 
33705 - `"cache-diagnosis-2026-04-07"`
33706 
33707 - `"dreaming-2026-04-21"`
33708 
33709 - `"thinking-token-count-2026-05-13"`
33710 
33711 - `"server-side-fallback-2026-06-01"`
33712 
33713 - `"server-side-fallback-2026-07-01"`
33714 
33715 - `"fallback-credit-2026-06-01"`
33716 
33717 - `"fallback-credit-2026-07-01"`
33718 
33719 - `"agent-memory-2026-07-22"`
33720 
33721 - `"mid-conversation-tool-changes-2026-07-01"`
33722 
33723 - `"compact-2026-01-12"`
33724 
33725 - `"computer-use-2025-11-24"`
33726 
33727 - `"mcp-tunnels-2026-06-22"`
33728 
33729 - `"structured-outputs-2025-11-13"`
33730 
33731 - `"task-budgets-2026-03-13"`
33732 
33733 - `"thinking-display-updates-2026-08-18"`
33734 
33735 - `"ce-user-management-2026-07-13"`
33736 
33737 - `"mid-conversation-output-config-2026-07-01"`
33738 
33739 - `"thinking-binding-controls-2026-08-01"`
33740 
33741 - `"mid-conversation-system-clear-at-2026-08-21"`
33742 
33743 - `"compact-2026-09-04"`
33744 
33745 - `"inline-tools-2026-09-15"`
33746 
33747 - `"mcp-client-2026-09-15"`
33748 
33749 - `"ce-plugins-2026-09-01"`
33750 
33751 - `"spend-limit-reads-2026-09-26"`
33752 
33753 - `"telemetry-destinations-2026-08-11"`
33754 
33755 - `"webhooks-2026-10-07"`
33756 
33757 - `"message-threads-2026-08-12"`
33758 
33759 - `"analytics-usage-cost-2026-08-24"`
33760 
33761 - `"experimental-claude-tag-2026-10-21"`
33762 
33763#### Returns
33764 
33765- `data: array of BetaClaudeTagSlackChannel`
33766 
33767 Channels on this page, newest first.
33768 
33769 - `type: "slack_channel"`
33770 
33771 - `id: string`
33772 
33773 The channel's identifier. Starts with `slch_`. It does not change for as long as the channel is set up, with one exception: a channel that is not configured gets a new one when claude.ai replaces its record, which happens only while the organization's read-only mode is off. A channel that is removed and set up again also has a new one. The old one keeps returning 404; look the channel up by its Slack identifiers for the new one.
33774 
33775 - `created_at: string`
33776 
33777 Time the channel was set up, by whichever route. It does not change for as long as `id` does not.
33778 
33779 format: date-time
33780 
33781 - `settings: BetaClaudeTagSettings`
33782 
33783 What the channel itself stores or, with `include_inherited`, what applies in it. `sources` says which.
33784 
33785 - `enabled: boolean or null`
33786 
33787 Whether Claude is on. The nearest settings level that sets it decides.
33788 
33789 - `environment_id: string or null`
33790 
33791 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
33792 
33793 - `guest_policy: BetaClaudeTagGuestPolicy or null`
33794 
33795 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
33796 
33797 - `BetaClaudeTagGuestPolicyAllow object`
33798 
33799 Claude answers in the channel.
33800 
33801 - `type: "allow"`
33802 
33803 - `BetaClaudeTagGuestPolicyRestrict object`
33804 
33805 Claude does not answer in the channel.
33806 
33807 - `type: "restrict"`
33808 
33809 - `BetaClaudeTagGuestPolicyChannelOnly object`
33810 
33811 Claude answers with only the Bundles attached to the channel itself.
33812 
33813 - `type: "channel_only"`
33814 
33815 - `instructions: string or null`
33816 
33817 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
33818 
33819 - `model: string or null`
33820 
33821 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
33822 
33823 - `slack: BetaClaudeTagSlackChannelIdentifiers`
33824 
33825 Slack's own identifiers for the channel.
33826 
33827 - `channel_id: string`
33828 
33829 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
33830 
33831 minLength: 2, maxLength: 32
33832 
33833 - `workspace_id: string`
33834 
33835 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
33836 
33837 minLength: 2, maxLength: 32
33838 
33839 - `sources: BetaClaudeTagSettingSources`
33840 
33841 For each setting, the settings level its value in `settings` comes from.
33842 
33843 - `enabled: BetaClaudeTagSettingSource or null`
33844 
33845 The settings level `enabled` comes from.
33846 
33847 - `BetaClaudeTagSlackChannelSettingSource object`
33848 
33849 The value comes from the addressed Slack channel itself.
33850 
33851 - `type: "slack_channel"`
33852 
33853 - `slack_channel_id: string`
33854 
33855 The channel's identifier, starting with `slch_`.
33856 
33857 - `BetaClaudeTagSlackWorkspaceSettingSource object`
33858 
33859 The value comes from a Slack workspace of the organization.
33860 
33861 - `type: "slack_workspace"`
33862 
33863 - `slack_workspace_id: string`
33864 
33865 The workspace's identifier, starting with `slws_`.
33866 
33867 - `BetaClaudeTagSlackParentChannelSettingSource object`
33868 
33869 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
33870 
33871 - `type: "slack_parent_channel"`
33872 
33873 - `slack_channel_id: string`
33874 
33875 The parent channel's identifier, starting with `slch_`.
33876 
33877 - `BetaClaudeTagSlackDefaultSettingSource object`
33878 
33879 The value comes from the organization's Slack defaults, which have no identifier.
33880 
33881 - `type: "slack_default"`
33882 
33883 - `BetaClaudeTagDefaultSettingSource object`
33884 
33885 No settings level sets a value, and the built-in default applies.
33886 
33887 - `type: "default"`
33888 
33889 - `BetaClaudeTagSlackGridChannelSettingSource object`
33890 
33891 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
33892 
33893 - `type: "slack_grid_channel"`
33894 
33895 - `slack: BetaClaudeTagSlackChannelIdentifiers`
33896 
33897 Slack's own identifiers for the channel under that other workspace.
33898 
33899 - `environment_id: BetaClaudeTagSettingSource or null`
33900 
33901 The settings level `environment_id` comes from.
33902 
33903 - `guest_policy: BetaClaudeTagSettingSource or null`
33904 
33905 The settings level `guest_policy` comes from.
33906 
33907 - `instructions: array of BetaClaudeTagSettingSource`
33908 
33909 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
33910 
33911 - `BetaClaudeTagSlackChannelSettingSource object`
33912 
33913 The value comes from the addressed Slack channel itself.
33914 
33915 - `BetaClaudeTagSlackWorkspaceSettingSource object`
33916 
33917 The value comes from a Slack workspace of the organization.
33918 
33919 - `BetaClaudeTagSlackParentChannelSettingSource object`
33920 
33921 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
33922 
33923 - `BetaClaudeTagSlackDefaultSettingSource object`
33924 
33925 The value comes from the organization's Slack defaults, which have no identifier.
33926 
33927 - `BetaClaudeTagDefaultSettingSource object`
33928 
33929 No settings level sets a value, and the built-in default applies.
33930 
33931 - `BetaClaudeTagSlackGridChannelSettingSource object`
33932 
33933 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
33934 
33935 - `model: BetaClaudeTagSettingSource or null`
33936 
33937 The settings level `model` comes from.
33938 
33939 - `updated_at: string`
33940 
33941 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
33942 
33943 format: date-time
33944 
33945- `next_page: string or null`
33946 
33947 Cursor for the next page. Null on the last page.
33948 
33949#### Example
33950 
33951```bash
33952curl https://api.anthropic.com/v1/organizations/claude_tag/slack_channels \
33953 -H 'anthropic-version: 2026-10-21' \
33954 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
33955 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
33956```
33957 
33958##### Response (200)
33959 
33960```json
33961{
33962 "data": [
33963 {
33964 "id": "id",
33965 "created_at": "2019-12-27T18:11:19.117Z",
33966 "settings": {
33967 "enabled": true,
33968 "environment_id": "environment_id",
33969 "guest_policy": {
33970 "type": "allow"
33971 },
33972 "instructions": "instructions",
33973 "model": "model"
33974 },
33975 "slack": {
33976 "channel_id": "xx",
33977 "workspace_id": "xx"
33978 },
33979 "sources": {
33980 "enabled": {
33981 "slack_channel_id": "slack_channel_id",
33982 "type": "slack_channel"
33983 },
33984 "environment_id": {
33985 "slack_channel_id": "slack_channel_id",
33986 "type": "slack_channel"
33987 },
33988 "guest_policy": {
33989 "slack_channel_id": "slack_channel_id",
33990 "type": "slack_channel"
33991 },
33992 "instructions": [
33993 {
33994 "slack_channel_id": "slack_channel_id",
33995 "type": "slack_channel"
33996 }
33997 ],
33998 "model": {
33999 "slack_channel_id": "slack_channel_id",
34000 "type": "slack_channel"
34001 }
34002 },
34003 "type": "slack_channel",
34004 "updated_at": "2019-12-27T18:11:19.117Z"
34005 }
34006 ],
34007 "next_page": "next_page"
34008}
34009```
34010 
34011### Get Slack Channel
34012 
34013**GET** `/v1/organizations/claude_tag/slack_channels/{id}`
34014 
34015Get one Slack channel and its settings. By default `settings` holds what the channel itself stores: a setting that is null there is not set on the channel and is inherited. With `include_inherited=true`, `settings` holds what applies in the channel once the settings levels above it are taken into account, and the request fails with 503 rather than resolve against a settings level that could not be read. Either way `sources` names the settings level each value comes from, so a caller tells the channel's own value from an inherited one by its source, not by whether it is null.
34016 
34017#### Path parameters
34018 
34019- `id: string`
34020 
34021 The channel's identifier, starting with `slch_`.
34022 
34023#### Query parameters
34024 
34025- `include_inherited: optional boolean`
34026 
34027 When `true`, `settings` holds what applies in the channel once the settings levels above it are taken into account, and every member of `sources` names the level a value comes from. When `false` or left out, `settings` holds what the channel itself stores.
34028 
34029#### Headers
34030 
34031- `"anthropic-version": optional string`
34032 
34033 The version of the Claude API you want to use.
34034 
34035 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
34036 
34037- `"anthropic-beta": optional array of AnthropicBeta`
34038 
34039 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
34040 
34041 - `string`
34042 
34043 - `"message-batches-2024-09-24"`
34044 
34045 - `"prompt-caching-2024-07-31"`
34046 
34047 - `"computer-use-2024-10-22"`
34048 
34049 - `"computer-use-2025-01-24"`
34050 
34051 - `"pdfs-2024-09-25"`
34052 
34053 - `"token-counting-2024-11-01"`
34054 
34055 - `"token-efficient-tools-2025-02-19"`
34056 
34057 - `"output-128k-2025-02-19"`
34058 
34059 - `"files-api-2025-04-14"`
34060 
34061 - `"mcp-client-2025-04-04"`
34062 
34063 - `"mcp-client-2025-11-20"`
34064 
34065 - `"dev-full-thinking-2025-05-14"`
34066 
34067 - `"interleaved-thinking-2025-05-14"`
34068 
34069 - `"code-execution-2025-05-22"`
34070 
34071 - `"extended-cache-ttl-2025-04-11"`
34072 
34073 - `"context-1m-2025-08-07"`
34074 
34075 - `"context-management-2025-06-27"`
34076 
34077 - `"model-context-window-exceeded-2025-08-26"`
34078 
34079 - `"skills-2025-10-02"`
34080 
34081 - `"fast-mode-2026-02-01"`
34082 
34083 - `"output-300k-2026-03-24"`
34084 
34085 - `"user-profiles-2026-03-24"`
34086 
34087 - `"user-profiles-2026-08-18"`
34088 
34089 - `"user-profiles-2026-09-04"`
34090 
34091 - `"advisor-tool-2026-03-01"`
34092 
34093 - `"managed-agents-2026-04-01"`
34094 
34095 - `"cache-diagnosis-2026-04-07"`
34096 
34097 - `"dreaming-2026-04-21"`
34098 
34099 - `"thinking-token-count-2026-05-13"`
34100 
34101 - `"server-side-fallback-2026-06-01"`
34102 
34103 - `"server-side-fallback-2026-07-01"`
34104 
34105 - `"fallback-credit-2026-06-01"`
34106 
34107 - `"fallback-credit-2026-07-01"`
34108 
34109 - `"agent-memory-2026-07-22"`
34110 
34111 - `"mid-conversation-tool-changes-2026-07-01"`
34112 
34113 - `"compact-2026-01-12"`
34114 
34115 - `"computer-use-2025-11-24"`
34116 
34117 - `"mcp-tunnels-2026-06-22"`
34118 
34119 - `"structured-outputs-2025-11-13"`
34120 
34121 - `"task-budgets-2026-03-13"`
34122 
34123 - `"thinking-display-updates-2026-08-18"`
34124 
34125 - `"ce-user-management-2026-07-13"`
34126 
34127 - `"mid-conversation-output-config-2026-07-01"`
34128 
34129 - `"thinking-binding-controls-2026-08-01"`
34130 
34131 - `"mid-conversation-system-clear-at-2026-08-21"`
34132 
34133 - `"compact-2026-09-04"`
34134 
34135 - `"inline-tools-2026-09-15"`
34136 
34137 - `"mcp-client-2026-09-15"`
34138 
34139 - `"ce-plugins-2026-09-01"`
34140 
34141 - `"spend-limit-reads-2026-09-26"`
34142 
34143 - `"telemetry-destinations-2026-08-11"`
34144 
34145 - `"webhooks-2026-10-07"`
34146 
34147 - `"message-threads-2026-08-12"`
34148 
34149 - `"analytics-usage-cost-2026-08-24"`
34150 
34151 - `"experimental-claude-tag-2026-10-21"`
34152 
34153#### Returns
34154 
34155- `BetaClaudeTagSlackChannel object`
34156 
34157 A Slack channel set up for Claude Tag, with the settings it stores or, with `include_inherited`, the settings that apply in it.
34158 
34159 - `type: "slack_channel"`
34160 
34161 - `id: string`
34162 
34163 The channel's identifier. Starts with `slch_`. It does not change for as long as the channel is set up, with one exception: a channel that is not configured gets a new one when claude.ai replaces its record, which happens only while the organization's read-only mode is off. A channel that is removed and set up again also has a new one. The old one keeps returning 404; look the channel up by its Slack identifiers for the new one.
34164 
34165 - `created_at: string`
34166 
34167 Time the channel was set up, by whichever route. It does not change for as long as `id` does not.
34168 
34169 format: date-time
34170 
34171 - `settings: BetaClaudeTagSettings`
34172 
34173 What the channel itself stores or, with `include_inherited`, what applies in it. `sources` says which.
34174 
34175 - `enabled: boolean or null`
34176 
34177 Whether Claude is on. The nearest settings level that sets it decides.
34178 
34179 - `environment_id: string or null`
34180 
34181 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
34182 
34183 - `guest_policy: BetaClaudeTagGuestPolicy or null`
34184 
34185 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
34186 
34187 - `BetaClaudeTagGuestPolicyAllow object`
34188 
34189 Claude answers in the channel.
34190 
34191 - `type: "allow"`
34192 
34193 - `BetaClaudeTagGuestPolicyRestrict object`
34194 
34195 Claude does not answer in the channel.
34196 
34197 - `type: "restrict"`
34198 
34199 - `BetaClaudeTagGuestPolicyChannelOnly object`
34200 
34201 Claude answers with only the Bundles attached to the channel itself.
34202 
34203 - `type: "channel_only"`
34204 
34205 - `instructions: string or null`
34206 
34207 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
34208 
34209 - `model: string or null`
34210 
34211 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
34212 
34213 - `slack: BetaClaudeTagSlackChannelIdentifiers`
34214 
34215 Slack's own identifiers for the channel.
34216 
34217 - `channel_id: string`
34218 
34219 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
34220 
34221 minLength: 2, maxLength: 32
34222 
34223 - `workspace_id: string`
34224 
34225 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
34226 
34227 minLength: 2, maxLength: 32
34228 
34229 - `sources: BetaClaudeTagSettingSources`
34230 
34231 For each setting, the settings level its value in `settings` comes from.
34232 
34233 - `enabled: BetaClaudeTagSettingSource or null`
34234 
34235 The settings level `enabled` comes from.
34236 
34237 - `BetaClaudeTagSlackChannelSettingSource object`
34238 
34239 The value comes from the addressed Slack channel itself.
34240 
34241 - `type: "slack_channel"`
34242 
34243 - `slack_channel_id: string`
34244 
34245 The channel's identifier, starting with `slch_`.
34246 
34247 - `BetaClaudeTagSlackWorkspaceSettingSource object`
34248 
34249 The value comes from a Slack workspace of the organization.
34250 
34251 - `type: "slack_workspace"`
34252 
34253 - `slack_workspace_id: string`
34254 
34255 The workspace's identifier, starting with `slws_`.
34256 
34257 - `BetaClaudeTagSlackParentChannelSettingSource object`
34258 
34259 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
34260 
34261 - `type: "slack_parent_channel"`
34262 
34263 - `slack_channel_id: string`
34264 
34265 The parent channel's identifier, starting with `slch_`.
34266 
34267 - `BetaClaudeTagSlackDefaultSettingSource object`
34268 
34269 The value comes from the organization's Slack defaults, which have no identifier.
34270 
34271 - `type: "slack_default"`
34272 
34273 - `BetaClaudeTagDefaultSettingSource object`
34274 
34275 No settings level sets a value, and the built-in default applies.
34276 
34277 - `type: "default"`
34278 
34279 - `BetaClaudeTagSlackGridChannelSettingSource object`
34280 
34281 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
34282 
34283 - `type: "slack_grid_channel"`
34284 
34285 - `slack: BetaClaudeTagSlackChannelIdentifiers`
34286 
34287 Slack's own identifiers for the channel under that other workspace.
34288 
34289 - `environment_id: BetaClaudeTagSettingSource or null`
34290 
34291 The settings level `environment_id` comes from.
34292 
34293 - `guest_policy: BetaClaudeTagSettingSource or null`
34294 
34295 The settings level `guest_policy` comes from.
34296 
34297 - `instructions: array of BetaClaudeTagSettingSource`
34298 
34299 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
34300 
34301 - `BetaClaudeTagSlackChannelSettingSource object`
34302 
34303 The value comes from the addressed Slack channel itself.
34304 
34305 - `BetaClaudeTagSlackWorkspaceSettingSource object`
34306 
34307 The value comes from a Slack workspace of the organization.
34308 
34309 - `BetaClaudeTagSlackParentChannelSettingSource object`
34310 
34311 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
34312 
34313 - `BetaClaudeTagSlackDefaultSettingSource object`
34314 
34315 The value comes from the organization's Slack defaults, which have no identifier.
34316 
34317 - `BetaClaudeTagDefaultSettingSource object`
34318 
34319 No settings level sets a value, and the built-in default applies.
34320 
34321 - `BetaClaudeTagSlackGridChannelSettingSource object`
34322 
34323 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
34324 
34325 - `model: BetaClaudeTagSettingSource or null`
34326 
34327 The settings level `model` comes from.
34328 
34329 - `updated_at: string`
34330 
34331 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
34332 
34333 format: date-time
34334 
34335#### Example
34336 
34337```bash
34338curl https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/$ID \
34339 -H 'anthropic-version: 2026-10-21' \
34340 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
34341 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
34342```
34343 
34344##### Response (200)
34345 
34346```json
34347{
34348 "id": "id",
34349 "created_at": "2019-12-27T18:11:19.117Z",
34350 "settings": {
34351 "enabled": true,
34352 "environment_id": "environment_id",
34353 "guest_policy": {
34354 "type": "allow"
34355 },
34356 "instructions": "instructions",
34357 "model": "model"
34358 },
34359 "slack": {
34360 "channel_id": "xx",
34361 "workspace_id": "xx"
34362 },
34363 "sources": {
34364 "enabled": {
34365 "slack_channel_id": "slack_channel_id",
34366 "type": "slack_channel"
34367 },
34368 "environment_id": {
34369 "slack_channel_id": "slack_channel_id",
34370 "type": "slack_channel"
34371 },
34372 "guest_policy": {
34373 "slack_channel_id": "slack_channel_id",
34374 "type": "slack_channel"
34375 },
34376 "instructions": [
34377 {
34378 "slack_channel_id": "slack_channel_id",
34379 "type": "slack_channel"
34380 }
34381 ],
34382 "model": {
34383 "slack_channel_id": "slack_channel_id",
34384 "type": "slack_channel"
34385 }
34386 },
34387 "type": "slack_channel",
34388 "updated_at": "2019-12-27T18:11:19.117Z"
34389}
34390```
34391 
34392### Update Slack Channel
34393 
34394**POST** `/v1/organizations/claude_tag/slack_channels/{id}`
34395 
34396Change the settings a Slack channel stores. The update is partial: a setting left out is unchanged, and a setting sent as null is cleared, so the channel inherits it. If any value is refused, no setting in the request is stored. A group direct message takes no settings and returns 400.
34397 
34398#### Path parameters
34399 
34400- `id: string`
34401 
34402 The channel's identifier, starting with `slch_`.
34403 
34404#### Headers
34405 
34406- `"anthropic-version": optional string`
34407 
34408 The version of the Claude API you want to use.
34409 
34410 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
34411 
34412- `"anthropic-beta": optional array of AnthropicBeta`
34413 
34414 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
34415 
34416 - `string`
34417 
34418 - `"message-batches-2024-09-24"`
34419 
34420 - `"prompt-caching-2024-07-31"`
34421 
34422 - `"computer-use-2024-10-22"`
34423 
34424 - `"computer-use-2025-01-24"`
34425 
34426 - `"pdfs-2024-09-25"`
34427 
34428 - `"token-counting-2024-11-01"`
34429 
34430 - `"token-efficient-tools-2025-02-19"`
34431 
34432 - `"output-128k-2025-02-19"`
34433 
34434 - `"files-api-2025-04-14"`
34435 
34436 - `"mcp-client-2025-04-04"`
34437 
34438 - `"mcp-client-2025-11-20"`
34439 
34440 - `"dev-full-thinking-2025-05-14"`
34441 
34442 - `"interleaved-thinking-2025-05-14"`
34443 
34444 - `"code-execution-2025-05-22"`
34445 
34446 - `"extended-cache-ttl-2025-04-11"`
34447 
34448 - `"context-1m-2025-08-07"`
34449 
34450 - `"context-management-2025-06-27"`
34451 
34452 - `"model-context-window-exceeded-2025-08-26"`
34453 
34454 - `"skills-2025-10-02"`
34455 
34456 - `"fast-mode-2026-02-01"`
34457 
34458 - `"output-300k-2026-03-24"`
34459 
34460 - `"user-profiles-2026-03-24"`
34461 
34462 - `"user-profiles-2026-08-18"`
34463 
34464 - `"user-profiles-2026-09-04"`
34465 
34466 - `"advisor-tool-2026-03-01"`
34467 
34468 - `"managed-agents-2026-04-01"`
34469 
34470 - `"cache-diagnosis-2026-04-07"`
34471 
34472 - `"dreaming-2026-04-21"`
34473 
34474 - `"thinking-token-count-2026-05-13"`
34475 
34476 - `"server-side-fallback-2026-06-01"`
34477 
34478 - `"server-side-fallback-2026-07-01"`
34479 
34480 - `"fallback-credit-2026-06-01"`
34481 
34482 - `"fallback-credit-2026-07-01"`
34483 
34484 - `"agent-memory-2026-07-22"`
34485 
34486 - `"mid-conversation-tool-changes-2026-07-01"`
34487 
34488 - `"compact-2026-01-12"`
34489 
34490 - `"computer-use-2025-11-24"`
34491 
34492 - `"mcp-tunnels-2026-06-22"`
34493 
34494 - `"structured-outputs-2025-11-13"`
34495 
34496 - `"task-budgets-2026-03-13"`
34497 
34498 - `"thinking-display-updates-2026-08-18"`
34499 
34500 - `"ce-user-management-2026-07-13"`
34501 
34502 - `"mid-conversation-output-config-2026-07-01"`
34503 
34504 - `"thinking-binding-controls-2026-08-01"`
34505 
34506 - `"mid-conversation-system-clear-at-2026-08-21"`
34507 
34508 - `"compact-2026-09-04"`
34509 
34510 - `"inline-tools-2026-09-15"`
34511 
34512 - `"mcp-client-2026-09-15"`
34513 
34514 - `"ce-plugins-2026-09-01"`
34515 
34516 - `"spend-limit-reads-2026-09-26"`
34517 
34518 - `"telemetry-destinations-2026-08-11"`
34519 
34520 - `"webhooks-2026-10-07"`
34521 
34522 - `"message-threads-2026-08-12"`
34523 
34524 - `"analytics-usage-cost-2026-08-24"`
34525 
34526 - `"experimental-claude-tag-2026-10-21"`
34527 
34528#### Body parameters
34529 
34530- `settings: BetaClaudeTagSettingsUpdate`
34531 
34532 The settings to change.
34533 
34534 - `enabled: optional boolean or null`
34535 
34536 Whether Claude is on. `true` on a channel turns Claude on in it even when its workspace stores `false`. Null clears it.
34537 
34538 - `environment_id: optional string or null`
34539 
34540 The environment Claude's sessions run in: the identifier of an active environment of the organization, starting with `env_`. Null clears it.
34541 
34542 minLength: 1, maxLength: 64
34543 
34544 - `guest_policy: optional BetaClaudeTagGuestPolicy or null`
34545 
34546 What Claude does in a channel while a Slack guest is in it. Null clears it.
34547 
34548 - `BetaClaudeTagGuestPolicyAllow object`
34549 
34550 Claude answers in the channel.
34551 
34552 - `type: "allow"`
34553 
34554 - `BetaClaudeTagGuestPolicyRestrict object`
34555 
34556 Claude does not answer in the channel.
34557 
34558 - `type: "restrict"`
34559 
34560 - `BetaClaudeTagGuestPolicyChannelOnly object`
34561 
34562 Claude answers with only the Bundles attached to the channel itself.
34563 
34564 - `type: "channel_only"`
34565 
34566 - `instructions: optional string or null`
34567 
34568 Instructions for Claude, up to 8,192 characters after leading and trailing white space is trimmed. Null or blank text clears them.
34569 
34570 - `model: optional string or null`
34571 
34572 The model Claude uses: the identifier of a model, or the name of a model line, that the organization is entitled to for Claude Tag. Null clears it.
34573 
34574 minLength: 1, maxLength: 128
34575 
34576#### Returns
34577 
34578- `BetaClaudeTagSlackChannel object`
34579 
34580 A Slack channel set up for Claude Tag, with the settings it stores or, with `include_inherited`, the settings that apply in it.
34581 
34582 - `type: "slack_channel"`
34583 
34584 - `id: string`
34585 
34586 The channel's identifier. Starts with `slch_`. It does not change for as long as the channel is set up, with one exception: a channel that is not configured gets a new one when claude.ai replaces its record, which happens only while the organization's read-only mode is off. A channel that is removed and set up again also has a new one. The old one keeps returning 404; look the channel up by its Slack identifiers for the new one.
34587 
34588 - `created_at: string`
34589 
34590 Time the channel was set up, by whichever route. It does not change for as long as `id` does not.
34591 
34592 format: date-time
34593 
34594 - `settings: BetaClaudeTagSettings`
34595 
34596 What the channel itself stores or, with `include_inherited`, what applies in it. `sources` says which.
34597 
34598 - `enabled: boolean or null`
34599 
34600 Whether Claude is on. The nearest settings level that sets it decides.
34601 
34602 - `environment_id: string or null`
34603 
34604 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
34605 
34606 - `guest_policy: BetaClaudeTagGuestPolicy or null`
34607 
34608 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
34609 
34610 - `BetaClaudeTagGuestPolicyAllow object`
34611 
34612 Claude answers in the channel.
34613 
34614 - `type: "allow"`
34615 
34616 - `BetaClaudeTagGuestPolicyRestrict object`
34617 
34618 Claude does not answer in the channel.
34619 
34620 - `type: "restrict"`
34621 
34622 - `BetaClaudeTagGuestPolicyChannelOnly object`
34623 
34624 Claude answers with only the Bundles attached to the channel itself.
34625 
34626 - `type: "channel_only"`
34627 
34628 - `instructions: string or null`
34629 
34630 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
34631 
34632 - `model: string or null`
34633 
34634 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
34635 
34636 - `slack: BetaClaudeTagSlackChannelIdentifiers`
34637 
34638 Slack's own identifiers for the channel.
34639 
34640 - `channel_id: string`
34641 
34642 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
34643 
34644 minLength: 2, maxLength: 32
34645 
34646 - `workspace_id: string`
34647 
34648 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
34649 
34650 minLength: 2, maxLength: 32
34651 
34652 - `sources: BetaClaudeTagSettingSources`
34653 
34654 For each setting, the settings level its value in `settings` comes from.
34655 
34656 - `enabled: BetaClaudeTagSettingSource or null`
34657 
34658 The settings level `enabled` comes from.
34659 
34660 - `BetaClaudeTagSlackChannelSettingSource object`
34661 
34662 The value comes from the addressed Slack channel itself.
34663 
34664 - `type: "slack_channel"`
34665 
34666 - `slack_channel_id: string`
34667 
34668 The channel's identifier, starting with `slch_`.
34669 
34670 - `BetaClaudeTagSlackWorkspaceSettingSource object`
34671 
34672 The value comes from a Slack workspace of the organization.
34673 
34674 - `type: "slack_workspace"`
34675 
34676 - `slack_workspace_id: string`
34677 
34678 The workspace's identifier, starting with `slws_`.
34679 
34680 - `BetaClaudeTagSlackParentChannelSettingSource object`
34681 
34682 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
34683 
34684 - `type: "slack_parent_channel"`
34685 
34686 - `slack_channel_id: string`
34687 
34688 The parent channel's identifier, starting with `slch_`.
34689 
34690 - `BetaClaudeTagSlackDefaultSettingSource object`
34691 
34692 The value comes from the organization's Slack defaults, which have no identifier.
34693 
34694 - `type: "slack_default"`
34695 
34696 - `BetaClaudeTagDefaultSettingSource object`
34697 
34698 No settings level sets a value, and the built-in default applies.
34699 
34700 - `type: "default"`
34701 
34702 - `BetaClaudeTagSlackGridChannelSettingSource object`
34703 
34704 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
34705 
34706 - `type: "slack_grid_channel"`
34707 
34708 - `slack: BetaClaudeTagSlackChannelIdentifiers`
34709 
34710 Slack's own identifiers for the channel under that other workspace.
34711 
34712 - `environment_id: BetaClaudeTagSettingSource or null`
34713 
34714 The settings level `environment_id` comes from.
34715 
34716 - `guest_policy: BetaClaudeTagSettingSource or null`
34717 
34718 The settings level `guest_policy` comes from.
34719 
34720 - `instructions: array of BetaClaudeTagSettingSource`
34721 
34722 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
34723 
34724 - `BetaClaudeTagSlackChannelSettingSource object`
34725 
34726 The value comes from the addressed Slack channel itself.
34727 
34728 - `BetaClaudeTagSlackWorkspaceSettingSource object`
34729 
34730 The value comes from a Slack workspace of the organization.
34731 
34732 - `BetaClaudeTagSlackParentChannelSettingSource object`
34733 
34734 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
34735 
34736 - `BetaClaudeTagSlackDefaultSettingSource object`
34737 
34738 The value comes from the organization's Slack defaults, which have no identifier.
34739 
34740 - `BetaClaudeTagDefaultSettingSource object`
34741 
34742 No settings level sets a value, and the built-in default applies.
34743 
34744 - `BetaClaudeTagSlackGridChannelSettingSource object`
34745 
34746 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
34747 
34748 - `model: BetaClaudeTagSettingSource or null`
34749 
34750 The settings level `model` comes from.
34751 
34752 - `updated_at: string`
34753 
34754 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
34755 
34756 format: date-time
34757 
34758#### Example
34759 
34760```bash
34761curl https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/$ID \
34762 -H 'Content-Type: application/json' \
34763 -H 'anthropic-version: 2026-10-21' \
34764 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
34765 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
34766 -d '{
34767 "settings": {}
34768 }'
34769```
34770 
34771##### Response (200)
34772 
34773```json
34774{
34775 "id": "id",
34776 "created_at": "2019-12-27T18:11:19.117Z",
34777 "settings": {
34778 "enabled": true,
34779 "environment_id": "environment_id",
34780 "guest_policy": {
34781 "type": "allow"
34782 },
34783 "instructions": "instructions",
34784 "model": "model"
34785 },
34786 "slack": {
34787 "channel_id": "xx",
34788 "workspace_id": "xx"
34789 },
34790 "sources": {
34791 "enabled": {
34792 "slack_channel_id": "slack_channel_id",
34793 "type": "slack_channel"
34794 },
34795 "environment_id": {
34796 "slack_channel_id": "slack_channel_id",
34797 "type": "slack_channel"
34798 },
34799 "guest_policy": {
34800 "slack_channel_id": "slack_channel_id",
34801 "type": "slack_channel"
34802 },
34803 "instructions": [
34804 {
34805 "slack_channel_id": "slack_channel_id",
34806 "type": "slack_channel"
34807 }
34808 ],
34809 "model": {
34810 "slack_channel_id": "slack_channel_id",
34811 "type": "slack_channel"
34812 }
34813 },
34814 "type": "slack_channel",
34815 "updated_at": "2019-12-27T18:11:19.117Z"
34816}
34817```
34818 
34819### Remove Slack Channel
34820 
34821**DELETE** `/v1/organizations/claude_tag/slack_channels/{id}`
34822 
34823Remove a Slack channel from Claude Tag. This deletes the channel's stored settings and its Bundle Targets at once, and then, in the background, the channel's sessions and their transcripts, its memory, its routines and the artifacts published from it. None of it can be restored. The channel in Slack and its messages are unchanged. The request is refused with 400 and `error.details.error_code` `slack_channel_enabled` while `enabled` resolves to `true` for the channel, as a read with `include_inherited=true` returns it: set `enabled` to `false` on the channel first. This guards against removing a channel in use by mistake; it is not a way to keep Claude out, because the removal deletes the channel's own `enabled: false` with its other settings, after which the channel inherits again and Claude's next use of it can set it up anew with a new identifier. The identifier returns 404 as soon as the request returns, so a repeated removal returns 404. A group direct message returns 400, and so does a channel that holds configuration this API does not manage.
34824 
34825#### Path parameters
34826 
34827- `id: string`
34828 
34829 The channel's identifier, starting with `slch_`.
34830 
34831#### Headers
34832 
34833- `"anthropic-version": optional string`
34834 
34835 The version of the Claude API you want to use.
34836 
34837 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
34838 
34839- `"anthropic-beta": optional array of AnthropicBeta`
34840 
34841 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
34842 
34843 - `string`
34844 
34845 - `"message-batches-2024-09-24"`
34846 
34847 - `"prompt-caching-2024-07-31"`
34848 
34849 - `"computer-use-2024-10-22"`
34850 
34851 - `"computer-use-2025-01-24"`
34852 
34853 - `"pdfs-2024-09-25"`
34854 
34855 - `"token-counting-2024-11-01"`
34856 
34857 - `"token-efficient-tools-2025-02-19"`
34858 
34859 - `"output-128k-2025-02-19"`
34860 
34861 - `"files-api-2025-04-14"`
34862 
34863 - `"mcp-client-2025-04-04"`
34864 
34865 - `"mcp-client-2025-11-20"`
34866 
34867 - `"dev-full-thinking-2025-05-14"`
34868 
34869 - `"interleaved-thinking-2025-05-14"`
34870 
34871 - `"code-execution-2025-05-22"`
34872 
34873 - `"extended-cache-ttl-2025-04-11"`
34874 
34875 - `"context-1m-2025-08-07"`
34876 
34877 - `"context-management-2025-06-27"`
34878 
34879 - `"model-context-window-exceeded-2025-08-26"`
34880 
34881 - `"skills-2025-10-02"`
34882 
34883 - `"fast-mode-2026-02-01"`
34884 
34885 - `"output-300k-2026-03-24"`
34886 
34887 - `"user-profiles-2026-03-24"`
34888 
34889 - `"user-profiles-2026-08-18"`
34890 
34891 - `"user-profiles-2026-09-04"`
34892 
34893 - `"advisor-tool-2026-03-01"`
34894 
34895 - `"managed-agents-2026-04-01"`
34896 
34897 - `"cache-diagnosis-2026-04-07"`
34898 
34899 - `"dreaming-2026-04-21"`
34900 
34901 - `"thinking-token-count-2026-05-13"`
34902 
34903 - `"server-side-fallback-2026-06-01"`
34904 
34905 - `"server-side-fallback-2026-07-01"`
34906 
34907 - `"fallback-credit-2026-06-01"`
34908 
34909 - `"fallback-credit-2026-07-01"`
34910 
34911 - `"agent-memory-2026-07-22"`
34912 
34913 - `"mid-conversation-tool-changes-2026-07-01"`
34914 
34915 - `"compact-2026-01-12"`
34916 
34917 - `"computer-use-2025-11-24"`
34918 
34919 - `"mcp-tunnels-2026-06-22"`
34920 
34921 - `"structured-outputs-2025-11-13"`
34922 
34923 - `"task-budgets-2026-03-13"`
34924 
34925 - `"thinking-display-updates-2026-08-18"`
34926 
34927 - `"ce-user-management-2026-07-13"`
34928 
34929 - `"mid-conversation-output-config-2026-07-01"`
34930 
34931 - `"thinking-binding-controls-2026-08-01"`
34932 
34933 - `"mid-conversation-system-clear-at-2026-08-21"`
34934 
34935 - `"compact-2026-09-04"`
34936 
34937 - `"inline-tools-2026-09-15"`
34938 
34939 - `"mcp-client-2026-09-15"`
34940 
34941 - `"ce-plugins-2026-09-01"`
34942 
34943 - `"spend-limit-reads-2026-09-26"`
34944 
34945 - `"telemetry-destinations-2026-08-11"`
34946 
34947 - `"webhooks-2026-10-07"`
34948 
34949 - `"message-threads-2026-08-12"`
34950 
34951 - `"analytics-usage-cost-2026-08-24"`
34952 
34953 - `"experimental-claude-tag-2026-10-21"`
34954 
34955#### Returns
34956 
34957- `BetaClaudeTagDeletedSlackChannel object`
34958 
34959 Confirms that a Slack channel was removed from Claude Tag.
34960 
34961 - `type: "slack_channel_deleted"`
34962 
34963 - `id: string`
34964 
34965 The removed channel's identifier.
34966 
34967#### Example
34968 
34969```bash
34970curl https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/$ID \
34971 -X DELETE \
34972 -H 'anthropic-version: 2026-10-21' \
34973 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
34974 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
34975```
34976 
34977##### Response (200)
34978 
34979```json
34980{
34981 "id": "id",
34982 "type": "slack_channel_deleted"
34983}
34984```
34985 
34986## Organization › Claude Tag › Slack Workspaces
34987 
34988### List Slack Workspaces
34989 
34990**GET** `/v1/organizations/claude_tag/slack_workspaces`
34991 
34992List the set-up Slack workspaces the organization owns, newest first by `created_at`. Pass `slack_workspace_id` to look one workspace up by its Slack identifier: `data` then holds that workspace, or is empty when it is not set up. A workspace of a Slack Enterprise Grid the organization has connected returns 404 until it is set up. With `include_inherited=true` each workspace's `settings` holds what applies in it, and the request fails with 503 rather than resolve against a settings level that could not be read. A `page` cursor resumes only a request with the same `include_inherited`.
34993 
34994#### Query parameters
34995 
34996- `include_inherited: optional boolean`
34997 
34998 When `true`, `settings` holds what applies in each workspace once the organization's Slack defaults are taken into account, and every member of `sources` names the level a value comes from. When `false` or left out, `settings` holds what each workspace itself stores.
34999 
35000- `limit: optional number`
35001 
35002 Number of items to return per page, between 1 and 100. Defaults to 20.
35003 
35004 format: int32
35005 
35006- `page: optional string`
35007 
35008 Opaque cursor from a previous response's `next_page`.
35009 
35010- `slack_workspace_id: optional string`
35011 
35012 Slack's identifier for one workspace, as in the workspace object's `slack.workspace_id`, not its `id`. With it `data` holds that workspace alone, or nothing when it is not set up.
35013 
35014#### Headers
35015 
35016- `"anthropic-version": optional string`
35017 
35018 The version of the Claude API you want to use.
35019 
35020 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
35021 
35022- `"anthropic-beta": optional array of AnthropicBeta`
35023 
35024 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
35025 
35026 - `string`
35027 
35028 - `"message-batches-2024-09-24"`
35029 
35030 - `"prompt-caching-2024-07-31"`
35031 
35032 - `"computer-use-2024-10-22"`
35033 
35034 - `"computer-use-2025-01-24"`
35035 
35036 - `"pdfs-2024-09-25"`
35037 
35038 - `"token-counting-2024-11-01"`
35039 
35040 - `"token-efficient-tools-2025-02-19"`
35041 
35042 - `"output-128k-2025-02-19"`
35043 
35044 - `"files-api-2025-04-14"`
35045 
35046 - `"mcp-client-2025-04-04"`
35047 
35048 - `"mcp-client-2025-11-20"`
35049 
35050 - `"dev-full-thinking-2025-05-14"`
35051 
35052 - `"interleaved-thinking-2025-05-14"`
35053 
35054 - `"code-execution-2025-05-22"`
35055 
35056 - `"extended-cache-ttl-2025-04-11"`
35057 
35058 - `"context-1m-2025-08-07"`
35059 
35060 - `"context-management-2025-06-27"`
35061 
35062 - `"model-context-window-exceeded-2025-08-26"`
35063 
35064 - `"skills-2025-10-02"`
35065 
35066 - `"fast-mode-2026-02-01"`
35067 
35068 - `"output-300k-2026-03-24"`
35069 
35070 - `"user-profiles-2026-03-24"`
35071 
35072 - `"user-profiles-2026-08-18"`
35073 
35074 - `"user-profiles-2026-09-04"`
35075 
35076 - `"advisor-tool-2026-03-01"`
35077 
35078 - `"managed-agents-2026-04-01"`
35079 
35080 - `"cache-diagnosis-2026-04-07"`
35081 
35082 - `"dreaming-2026-04-21"`
35083 
35084 - `"thinking-token-count-2026-05-13"`
35085 
35086 - `"server-side-fallback-2026-06-01"`
35087 
35088 - `"server-side-fallback-2026-07-01"`
35089 
35090 - `"fallback-credit-2026-06-01"`
35091 
35092 - `"fallback-credit-2026-07-01"`
35093 
35094 - `"agent-memory-2026-07-22"`
35095 
35096 - `"mid-conversation-tool-changes-2026-07-01"`
35097 
35098 - `"compact-2026-01-12"`
35099 
35100 - `"computer-use-2025-11-24"`
35101 
35102 - `"mcp-tunnels-2026-06-22"`
35103 
35104 - `"structured-outputs-2025-11-13"`
35105 
35106 - `"task-budgets-2026-03-13"`
35107 
35108 - `"thinking-display-updates-2026-08-18"`
35109 
35110 - `"ce-user-management-2026-07-13"`
35111 
35112 - `"mid-conversation-output-config-2026-07-01"`
35113 
35114 - `"thinking-binding-controls-2026-08-01"`
35115 
35116 - `"mid-conversation-system-clear-at-2026-08-21"`
35117 
35118 - `"compact-2026-09-04"`
35119 
35120 - `"inline-tools-2026-09-15"`
35121 
35122 - `"mcp-client-2026-09-15"`
35123 
35124 - `"ce-plugins-2026-09-01"`
35125 
35126 - `"spend-limit-reads-2026-09-26"`
35127 
35128 - `"telemetry-destinations-2026-08-11"`
35129 
35130 - `"webhooks-2026-10-07"`
35131 
35132 - `"message-threads-2026-08-12"`
35133 
35134 - `"analytics-usage-cost-2026-08-24"`
35135 
35136 - `"experimental-claude-tag-2026-10-21"`
35137 
35138#### Returns
35139 
35140- `data: array of BetaClaudeTagSlackWorkspace`
35141 
35142 Workspaces on this page, newest first.
35143 
35144 - `type: "slack_workspace"`
35145 
35146 - `id: string`
35147 
35148 The workspace's identifier. Starts with `slws_`. It does not change for as long as the workspace is set up. A workspace that is removed and set up again has a new one, and the old one keeps returning 404; look the workspace up by its Slack identifier for the new one.
35149 
35150 - `created_at: string`
35151 
35152 Time the workspace was set up, by whichever route. It does not change for as long as `id` does not.
35153 
35154 format: date-time
35155 
35156 - `settings: BetaClaudeTagSettings`
35157 
35158 What the workspace itself stores or, with `include_inherited`, what applies in it. `sources` says which.
35159 
35160 - `enabled: boolean or null`
35161 
35162 Whether Claude is on. The nearest settings level that sets it decides.
35163 
35164 - `environment_id: string or null`
35165 
35166 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
35167 
35168 - `guest_policy: BetaClaudeTagGuestPolicy or null`
35169 
35170 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
35171 
35172 - `BetaClaudeTagGuestPolicyAllow object`
35173 
35174 Claude answers in the channel.
35175 
35176 - `type: "allow"`
35177 
35178 - `BetaClaudeTagGuestPolicyRestrict object`
35179 
35180 Claude does not answer in the channel.
35181 
35182 - `type: "restrict"`
35183 
35184 - `BetaClaudeTagGuestPolicyChannelOnly object`
35185 
35186 Claude answers with only the Bundles attached to the channel itself.
35187 
35188 - `type: "channel_only"`
35189 
35190 - `instructions: string or null`
35191 
35192 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
35193 
35194 - `model: string or null`
35195 
35196 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
35197 
35198 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
35199 
35200 Slack's own identifier for the workspace.
35201 
35202 - `workspace_id: string`
35203 
35204 Slack's identifier for the workspace, starting with `T`, such as `T0123ABCD`.
35205 
35206 - `sources: BetaClaudeTagSettingSources`
35207 
35208 For each setting, the settings level its value in `settings` comes from.
35209 
35210 - `enabled: BetaClaudeTagSettingSource or null`
35211 
35212 The settings level `enabled` comes from.
35213 
35214 - `BetaClaudeTagSlackChannelSettingSource object`
35215 
35216 The value comes from the addressed Slack channel itself.
35217 
35218 - `type: "slack_channel"`
35219 
35220 - `slack_channel_id: string`
35221 
35222 The channel's identifier, starting with `slch_`.
35223 
35224 - `BetaClaudeTagSlackWorkspaceSettingSource object`
35225 
35226 The value comes from a Slack workspace of the organization.
35227 
35228 - `type: "slack_workspace"`
35229 
35230 - `slack_workspace_id: string`
35231 
35232 The workspace's identifier, starting with `slws_`.
35233 
35234 - `BetaClaudeTagSlackParentChannelSettingSource object`
35235 
35236 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
35237 
35238 - `type: "slack_parent_channel"`
35239 
35240 - `slack_channel_id: string`
35241 
35242 The parent channel's identifier, starting with `slch_`.
35243 
35244 - `BetaClaudeTagSlackDefaultSettingSource object`
35245 
35246 The value comes from the organization's Slack defaults, which have no identifier.
35247 
35248 - `type: "slack_default"`
35249 
35250 - `BetaClaudeTagDefaultSettingSource object`
35251 
35252 No settings level sets a value, and the built-in default applies.
35253 
35254 - `type: "default"`
35255 
35256 - `BetaClaudeTagSlackGridChannelSettingSource object`
35257 
35258 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
35259 
35260 - `type: "slack_grid_channel"`
35261 
35262 - `slack: BetaClaudeTagSlackChannelIdentifiers`
35263 
35264 Slack's own identifiers for the channel under that other workspace.
35265 
35266 - `channel_id: string`
35267 
35268 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
35269 
35270 minLength: 2, maxLength: 32
35271 
35272 - `workspace_id: string`
35273 
35274 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
35275 
35276 minLength: 2, maxLength: 32
35277 
35278 - `environment_id: BetaClaudeTagSettingSource or null`
35279 
35280 The settings level `environment_id` comes from.
35281 
35282 - `guest_policy: BetaClaudeTagSettingSource or null`
35283 
35284 The settings level `guest_policy` comes from.
35285 
35286 - `instructions: array of BetaClaudeTagSettingSource`
35287 
35288 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
35289 
35290 - `BetaClaudeTagSlackChannelSettingSource object`
35291 
35292 The value comes from the addressed Slack channel itself.
35293 
35294 - `BetaClaudeTagSlackWorkspaceSettingSource object`
35295 
35296 The value comes from a Slack workspace of the organization.
35297 
35298 - `BetaClaudeTagSlackParentChannelSettingSource object`
35299 
35300 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
35301 
35302 - `BetaClaudeTagSlackDefaultSettingSource object`
35303 
35304 The value comes from the organization's Slack defaults, which have no identifier.
35305 
35306 - `BetaClaudeTagDefaultSettingSource object`
35307 
35308 No settings level sets a value, and the built-in default applies.
35309 
35310 - `BetaClaudeTagSlackGridChannelSettingSource object`
35311 
35312 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
35313 
35314 - `model: BetaClaudeTagSettingSource or null`
35315 
35316 The settings level `model` comes from.
35317 
35318 - `updated_at: string`
35319 
35320 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
35321 
35322 format: date-time
35323 
35324- `next_page: string or null`
35325 
35326 Cursor for the next page. Null on the last page.
35327 
35328#### Example
35329 
35330```bash
35331curl https://api.anthropic.com/v1/organizations/claude_tag/slack_workspaces \
35332 -H 'anthropic-version: 2026-10-21' \
35333 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
35334 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
35335```
35336 
35337##### Response (200)
35338 
35339```json
35340{
35341 "data": [
35342 {
35343 "id": "id",
35344 "created_at": "2019-12-27T18:11:19.117Z",
35345 "settings": {
35346 "enabled": true,
35347 "environment_id": "environment_id",
35348 "guest_policy": {
35349 "type": "allow"
35350 },
35351 "instructions": "instructions",
35352 "model": "model"
35353 },
35354 "slack": {
35355 "workspace_id": "workspace_id"
35356 },
35357 "sources": {
35358 "enabled": {
35359 "slack_channel_id": "slack_channel_id",
35360 "type": "slack_channel"
35361 },
35362 "environment_id": {
35363 "slack_channel_id": "slack_channel_id",
35364 "type": "slack_channel"
35365 },
35366 "guest_policy": {
35367 "slack_channel_id": "slack_channel_id",
35368 "type": "slack_channel"
35369 },
35370 "instructions": [
35371 {
35372 "slack_channel_id": "slack_channel_id",
35373 "type": "slack_channel"
35374 }
35375 ],
35376 "model": {
35377 "slack_channel_id": "slack_channel_id",
35378 "type": "slack_channel"
35379 }
35380 },
35381 "type": "slack_workspace",
35382 "updated_at": "2019-12-27T18:11:19.117Z"
35383 }
35384 ],
35385 "next_page": "next_page"
35386}
35387```
35388 
35389### Get Slack Workspace
35390 
35391**GET** `/v1/organizations/claude_tag/slack_workspaces/{id}`
35392 
35393Get one Slack workspace and its settings. By default `settings` holds what the workspace itself stores: a setting that is null there is not set on the workspace and is inherited. With `include_inherited=true`, `settings` holds what applies in the workspace once the organization's Slack defaults are taken into account, and the request fails with 503 rather than resolve against a settings level that could not be read. Either way `sources` names the settings level each value comes from.
35394 
35395#### Path parameters
35396 
35397- `id: string`
35398 
35399 The workspace's identifier, starting with `slws_`.
35400 
35401#### Query parameters
35402 
35403- `include_inherited: optional boolean`
35404 
35405 When `true`, `settings` holds what applies in the workspace once the organization's Slack defaults are taken into account, and every member of `sources` names the level a value comes from. When `false` or left out, `settings` holds what the workspace itself stores.
35406 
35407#### Headers
35408 
35409- `"anthropic-version": optional string`
35410 
35411 The version of the Claude API you want to use.
35412 
35413 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
35414 
35415- `"anthropic-beta": optional array of AnthropicBeta`
35416 
35417 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
35418 
35419 - `string`
35420 
35421 - `"message-batches-2024-09-24"`
35422 
35423 - `"prompt-caching-2024-07-31"`
35424 
35425 - `"computer-use-2024-10-22"`
35426 
35427 - `"computer-use-2025-01-24"`
35428 
35429 - `"pdfs-2024-09-25"`
35430 
35431 - `"token-counting-2024-11-01"`
35432 
35433 - `"token-efficient-tools-2025-02-19"`
35434 
35435 - `"output-128k-2025-02-19"`
35436 
35437 - `"files-api-2025-04-14"`
35438 
35439 - `"mcp-client-2025-04-04"`
35440 
35441 - `"mcp-client-2025-11-20"`
35442 
35443 - `"dev-full-thinking-2025-05-14"`
35444 
35445 - `"interleaved-thinking-2025-05-14"`
35446 
35447 - `"code-execution-2025-05-22"`
35448 
35449 - `"extended-cache-ttl-2025-04-11"`
35450 
35451 - `"context-1m-2025-08-07"`
35452 
35453 - `"context-management-2025-06-27"`
35454 
35455 - `"model-context-window-exceeded-2025-08-26"`
35456 
35457 - `"skills-2025-10-02"`
35458 
35459 - `"fast-mode-2026-02-01"`
35460 
35461 - `"output-300k-2026-03-24"`
35462 
35463 - `"user-profiles-2026-03-24"`
35464 
35465 - `"user-profiles-2026-08-18"`
35466 
35467 - `"user-profiles-2026-09-04"`
35468 
35469 - `"advisor-tool-2026-03-01"`
35470 
35471 - `"managed-agents-2026-04-01"`
35472 
35473 - `"cache-diagnosis-2026-04-07"`
35474 
35475 - `"dreaming-2026-04-21"`
35476 
35477 - `"thinking-token-count-2026-05-13"`
35478 
35479 - `"server-side-fallback-2026-06-01"`
35480 
35481 - `"server-side-fallback-2026-07-01"`
35482 
35483 - `"fallback-credit-2026-06-01"`
35484 
35485 - `"fallback-credit-2026-07-01"`
35486 
35487 - `"agent-memory-2026-07-22"`
35488 
35489 - `"mid-conversation-tool-changes-2026-07-01"`
35490 
35491 - `"compact-2026-01-12"`
35492 
35493 - `"computer-use-2025-11-24"`
35494 
35495 - `"mcp-tunnels-2026-06-22"`
35496 
35497 - `"structured-outputs-2025-11-13"`
35498 
35499 - `"task-budgets-2026-03-13"`
35500 
35501 - `"thinking-display-updates-2026-08-18"`
35502 
35503 - `"ce-user-management-2026-07-13"`
35504 
35505 - `"mid-conversation-output-config-2026-07-01"`
35506 
35507 - `"thinking-binding-controls-2026-08-01"`
35508 
35509 - `"mid-conversation-system-clear-at-2026-08-21"`
35510 
35511 - `"compact-2026-09-04"`
35512 
35513 - `"inline-tools-2026-09-15"`
35514 
35515 - `"mcp-client-2026-09-15"`
35516 
35517 - `"ce-plugins-2026-09-01"`
35518 
35519 - `"spend-limit-reads-2026-09-26"`
35520 
35521 - `"telemetry-destinations-2026-08-11"`
35522 
35523 - `"webhooks-2026-10-07"`
35524 
35525 - `"message-threads-2026-08-12"`
35526 
35527 - `"analytics-usage-cost-2026-08-24"`
35528 
35529 - `"experimental-claude-tag-2026-10-21"`
35530 
35531#### Returns
35532 
35533- `BetaClaudeTagSlackWorkspace object`
35534 
35535 A Slack workspace the organization has connected, itself or through its Slack Enterprise Grid, with the settings it stores or, with `include_inherited`, the settings that apply in it.
35536 
35537 - `type: "slack_workspace"`
35538 
35539 - `id: string`
35540 
35541 The workspace's identifier. Starts with `slws_`. It does not change for as long as the workspace is set up. A workspace that is removed and set up again has a new one, and the old one keeps returning 404; look the workspace up by its Slack identifier for the new one.
35542 
35543 - `created_at: string`
35544 
35545 Time the workspace was set up, by whichever route. It does not change for as long as `id` does not.
35546 
35547 format: date-time
35548 
35549 - `settings: BetaClaudeTagSettings`
35550 
35551 What the workspace itself stores or, with `include_inherited`, what applies in it. `sources` says which.
35552 
35553 - `enabled: boolean or null`
35554 
35555 Whether Claude is on. The nearest settings level that sets it decides.
35556 
35557 - `environment_id: string or null`
35558 
35559 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
35560 
35561 - `guest_policy: BetaClaudeTagGuestPolicy or null`
35562 
35563 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
35564 
35565 - `BetaClaudeTagGuestPolicyAllow object`
35566 
35567 Claude answers in the channel.
35568 
35569 - `type: "allow"`
35570 
35571 - `BetaClaudeTagGuestPolicyRestrict object`
35572 
35573 Claude does not answer in the channel.
35574 
35575 - `type: "restrict"`
35576 
35577 - `BetaClaudeTagGuestPolicyChannelOnly object`
35578 
35579 Claude answers with only the Bundles attached to the channel itself.
35580 
35581 - `type: "channel_only"`
35582 
35583 - `instructions: string or null`
35584 
35585 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
35586 
35587 - `model: string or null`
35588 
35589 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
35590 
35591 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
35592 
35593 Slack's own identifier for the workspace.
35594 
35595 - `workspace_id: string`
35596 
35597 Slack's identifier for the workspace, starting with `T`, such as `T0123ABCD`.
35598 
35599 - `sources: BetaClaudeTagSettingSources`
35600 
35601 For each setting, the settings level its value in `settings` comes from.
35602 
35603 - `enabled: BetaClaudeTagSettingSource or null`
35604 
35605 The settings level `enabled` comes from.
35606 
35607 - `BetaClaudeTagSlackChannelSettingSource object`
35608 
35609 The value comes from the addressed Slack channel itself.
35610 
35611 - `type: "slack_channel"`
35612 
35613 - `slack_channel_id: string`
35614 
35615 The channel's identifier, starting with `slch_`.
35616 
35617 - `BetaClaudeTagSlackWorkspaceSettingSource object`
35618 
35619 The value comes from a Slack workspace of the organization.
35620 
35621 - `type: "slack_workspace"`
35622 
35623 - `slack_workspace_id: string`
35624 
35625 The workspace's identifier, starting with `slws_`.
35626 
35627 - `BetaClaudeTagSlackParentChannelSettingSource object`
35628 
35629 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
35630 
35631 - `type: "slack_parent_channel"`
35632 
35633 - `slack_channel_id: string`
35634 
35635 The parent channel's identifier, starting with `slch_`.
35636 
35637 - `BetaClaudeTagSlackDefaultSettingSource object`
35638 
35639 The value comes from the organization's Slack defaults, which have no identifier.
35640 
35641 - `type: "slack_default"`
35642 
35643 - `BetaClaudeTagDefaultSettingSource object`
35644 
35645 No settings level sets a value, and the built-in default applies.
35646 
35647 - `type: "default"`
35648 
35649 - `BetaClaudeTagSlackGridChannelSettingSource object`
35650 
35651 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
35652 
35653 - `type: "slack_grid_channel"`
35654 
35655 - `slack: BetaClaudeTagSlackChannelIdentifiers`
35656 
35657 Slack's own identifiers for the channel under that other workspace.
35658 
35659 - `channel_id: string`
35660 
35661 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
35662 
35663 minLength: 2, maxLength: 32
35664 
35665 - `workspace_id: string`
35666 
35667 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
35668 
35669 minLength: 2, maxLength: 32
35670 
35671 - `environment_id: BetaClaudeTagSettingSource or null`
35672 
35673 The settings level `environment_id` comes from.
35674 
35675 - `guest_policy: BetaClaudeTagSettingSource or null`
35676 
35677 The settings level `guest_policy` comes from.
35678 
35679 - `instructions: array of BetaClaudeTagSettingSource`
35680 
35681 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
35682 
35683 - `BetaClaudeTagSlackChannelSettingSource object`
35684 
35685 The value comes from the addressed Slack channel itself.
35686 
35687 - `BetaClaudeTagSlackWorkspaceSettingSource object`
35688 
35689 The value comes from a Slack workspace of the organization.
35690 
35691 - `BetaClaudeTagSlackParentChannelSettingSource object`
35692 
35693 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
35694 
35695 - `BetaClaudeTagSlackDefaultSettingSource object`
35696 
35697 The value comes from the organization's Slack defaults, which have no identifier.
35698 
35699 - `BetaClaudeTagDefaultSettingSource object`
35700 
35701 No settings level sets a value, and the built-in default applies.
35702 
35703 - `BetaClaudeTagSlackGridChannelSettingSource object`
35704 
35705 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
35706 
35707 - `model: BetaClaudeTagSettingSource or null`
35708 
35709 The settings level `model` comes from.
35710 
35711 - `updated_at: string`
35712 
35713 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
35714 
35715 format: date-time
35716 
35717#### Example
35718 
35719```bash
35720curl https://api.anthropic.com/v1/organizations/claude_tag/slack_workspaces/$ID \
35721 -H 'anthropic-version: 2026-10-21' \
35722 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
35723 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
35724```
35725 
35726##### Response (200)
35727 
35728```json
35729{
35730 "id": "id",
35731 "created_at": "2019-12-27T18:11:19.117Z",
35732 "settings": {
35733 "enabled": true,
35734 "environment_id": "environment_id",
35735 "guest_policy": {
35736 "type": "allow"
35737 },
35738 "instructions": "instructions",
35739 "model": "model"
35740 },
35741 "slack": {
35742 "workspace_id": "workspace_id"
35743 },
35744 "sources": {
35745 "enabled": {
35746 "slack_channel_id": "slack_channel_id",
35747 "type": "slack_channel"
35748 },
35749 "environment_id": {
35750 "slack_channel_id": "slack_channel_id",
35751 "type": "slack_channel"
35752 },
35753 "guest_policy": {
35754 "slack_channel_id": "slack_channel_id",
35755 "type": "slack_channel"
35756 },
35757 "instructions": [
35758 {
35759 "slack_channel_id": "slack_channel_id",
35760 "type": "slack_channel"
35761 }
35762 ],
35763 "model": {
35764 "slack_channel_id": "slack_channel_id",
35765 "type": "slack_channel"
35766 }
35767 },
35768 "type": "slack_workspace",
35769 "updated_at": "2019-12-27T18:11:19.117Z"
35770}
35771```
35772 
35773### Update Slack Workspace
35774 
35775**POST** `/v1/organizations/claude_tag/slack_workspaces/{id}`
35776 
35777Change the settings a Slack workspace stores. The update is partial: a setting left out is unchanged, and a setting sent as null is cleared, so the workspace inherits it. If any value is refused, no setting in the request is stored.
35778 
35779#### Path parameters
35780 
35781- `id: string`
35782 
35783 The workspace's identifier, starting with `slws_`.
35784 
35785#### Headers
35786 
35787- `"anthropic-version": optional string`
35788 
35789 The version of the Claude API you want to use.
35790 
35791 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
35792 
35793- `"anthropic-beta": optional array of AnthropicBeta`
35794 
35795 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
35796 
35797 - `string`
35798 
35799 - `"message-batches-2024-09-24"`
35800 
35801 - `"prompt-caching-2024-07-31"`
35802 
35803 - `"computer-use-2024-10-22"`
35804 
35805 - `"computer-use-2025-01-24"`
35806 
35807 - `"pdfs-2024-09-25"`
35808 
35809 - `"token-counting-2024-11-01"`
35810 
35811 - `"token-efficient-tools-2025-02-19"`
35812 
35813 - `"output-128k-2025-02-19"`
35814 
35815 - `"files-api-2025-04-14"`
35816 
35817 - `"mcp-client-2025-04-04"`
35818 
35819 - `"mcp-client-2025-11-20"`
35820 
35821 - `"dev-full-thinking-2025-05-14"`
35822 
35823 - `"interleaved-thinking-2025-05-14"`
35824 
35825 - `"code-execution-2025-05-22"`
35826 
35827 - `"extended-cache-ttl-2025-04-11"`
35828 
35829 - `"context-1m-2025-08-07"`
35830 
35831 - `"context-management-2025-06-27"`
35832 
35833 - `"model-context-window-exceeded-2025-08-26"`
35834 
35835 - `"skills-2025-10-02"`
35836 
35837 - `"fast-mode-2026-02-01"`
35838 
35839 - `"output-300k-2026-03-24"`
35840 
35841 - `"user-profiles-2026-03-24"`
35842 
35843 - `"user-profiles-2026-08-18"`
35844 
35845 - `"user-profiles-2026-09-04"`
35846 
35847 - `"advisor-tool-2026-03-01"`
35848 
35849 - `"managed-agents-2026-04-01"`
35850 
35851 - `"cache-diagnosis-2026-04-07"`
35852 
35853 - `"dreaming-2026-04-21"`
35854 
35855 - `"thinking-token-count-2026-05-13"`
35856 
35857 - `"server-side-fallback-2026-06-01"`
35858 
35859 - `"server-side-fallback-2026-07-01"`
35860 
35861 - `"fallback-credit-2026-06-01"`
35862 
35863 - `"fallback-credit-2026-07-01"`
35864 
35865 - `"agent-memory-2026-07-22"`
35866 
35867 - `"mid-conversation-tool-changes-2026-07-01"`
35868 
35869 - `"compact-2026-01-12"`
35870 
35871 - `"computer-use-2025-11-24"`
35872 
35873 - `"mcp-tunnels-2026-06-22"`
35874 
35875 - `"structured-outputs-2025-11-13"`
35876 
35877 - `"task-budgets-2026-03-13"`
35878 
35879 - `"thinking-display-updates-2026-08-18"`
35880 
35881 - `"ce-user-management-2026-07-13"`
35882 
35883 - `"mid-conversation-output-config-2026-07-01"`
35884 
35885 - `"thinking-binding-controls-2026-08-01"`
35886 
35887 - `"mid-conversation-system-clear-at-2026-08-21"`
35888 
35889 - `"compact-2026-09-04"`
35890 
35891 - `"inline-tools-2026-09-15"`
35892 
35893 - `"mcp-client-2026-09-15"`
35894 
35895 - `"ce-plugins-2026-09-01"`
35896 
35897 - `"spend-limit-reads-2026-09-26"`
35898 
35899 - `"telemetry-destinations-2026-08-11"`
35900 
35901 - `"webhooks-2026-10-07"`
35902 
35903 - `"message-threads-2026-08-12"`
35904 
35905 - `"analytics-usage-cost-2026-08-24"`
35906 
35907 - `"experimental-claude-tag-2026-10-21"`
35908 
35909#### Body parameters
35910 
35911- `settings: BetaClaudeTagSettingsUpdate`
35912 
35913 The settings to change.
35914 
35915 - `enabled: optional boolean or null`
35916 
35917 Whether Claude is on. `true` on a channel turns Claude on in it even when its workspace stores `false`. Null clears it.
35918 
35919 - `environment_id: optional string or null`
35920 
35921 The environment Claude's sessions run in: the identifier of an active environment of the organization, starting with `env_`. Null clears it.
35922 
35923 minLength: 1, maxLength: 64
35924 
35925 - `guest_policy: optional BetaClaudeTagGuestPolicy or null`
35926 
35927 What Claude does in a channel while a Slack guest is in it. Null clears it.
35928 
35929 - `BetaClaudeTagGuestPolicyAllow object`
35930 
35931 Claude answers in the channel.
35932 
35933 - `type: "allow"`
35934 
35935 - `BetaClaudeTagGuestPolicyRestrict object`
35936 
35937 Claude does not answer in the channel.
35938 
35939 - `type: "restrict"`
35940 
35941 - `BetaClaudeTagGuestPolicyChannelOnly object`
35942 
35943 Claude answers with only the Bundles attached to the channel itself.
35944 
35945 - `type: "channel_only"`
35946 
35947 - `instructions: optional string or null`
35948 
35949 Instructions for Claude, up to 8,192 characters after leading and trailing white space is trimmed. Null or blank text clears them.
35950 
35951 - `model: optional string or null`
35952 
35953 The model Claude uses: the identifier of a model, or the name of a model line, that the organization is entitled to for Claude Tag. Null clears it.
35954 
35955 minLength: 1, maxLength: 128
35956 
35957#### Returns
35958 
35959- `BetaClaudeTagSlackWorkspace object`
35960 
35961 A Slack workspace the organization has connected, itself or through its Slack Enterprise Grid, with the settings it stores or, with `include_inherited`, the settings that apply in it.
35962 
35963 - `type: "slack_workspace"`
35964 
35965 - `id: string`
35966 
35967 The workspace's identifier. Starts with `slws_`. It does not change for as long as the workspace is set up. A workspace that is removed and set up again has a new one, and the old one keeps returning 404; look the workspace up by its Slack identifier for the new one.
35968 
35969 - `created_at: string`
35970 
35971 Time the workspace was set up, by whichever route. It does not change for as long as `id` does not.
35972 
35973 format: date-time
35974 
35975 - `settings: BetaClaudeTagSettings`
35976 
35977 What the workspace itself stores or, with `include_inherited`, what applies in it. `sources` says which.
35978 
35979 - `enabled: boolean or null`
35980 
35981 Whether Claude is on. The nearest settings level that sets it decides.
35982 
35983 - `environment_id: string or null`
35984 
35985 The environment Claude's sessions run in, starting with `env_`, or the identifier of a self-hosted runner pool, starting with `ccpool_`. The nearest settings level that sets it decides.
35986 
35987 - `guest_policy: BetaClaudeTagGuestPolicy or null`
35988 
35989 What Claude does in a channel while a Slack guest is in it. The nearest settings level that sets it decides.
35990 
35991 - `BetaClaudeTagGuestPolicyAllow object`
35992 
35993 Claude answers in the channel.
35994 
35995 - `type: "allow"`
35996 
35997 - `BetaClaudeTagGuestPolicyRestrict object`
35998 
35999 Claude does not answer in the channel.
36000 
36001 - `type: "restrict"`
36002 
36003 - `BetaClaudeTagGuestPolicyChannelOnly object`
36004 
36005 Claude answers with only the Bundles attached to the channel itself.
36006 
36007 - `type: "channel_only"`
36008 
36009 - `instructions: string or null`
36010 
36011 Instructions for Claude. Instructions add up: the text of every settings level that sets it is joined, broadest first.
36012 
36013 - `model: string or null`
36014 
36015 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
36016 
36017 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
36018 
36019 Slack's own identifier for the workspace.
36020 
36021 - `workspace_id: string`
36022 
36023 Slack's identifier for the workspace, starting with `T`, such as `T0123ABCD`.
36024 
36025 - `sources: BetaClaudeTagSettingSources`
36026 
36027 For each setting, the settings level its value in `settings` comes from.
36028 
36029 - `enabled: BetaClaudeTagSettingSource or null`
36030 
36031 The settings level `enabled` comes from.
36032 
36033 - `BetaClaudeTagSlackChannelSettingSource object`
36034 
36035 The value comes from the addressed Slack channel itself.
36036 
36037 - `type: "slack_channel"`
36038 
36039 - `slack_channel_id: string`
36040 
36041 The channel's identifier, starting with `slch_`.
36042 
36043 - `BetaClaudeTagSlackWorkspaceSettingSource object`
36044 
36045 The value comes from a Slack workspace of the organization.
36046 
36047 - `type: "slack_workspace"`
36048 
36049 - `slack_workspace_id: string`
36050 
36051 The workspace's identifier, starting with `slws_`.
36052 
36053 - `BetaClaudeTagSlackParentChannelSettingSource object`
36054 
36055 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
36056 
36057 - `type: "slack_parent_channel"`
36058 
36059 - `slack_channel_id: string`
36060 
36061 The parent channel's identifier, starting with `slch_`.
36062 
36063 - `BetaClaudeTagSlackDefaultSettingSource object`
36064 
36065 The value comes from the organization's Slack defaults, which have no identifier.
36066 
36067 - `type: "slack_default"`
36068 
36069 - `BetaClaudeTagDefaultSettingSource object`
36070 
36071 No settings level sets a value, and the built-in default applies.
36072 
36073 - `type: "default"`
36074 
36075 - `BetaClaudeTagSlackGridChannelSettingSource object`
36076 
36077 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
36078 
36079 - `type: "slack_grid_channel"`
36080 
36081 - `slack: BetaClaudeTagSlackChannelIdentifiers`
36082 
36083 Slack's own identifiers for the channel under that other workspace.
36084 
36085 - `channel_id: string`
36086 
36087 Slack's identifier for the channel, starting with `C` or `G`, such as `C0456EFGH`.
36088 
36089 minLength: 2, maxLength: 32
36090 
36091 - `workspace_id: string`
36092 
36093 Slack's identifier for the workspace the channel is in, starting with `T`, such as `T0123ABCD`.
36094 
36095 minLength: 2, maxLength: 32
36096 
36097 - `environment_id: BetaClaudeTagSettingSource or null`
36098 
36099 The settings level `environment_id` comes from.
36100 
36101 - `guest_policy: BetaClaudeTagSettingSource or null`
36102 
36103 The settings level `guest_policy` comes from.
36104 
36105 - `instructions: array of BetaClaudeTagSettingSource`
36106 
36107 Every settings level that contributes text to `instructions`, broadest first, in the order their text is joined. Empty when none does.
36108 
36109 - `BetaClaudeTagSlackChannelSettingSource object`
36110 
36111 The value comes from the addressed Slack channel itself.
36112 
36113 - `BetaClaudeTagSlackWorkspaceSettingSource object`
36114 
36115 The value comes from a Slack workspace of the organization.
36116 
36117 - `BetaClaudeTagSlackParentChannelSettingSource object`
36118 
36119 The value comes from the channel that a code channel was started from. A parent channel contributes `instructions` and `environment_id` only.
36120 
36121 - `BetaClaudeTagSlackDefaultSettingSource object`
36122 
36123 The value comes from the organization's Slack defaults, which have no identifier.
36124 
36125 - `BetaClaudeTagDefaultSettingSource object`
36126 
36127 No settings level sets a value, and the built-in default applies.
36128 
36129 - `BetaClaudeTagSlackGridChannelSettingSource object`
36130 
36131 The value comes from the addressed channel as it is set up under another workspace of its Enterprise Grid: a channel shared across the Grid keeps one Slack channel identifier in every workspace that sees it.
36132 
36133 - `model: BetaClaudeTagSettingSource or null`
36134 
36135 The settings level `model` comes from.
36136 
36137 - `updated_at: string`
36138 
36139 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
36140 
36141 format: date-time
36142 
36143#### Example
36144 
36145```bash
36146curl https://api.anthropic.com/v1/organizations/claude_tag/slack_workspaces/$ID \
36147 -H 'Content-Type: application/json' \
36148 -H 'anthropic-version: 2026-10-21' \
36149 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
36150 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
36151 -d '{
36152 "settings": {}
36153 }'
36154```
36155 
36156##### Response (200)
36157 
36158```json
36159{
36160 "id": "id",
36161 "created_at": "2019-12-27T18:11:19.117Z",
36162 "settings": {
36163 "enabled": true,
36164 "environment_id": "environment_id",
36165 "guest_policy": {
36166 "type": "allow"
36167 },
36168 "instructions": "instructions",
36169 "model": "model"
36170 },
36171 "slack": {
36172 "workspace_id": "workspace_id"
36173 },
36174 "sources": {
36175 "enabled": {
36176 "slack_channel_id": "slack_channel_id",
36177 "type": "slack_channel"
36178 },
36179 "environment_id": {
36180 "slack_channel_id": "slack_channel_id",
36181 "type": "slack_channel"
36182 },
36183 "guest_policy": {
36184 "slack_channel_id": "slack_channel_id",
36185 "type": "slack_channel"
36186 },
36187 "instructions": [
36188 {
36189 "slack_channel_id": "slack_channel_id",
36190 "type": "slack_channel"
36191 }
36192 ],
36193 "model": {
36194 "slack_channel_id": "slack_channel_id",
36195 "type": "slack_channel"
36196 }
36197 },
36198 "type": "slack_workspace",
36199 "updated_at": "2019-12-27T18:11:19.117Z"
36200}
36201```
36202 
36203## Organization › Claude Tag › Bundles
36204 
36205### List Bundles
36206 
36207**GET** `/v1/organizations/claude_tag/bundles`
36208 
36209List the organization's Bundles, newest first by `created_at`. A Bundle that Claude Tag manages for itself is not listed.
36210 
36211#### Query parameters
36212 
36213- `limit: optional number`
36214 
36215 Number of items to return per page, between 1 and 100. Defaults to 20.
36216 
36217 format: int32
36218 
36219- `page: optional string`
36220 
36221 Opaque cursor from a previous response's `next_page`.
36222 
36223#### Headers
36224 
36225- `"anthropic-version": optional string`
36226 
36227 The version of the Claude API you want to use.
36228 
36229 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
36230 
36231- `"anthropic-beta": optional array of AnthropicBeta`
36232 
36233 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
36234 
36235 - `string`
36236 
36237 - `"message-batches-2024-09-24"`
36238 
36239 - `"prompt-caching-2024-07-31"`
36240 
36241 - `"computer-use-2024-10-22"`
36242 
36243 - `"computer-use-2025-01-24"`
36244 
36245 - `"pdfs-2024-09-25"`
36246 
36247 - `"token-counting-2024-11-01"`
36248 
36249 - `"token-efficient-tools-2025-02-19"`
36250 
36251 - `"output-128k-2025-02-19"`
36252 
36253 - `"files-api-2025-04-14"`
36254 
36255 - `"mcp-client-2025-04-04"`
36256 
36257 - `"mcp-client-2025-11-20"`
36258 
36259 - `"dev-full-thinking-2025-05-14"`
36260 
36261 - `"interleaved-thinking-2025-05-14"`
36262 
36263 - `"code-execution-2025-05-22"`
36264 
36265 - `"extended-cache-ttl-2025-04-11"`
36266 
36267 - `"context-1m-2025-08-07"`
36268 
36269 - `"context-management-2025-06-27"`
36270 
36271 - `"model-context-window-exceeded-2025-08-26"`
36272 
36273 - `"skills-2025-10-02"`
36274 
36275 - `"fast-mode-2026-02-01"`
36276 
36277 - `"output-300k-2026-03-24"`
36278 
36279 - `"user-profiles-2026-03-24"`
36280 
36281 - `"user-profiles-2026-08-18"`
36282 
36283 - `"user-profiles-2026-09-04"`
36284 
36285 - `"advisor-tool-2026-03-01"`
36286 
36287 - `"managed-agents-2026-04-01"`
36288 
36289 - `"cache-diagnosis-2026-04-07"`
36290 
36291 - `"dreaming-2026-04-21"`
36292 
36293 - `"thinking-token-count-2026-05-13"`
36294 
36295 - `"server-side-fallback-2026-06-01"`
36296 
36297 - `"server-side-fallback-2026-07-01"`
36298 
36299 - `"fallback-credit-2026-06-01"`
36300 
36301 - `"fallback-credit-2026-07-01"`
36302 
36303 - `"agent-memory-2026-07-22"`
36304 
36305 - `"mid-conversation-tool-changes-2026-07-01"`
36306 
36307 - `"compact-2026-01-12"`
36308 
36309 - `"computer-use-2025-11-24"`
36310 
36311 - `"mcp-tunnels-2026-06-22"`
36312 
36313 - `"structured-outputs-2025-11-13"`
36314 
36315 - `"task-budgets-2026-03-13"`
36316 
36317 - `"thinking-display-updates-2026-08-18"`
36318 
36319 - `"ce-user-management-2026-07-13"`
36320 
36321 - `"mid-conversation-output-config-2026-07-01"`
36322 
36323 - `"thinking-binding-controls-2026-08-01"`
36324 
36325 - `"mid-conversation-system-clear-at-2026-08-21"`
36326 
36327 - `"compact-2026-09-04"`
36328 
36329 - `"inline-tools-2026-09-15"`
36330 
36331 - `"mcp-client-2026-09-15"`
36332 
36333 - `"ce-plugins-2026-09-01"`
36334 
36335 - `"spend-limit-reads-2026-09-26"`
36336 
36337 - `"telemetry-destinations-2026-08-11"`
36338 
36339 - `"webhooks-2026-10-07"`
36340 
36341 - `"message-threads-2026-08-12"`
36342 
36343 - `"analytics-usage-cost-2026-08-24"`
36344 
36345 - `"experimental-claude-tag-2026-10-21"`
36346 
36347#### Returns
36348 
36349- `data: array of BetaClaudeTagBundle`
36350 
36351 Bundles on this page, newest first.
36352 
36353 - `type: "bundle"`
36354 
36355 - `id: string`
36356 
36357 The Bundle's identifier. Starts with `capp_`.
36358 
36359 - `created_at: string`
36360 
36361 Time the Bundle was created.
36362 
36363 format: date-time
36364 
36365 - `description: string or null`
36366 
36367 What the Bundle is for. Null when it has none. Read-only.
36368 
36369 - `display_name: string`
36370 
36371 The Bundle's name. Always set. Read-only.
36372 
36373 - `updated_at: string`
36374 
36375 Time of the last change to the Bundle.
36376 
36377 format: date-time
36378 
36379- `next_page: string or null`
36380 
36381 Cursor for the next page. Null on the last page.
36382 
36383#### Example
36384 
36385```bash
36386curl https://api.anthropic.com/v1/organizations/claude_tag/bundles \
36387 -H 'anthropic-version: 2026-10-21' \
36388 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
36389 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
36390```
36391 
36392##### Response (200)
36393 
36394```json
36395{
36396 "data": [
36397 {
36398 "id": "id",
36399 "created_at": "2019-12-27T18:11:19.117Z",
36400 "description": "description",
36401 "display_name": "display_name",
36402 "type": "bundle",
36403 "updated_at": "2019-12-27T18:11:19.117Z"
36404 }
36405 ],
36406 "next_page": "next_page"
36407}
36408```
36409 
36410### Get Bundle
36411 
36412**GET** `/v1/organizations/claude_tag/bundles/{bundle_id}`
36413 
36414Get one Bundle. What the Bundle grants (connectors, repositories and credentials) is never returned.
36415 
36416#### Path parameters
36417 
36418- `bundle_id: string`
36419 
36420 The Bundle's identifier, starting with `capp_`.
36421 
36422#### Headers
36423 
36424- `"anthropic-version": optional string`
36425 
36426 The version of the Claude API you want to use.
36427 
36428 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
36429 
36430- `"anthropic-beta": optional array of AnthropicBeta`
36431 
36432 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
36433 
36434 - `string`
36435 
36436 - `"message-batches-2024-09-24"`
36437 
36438 - `"prompt-caching-2024-07-31"`
36439 
36440 - `"computer-use-2024-10-22"`
36441 
36442 - `"computer-use-2025-01-24"`
36443 
36444 - `"pdfs-2024-09-25"`
36445 
36446 - `"token-counting-2024-11-01"`
36447 
36448 - `"token-efficient-tools-2025-02-19"`
36449 
36450 - `"output-128k-2025-02-19"`
36451 
36452 - `"files-api-2025-04-14"`
36453 
36454 - `"mcp-client-2025-04-04"`
36455 
36456 - `"mcp-client-2025-11-20"`
36457 
36458 - `"dev-full-thinking-2025-05-14"`
36459 
36460 - `"interleaved-thinking-2025-05-14"`
36461 
36462 - `"code-execution-2025-05-22"`
36463 
36464 - `"extended-cache-ttl-2025-04-11"`
36465 
36466 - `"context-1m-2025-08-07"`
36467 
36468 - `"context-management-2025-06-27"`
36469 
36470 - `"model-context-window-exceeded-2025-08-26"`
36471 
36472 - `"skills-2025-10-02"`
36473 
36474 - `"fast-mode-2026-02-01"`
36475 
36476 - `"output-300k-2026-03-24"`
36477 
36478 - `"user-profiles-2026-03-24"`
36479 
36480 - `"user-profiles-2026-08-18"`
36481 
36482 - `"user-profiles-2026-09-04"`
36483 
36484 - `"advisor-tool-2026-03-01"`
36485 
36486 - `"managed-agents-2026-04-01"`
36487 
36488 - `"cache-diagnosis-2026-04-07"`
36489 
36490 - `"dreaming-2026-04-21"`
36491 
36492 - `"thinking-token-count-2026-05-13"`
36493 
36494 - `"server-side-fallback-2026-06-01"`
36495 
36496 - `"server-side-fallback-2026-07-01"`
36497 
36498 - `"fallback-credit-2026-06-01"`
36499 
36500 - `"fallback-credit-2026-07-01"`
36501 
36502 - `"agent-memory-2026-07-22"`
36503 
36504 - `"mid-conversation-tool-changes-2026-07-01"`
36505 
36506 - `"compact-2026-01-12"`
36507 
36508 - `"computer-use-2025-11-24"`
36509 
36510 - `"mcp-tunnels-2026-06-22"`
36511 
36512 - `"structured-outputs-2025-11-13"`
36513 
36514 - `"task-budgets-2026-03-13"`
36515 
36516 - `"thinking-display-updates-2026-08-18"`
36517 
36518 - `"ce-user-management-2026-07-13"`
36519 
36520 - `"mid-conversation-output-config-2026-07-01"`
36521 
36522 - `"thinking-binding-controls-2026-08-01"`
36523 
36524 - `"mid-conversation-system-clear-at-2026-08-21"`
36525 
36526 - `"compact-2026-09-04"`
36527 
36528 - `"inline-tools-2026-09-15"`
36529 
36530 - `"mcp-client-2026-09-15"`
36531 
36532 - `"ce-plugins-2026-09-01"`
36533 
36534 - `"spend-limit-reads-2026-09-26"`
36535 
36536 - `"telemetry-destinations-2026-08-11"`
36537 
36538 - `"webhooks-2026-10-07"`
36539 
36540 - `"message-threads-2026-08-12"`
36541 
36542 - `"analytics-usage-cost-2026-08-24"`
36543 
36544 - `"experimental-claude-tag-2026-10-21"`
36545 
36546#### Returns
36547 
36548- `BetaClaudeTagBundle object`
36549 
36550 A named set of access that Claude can use in a Slack channel or a Slack workspace: connectors, repositories and credentials. Created and edited in claude.ai.
36551 
36552 - `type: "bundle"`
36553 
36554 - `id: string`
36555 
36556 The Bundle's identifier. Starts with `capp_`.
36557 
36558 - `created_at: string`
36559 
36560 Time the Bundle was created.
36561 
36562 format: date-time
36563 
36564 - `description: string or null`
36565 
36566 What the Bundle is for. Null when it has none. Read-only.
36567 
36568 - `display_name: string`
36569 
36570 The Bundle's name. Always set. Read-only.
36571 
36572 - `updated_at: string`
36573 
36574 Time of the last change to the Bundle.
36575 
36576 format: date-time
36577 
36578#### Example
36579 
36580```bash
36581curl https://api.anthropic.com/v1/organizations/claude_tag/bundles/$BUNDLE_ID \
36582 -H 'anthropic-version: 2026-10-21' \
36583 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
36584 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
36585```
36586 
36587##### Response (200)
36588 
36589```json
36590{
36591 "id": "id",
36592 "created_at": "2019-12-27T18:11:19.117Z",
36593 "description": "description",
36594 "display_name": "display_name",
36595 "type": "bundle",
36596 "updated_at": "2019-12-27T18:11:19.117Z"
36597}
36598```
36599 
36600## Organization › Claude Tag › Bundles › Targets
36601 
36602### List Bundle Targets
36603 
36604**GET** `/v1/organizations/claude_tag/bundles/{bundle_id}/targets`
36605 
36606List the Slack channels and Slack workspaces a Bundle is attached to, newest first by `created_at`. Only channels and workspaces the organization owns are listed; a Bundle that is attached to anything else has no Bundle Target for it.
36607 
36608#### Path parameters
36609 
36610- `bundle_id: string`
36611 
36612 The Bundle's identifier, starting with `capp_`.
36613 
36614#### Query parameters
36615 
36616- `limit: optional number`
36617 
36618 Number of items to return per page, between 1 and 100. Defaults to 20.
36619 
36620 format: int32
36621 
36622- `page: optional string`
36623 
36624 Opaque cursor from a previous response's `next_page`.
36625 
36626#### Headers
36627 
36628- `"anthropic-version": optional string`
36629 
36630 The version of the Claude API you want to use.
36631 
36632 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
36633 
36634- `"anthropic-beta": optional array of AnthropicBeta`
36635 
36636 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
36637 
36638 - `string`
36639 
36640 - `"message-batches-2024-09-24"`
36641 
36642 - `"prompt-caching-2024-07-31"`
36643 
36644 - `"computer-use-2024-10-22"`
36645 
36646 - `"computer-use-2025-01-24"`
36647 
36648 - `"pdfs-2024-09-25"`
36649 
36650 - `"token-counting-2024-11-01"`
36651 
36652 - `"token-efficient-tools-2025-02-19"`
36653 
36654 - `"output-128k-2025-02-19"`
36655 
36656 - `"files-api-2025-04-14"`
36657 
36658 - `"mcp-client-2025-04-04"`
36659 
36660 - `"mcp-client-2025-11-20"`
36661 
36662 - `"dev-full-thinking-2025-05-14"`
36663 
36664 - `"interleaved-thinking-2025-05-14"`
36665 
36666 - `"code-execution-2025-05-22"`
36667 
36668 - `"extended-cache-ttl-2025-04-11"`
36669 
36670 - `"context-1m-2025-08-07"`
36671 
36672 - `"context-management-2025-06-27"`
36673 
36674 - `"model-context-window-exceeded-2025-08-26"`
36675 
36676 - `"skills-2025-10-02"`
36677 
36678 - `"fast-mode-2026-02-01"`
36679 
36680 - `"output-300k-2026-03-24"`
36681 
36682 - `"user-profiles-2026-03-24"`
36683 
36684 - `"user-profiles-2026-08-18"`
36685 
36686 - `"user-profiles-2026-09-04"`
36687 
36688 - `"advisor-tool-2026-03-01"`
36689 
36690 - `"managed-agents-2026-04-01"`
36691 
36692 - `"cache-diagnosis-2026-04-07"`
36693 
36694 - `"dreaming-2026-04-21"`
36695 
36696 - `"thinking-token-count-2026-05-13"`
36697 
36698 - `"server-side-fallback-2026-06-01"`
36699 
36700 - `"server-side-fallback-2026-07-01"`
36701 
36702 - `"fallback-credit-2026-06-01"`
36703 
36704 - `"fallback-credit-2026-07-01"`
36705 
36706 - `"agent-memory-2026-07-22"`
36707 
36708 - `"mid-conversation-tool-changes-2026-07-01"`
36709 
36710 - `"compact-2026-01-12"`
36711 
36712 - `"computer-use-2025-11-24"`
36713 
36714 - `"mcp-tunnels-2026-06-22"`
36715 
36716 - `"structured-outputs-2025-11-13"`
36717 
36718 - `"task-budgets-2026-03-13"`
36719 
36720 - `"thinking-display-updates-2026-08-18"`
36721 
36722 - `"ce-user-management-2026-07-13"`
36723 
36724 - `"mid-conversation-output-config-2026-07-01"`
36725 
36726 - `"thinking-binding-controls-2026-08-01"`
36727 
36728 - `"mid-conversation-system-clear-at-2026-08-21"`
36729 
36730 - `"compact-2026-09-04"`
36731 
36732 - `"inline-tools-2026-09-15"`
36733 
36734 - `"mcp-client-2026-09-15"`
36735 
36736 - `"ce-plugins-2026-09-01"`
36737 
36738 - `"spend-limit-reads-2026-09-26"`
36739 
36740 - `"telemetry-destinations-2026-08-11"`
36741 
36742 - `"webhooks-2026-10-07"`
36743 
36744 - `"message-threads-2026-08-12"`
36745 
36746 - `"analytics-usage-cost-2026-08-24"`
36747 
36748 - `"experimental-claude-tag-2026-10-21"`
36749 
36750#### Returns
36751 
36752- `data: array of BetaClaudeTagBundleTarget`
36753 
36754 Bundle Targets on this page, newest first.
36755 
36756 - `BetaClaudeTagSlackChannelBundleTarget object`
36757 
36758 One Bundle attached to one Slack channel. The Bundle can be used in that channel only.
36759 
36760 - `type: "slack_channel"`
36761 
36762 - `id: string`
36763 
36764 The Bundle Target's identifier. Starts with `btgt_`. No two Bundle Targets have the same one, and the same Bundle and target always give the same one, also after a detach and a new attach. It is opaque.
36765 
36766 - `created_at: string`
36767 
36768 Time the Bundle was attached.
36769 
36770 format: date-time
36771 
36772 - `slack_channel_id: string`
36773 
36774 The identifier of the Slack channel the Bundle is attached to, starting with `slch_`. It is the channel object's `id`, not Slack's `channel_id`.
36775 
36776 - `BetaClaudeTagSlackWorkspaceBundleTarget object`
36777 
36778 One Bundle attached to one Slack workspace. The Bundle can be used in the workspace and in every channel in it.
36779 
36780 - `type: "slack_workspace"`
36781 
36782 - `id: string`
36783 
36784 The Bundle Target's identifier. Starts with `btgt_`. No two Bundle Targets have the same one, and the same Bundle and target always give the same one, also after a detach and a new attach. It is opaque.
36785 
36786 - `created_at: string`
36787 
36788 Time the Bundle was attached.
36789 
36790 format: date-time
36791 
36792 - `slack_workspace_id: string`
36793 
36794 The identifier of the Slack workspace the Bundle is attached to, starting with `slws_`.
36795 
36796- `next_page: string or null`
36797 
36798 Cursor for the next page. Null on the last page.
36799 
36800#### Example
36801 
36802```bash
36803curl https://api.anthropic.com/v1/organizations/claude_tag/bundles/$BUNDLE_ID/targets \
36804 -H 'anthropic-version: 2026-10-21' \
36805 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
36806 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
36807```
36808 
36809##### Response (200)
36810 
36811```json
36812{
36813 "data": [
36814 {
36815 "id": "id",
36816 "created_at": "2019-12-27T18:11:19.117Z",
36817 "slack_channel_id": "slack_channel_id",
36818 "type": "slack_channel"
36819 }
36820 ],
36821 "next_page": "next_page"
36822}
36823```
36824 
36825### Attach Bundle
36826 
36827**POST** `/v1/organizations/claude_tag/bundles/{bundle_id}/targets`
36828 
36829Attach a Bundle to a Slack channel or a Slack workspace. A Bundle attached to a workspace can be used in the workspace and in every channel in it. Attaching a Bundle to a channel or workspace it is already attached to returns the existing Bundle Target. The channel or workspace must be set up: attaching never sets a channel up. A group direct message takes no Bundle and returns 400.
36830 
36831#### Path parameters
36832 
36833- `bundle_id: string`
36834 
36835 The Bundle's identifier, starting with `capp_`.
36836 
36837#### Headers
36838 
36839- `"anthropic-version": optional string`
36840 
36841 The version of the Claude API you want to use.
36842 
36843 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
36844 
36845- `"anthropic-beta": optional array of AnthropicBeta`
36846 
36847 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
36848 
36849 - `string`
36850 
36851 - `"message-batches-2024-09-24"`
36852 
36853 - `"prompt-caching-2024-07-31"`
36854 
36855 - `"computer-use-2024-10-22"`
36856 
36857 - `"computer-use-2025-01-24"`
36858 
36859 - `"pdfs-2024-09-25"`
36860 
36861 - `"token-counting-2024-11-01"`
36862 
36863 - `"token-efficient-tools-2025-02-19"`
36864 
36865 - `"output-128k-2025-02-19"`
36866 
36867 - `"files-api-2025-04-14"`
36868 
36869 - `"mcp-client-2025-04-04"`
36870 
36871 - `"mcp-client-2025-11-20"`
36872 
36873 - `"dev-full-thinking-2025-05-14"`
36874 
36875 - `"interleaved-thinking-2025-05-14"`
36876 
36877 - `"code-execution-2025-05-22"`
36878 
36879 - `"extended-cache-ttl-2025-04-11"`
36880 
36881 - `"context-1m-2025-08-07"`
36882 
36883 - `"context-management-2025-06-27"`
36884 
36885 - `"model-context-window-exceeded-2025-08-26"`
36886 
36887 - `"skills-2025-10-02"`
36888 
36889 - `"fast-mode-2026-02-01"`
36890 
36891 - `"output-300k-2026-03-24"`
36892 
36893 - `"user-profiles-2026-03-24"`
36894 
36895 - `"user-profiles-2026-08-18"`
36896 
36897 - `"user-profiles-2026-09-04"`
36898 
36899 - `"advisor-tool-2026-03-01"`
36900 
36901 - `"managed-agents-2026-04-01"`
36902 
36903 - `"cache-diagnosis-2026-04-07"`
36904 
36905 - `"dreaming-2026-04-21"`
36906 
36907 - `"thinking-token-count-2026-05-13"`
36908 
36909 - `"server-side-fallback-2026-06-01"`
36910 
36911 - `"server-side-fallback-2026-07-01"`
36912 
36913 - `"fallback-credit-2026-06-01"`
36914 
36915 - `"fallback-credit-2026-07-01"`
36916 
36917 - `"agent-memory-2026-07-22"`
36918 
36919 - `"mid-conversation-tool-changes-2026-07-01"`
36920 
36921 - `"compact-2026-01-12"`
36922 
36923 - `"computer-use-2025-11-24"`
36924 
36925 - `"mcp-tunnels-2026-06-22"`
36926 
36927 - `"structured-outputs-2025-11-13"`
36928 
36929 - `"task-budgets-2026-03-13"`
36930 
36931 - `"thinking-display-updates-2026-08-18"`
36932 
36933 - `"ce-user-management-2026-07-13"`
36934 
36935 - `"mid-conversation-output-config-2026-07-01"`
36936 
36937 - `"thinking-binding-controls-2026-08-01"`
36938 
36939 - `"mid-conversation-system-clear-at-2026-08-21"`
36940 
36941 - `"compact-2026-09-04"`
36942 
36943 - `"inline-tools-2026-09-15"`
36944 
36945 - `"mcp-client-2026-09-15"`
36946 
36947 - `"ce-plugins-2026-09-01"`
36948 
36949 - `"spend-limit-reads-2026-09-26"`
36950 
36951 - `"telemetry-destinations-2026-08-11"`
36952 
36953 - `"webhooks-2026-10-07"`
36954 
36955 - `"message-threads-2026-08-12"`
36956 
36957 - `"analytics-usage-cost-2026-08-24"`
36958 
36959 - `"experimental-claude-tag-2026-10-21"`
36960 
36961#### Body parameters
36962 
36963- `target: BetaClaudeTagBundleTargetCreate`
36964 
36965 - `BetaClaudeTagSlackChannelBundleTargetCreate object`
36966 
36967 Attach the Bundle to a Slack channel.
36968 
36969 - `type: "slack_channel"`
36970 
36971 - `slack_channel_id: string`
36972 
36973 The identifier of the Slack channel to attach the Bundle to, starting with `slch_`. It is the channel object's `id`, not Slack's `channel_id`.
36974 
36975 minLength: 8, maxLength: 64
36976 
36977 - `BetaClaudeTagSlackWorkspaceBundleTargetCreate object`
36978 
36979 Attach the Bundle to a Slack workspace.
36980 
36981 - `type: "slack_workspace"`
36982 
36983 - `slack_workspace_id: string`
36984 
36985 The identifier of the Slack workspace to attach the Bundle to, starting with `slws_`.
36986 
36987 minLength: 8, maxLength: 64
36988 
36989#### Returns
36990 
36991- `BetaClaudeTagBundleTarget = BetaClaudeTagSlackChannelBundleTarget or BetaClaudeTagSlackWorkspaceBundleTarget`
36992 
36993 One Bundle attached to one Slack channel or one Slack workspace. More types of target can be added.
36994 
36995 - `BetaClaudeTagSlackChannelBundleTarget object`
36996 
36997 One Bundle attached to one Slack channel. The Bundle can be used in that channel only.
36998 
36999 - `type: "slack_channel"`
37000 
37001 - `id: string`
37002 
37003 The Bundle Target's identifier. Starts with `btgt_`. No two Bundle Targets have the same one, and the same Bundle and target always give the same one, also after a detach and a new attach. It is opaque.
37004 
37005 - `created_at: string`
37006 
37007 Time the Bundle was attached.
37008 
37009 format: date-time
37010 
37011 - `slack_channel_id: string`
37012 
37013 The identifier of the Slack channel the Bundle is attached to, starting with `slch_`. It is the channel object's `id`, not Slack's `channel_id`.
37014 
37015 - `BetaClaudeTagSlackWorkspaceBundleTarget object`
37016 
37017 One Bundle attached to one Slack workspace. The Bundle can be used in the workspace and in every channel in it.
37018 
37019 - `type: "slack_workspace"`
37020 
37021 - `id: string`
37022 
37023 The Bundle Target's identifier. Starts with `btgt_`. No two Bundle Targets have the same one, and the same Bundle and target always give the same one, also after a detach and a new attach. It is opaque.
37024 
37025 - `created_at: string`
37026 
37027 Time the Bundle was attached.
37028 
37029 format: date-time
37030 
37031 - `slack_workspace_id: string`
37032 
37033 The identifier of the Slack workspace the Bundle is attached to, starting with `slws_`.
37034 
37035#### Example
37036 
37037```bash
37038curl https://api.anthropic.com/v1/organizations/claude_tag/bundles/$BUNDLE_ID/targets \
37039 -H 'Content-Type: application/json' \
37040 -H 'anthropic-version: 2026-10-21' \
37041 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
37042 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
37043 -d '{
37044 "slack_channel_id": "xxxxxxxx",
37045 "type": "slack_channel"
37046 }'
37047```
37048 
37049##### Response (200)
37050 
37051```json
37052{
37053 "id": "id",
37054 "created_at": "2019-12-27T18:11:19.117Z",
37055 "slack_channel_id": "slack_channel_id",
37056 "type": "slack_channel"
37057}
37058```
37059 
37060### Get Bundle Target
37061 
37062**GET** `/v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id}`
37063 
37064Get one Bundle Target. Returns 404 when `target_id` is the identifier of another Bundle's Bundle Target, or the Bundle Target was detached.
37065 
37066#### Path parameters
37067 
37068- `bundle_id: string`
37069 
37070 The Bundle's identifier, starting with `capp_`.
37071 
37072- `target_id: string`
37073 
37074 The Bundle Target's identifier, starting with `btgt_`. Attach Bundle and List Bundle Targets return it. It is never the identifier of the channel or workspace.
37075 
37076#### Headers
37077 
37078- `"anthropic-version": optional string`
37079 
37080 The version of the Claude API you want to use.
37081 
37082 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
37083 
37084- `"anthropic-beta": optional array of AnthropicBeta`
37085 
37086 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
37087 
37088 - `string`
37089 
37090 - `"message-batches-2024-09-24"`
37091 
37092 - `"prompt-caching-2024-07-31"`
37093 
37094 - `"computer-use-2024-10-22"`
37095 
37096 - `"computer-use-2025-01-24"`
37097 
37098 - `"pdfs-2024-09-25"`
37099 
37100 - `"token-counting-2024-11-01"`
37101 
37102 - `"token-efficient-tools-2025-02-19"`
37103 
37104 - `"output-128k-2025-02-19"`
37105 
37106 - `"files-api-2025-04-14"`
37107 
37108 - `"mcp-client-2025-04-04"`
37109 
37110 - `"mcp-client-2025-11-20"`
37111 
37112 - `"dev-full-thinking-2025-05-14"`
37113 
37114 - `"interleaved-thinking-2025-05-14"`
37115 
37116 - `"code-execution-2025-05-22"`
37117 
37118 - `"extended-cache-ttl-2025-04-11"`
37119 
37120 - `"context-1m-2025-08-07"`
37121 
37122 - `"context-management-2025-06-27"`
37123 
37124 - `"model-context-window-exceeded-2025-08-26"`
37125 
37126 - `"skills-2025-10-02"`
37127 
37128 - `"fast-mode-2026-02-01"`
37129 
37130 - `"output-300k-2026-03-24"`
37131 
37132 - `"user-profiles-2026-03-24"`
37133 
37134 - `"user-profiles-2026-08-18"`
37135 
37136 - `"user-profiles-2026-09-04"`
37137 
37138 - `"advisor-tool-2026-03-01"`
37139 
37140 - `"managed-agents-2026-04-01"`
37141 
37142 - `"cache-diagnosis-2026-04-07"`
37143 
37144 - `"dreaming-2026-04-21"`
37145 
37146 - `"thinking-token-count-2026-05-13"`
37147 
37148 - `"server-side-fallback-2026-06-01"`
37149 
37150 - `"server-side-fallback-2026-07-01"`
37151 
37152 - `"fallback-credit-2026-06-01"`
37153 
37154 - `"fallback-credit-2026-07-01"`
37155 
37156 - `"agent-memory-2026-07-22"`
37157 
37158 - `"mid-conversation-tool-changes-2026-07-01"`
37159 
37160 - `"compact-2026-01-12"`
37161 
37162 - `"computer-use-2025-11-24"`
37163 
37164 - `"mcp-tunnels-2026-06-22"`
37165 
37166 - `"structured-outputs-2025-11-13"`
37167 
37168 - `"task-budgets-2026-03-13"`
37169 
37170 - `"thinking-display-updates-2026-08-18"`
37171 
37172 - `"ce-user-management-2026-07-13"`
37173 
37174 - `"mid-conversation-output-config-2026-07-01"`
37175 
37176 - `"thinking-binding-controls-2026-08-01"`
37177 
37178 - `"mid-conversation-system-clear-at-2026-08-21"`
37179 
37180 - `"compact-2026-09-04"`
37181 
37182 - `"inline-tools-2026-09-15"`
37183 
37184 - `"mcp-client-2026-09-15"`
37185 
37186 - `"ce-plugins-2026-09-01"`
37187 
37188 - `"spend-limit-reads-2026-09-26"`
37189 
37190 - `"telemetry-destinations-2026-08-11"`
37191 
37192 - `"webhooks-2026-10-07"`
37193 
37194 - `"message-threads-2026-08-12"`
37195 
37196 - `"analytics-usage-cost-2026-08-24"`
37197 
37198 - `"experimental-claude-tag-2026-10-21"`
37199 
37200#### Returns
37201 
37202- `BetaClaudeTagBundleTarget = BetaClaudeTagSlackChannelBundleTarget or BetaClaudeTagSlackWorkspaceBundleTarget`
37203 
37204 One Bundle attached to one Slack channel or one Slack workspace. More types of target can be added.
37205 
37206 - `BetaClaudeTagSlackChannelBundleTarget object`
37207 
37208 One Bundle attached to one Slack channel. The Bundle can be used in that channel only.
37209 
37210 - `type: "slack_channel"`
37211 
37212 - `id: string`
37213 
37214 The Bundle Target's identifier. Starts with `btgt_`. No two Bundle Targets have the same one, and the same Bundle and target always give the same one, also after a detach and a new attach. It is opaque.
37215 
37216 - `created_at: string`
37217 
37218 Time the Bundle was attached.
37219 
37220 format: date-time
37221 
37222 - `slack_channel_id: string`
37223 
37224 The identifier of the Slack channel the Bundle is attached to, starting with `slch_`. It is the channel object's `id`, not Slack's `channel_id`.
37225 
37226 - `BetaClaudeTagSlackWorkspaceBundleTarget object`
37227 
37228 One Bundle attached to one Slack workspace. The Bundle can be used in the workspace and in every channel in it.
37229 
37230 - `type: "slack_workspace"`
37231 
37232 - `id: string`
37233 
37234 The Bundle Target's identifier. Starts with `btgt_`. No two Bundle Targets have the same one, and the same Bundle and target always give the same one, also after a detach and a new attach. It is opaque.
37235 
37236 - `created_at: string`
37237 
37238 Time the Bundle was attached.
37239 
37240 format: date-time
37241 
37242 - `slack_workspace_id: string`
37243 
37244 The identifier of the Slack workspace the Bundle is attached to, starting with `slws_`.
37245 
37246#### Example
37247 
37248```bash
37249curl https://api.anthropic.com/v1/organizations/claude_tag/bundles/$BUNDLE_ID/targets/$TARGET_ID \
37250 -H 'anthropic-version: 2026-10-21' \
37251 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
37252 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
37253```
37254 
37255##### Response (200)
37256 
37257```json
37258{
37259 "id": "id",
37260 "created_at": "2019-12-27T18:11:19.117Z",
37261 "slack_channel_id": "slack_channel_id",
37262 "type": "slack_channel"
37263}
37264```
37265 
37266### Detach Bundle
37267 
37268**DELETE** `/v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id}`
37269 
37270Detach a Bundle from a Slack channel or a Slack workspace. A repeated detach returns 404.
37271 
37272#### Path parameters
37273 
37274- `bundle_id: string`
37275 
37276 The Bundle's identifier, starting with `capp_`.
37277 
37278- `target_id: string`
37279 
37280 The Bundle Target's identifier, starting with `btgt_`. Attach Bundle and List Bundle Targets return it. It is never the identifier of the channel or workspace.
37281 
37282#### Headers
37283 
37284- `"anthropic-version": optional string`
37285 
37286 The version of the Claude API you want to use.
37287 
37288 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
37289 
37290- `"anthropic-beta": optional array of AnthropicBeta`
37291 
37292 This endpoint is in beta: requests must send `experimental-claude-tag-2026-10-21` in this header.
37293 
37294 - `string`
37295 
37296 - `"message-batches-2024-09-24"`
37297 
37298 - `"prompt-caching-2024-07-31"`
37299 
37300 - `"computer-use-2024-10-22"`
37301 
37302 - `"computer-use-2025-01-24"`
37303 
37304 - `"pdfs-2024-09-25"`
37305 
37306 - `"token-counting-2024-11-01"`
37307 
37308 - `"token-efficient-tools-2025-02-19"`
37309 
37310 - `"output-128k-2025-02-19"`
37311 
37312 - `"files-api-2025-04-14"`
37313 
37314 - `"mcp-client-2025-04-04"`
37315 
37316 - `"mcp-client-2025-11-20"`
37317 
37318 - `"dev-full-thinking-2025-05-14"`
37319 
37320 - `"interleaved-thinking-2025-05-14"`
37321 
37322 - `"code-execution-2025-05-22"`
37323 
37324 - `"extended-cache-ttl-2025-04-11"`
37325 
37326 - `"context-1m-2025-08-07"`
37327 
37328 - `"context-management-2025-06-27"`
37329 
37330 - `"model-context-window-exceeded-2025-08-26"`
37331 
37332 - `"skills-2025-10-02"`
37333 
37334 - `"fast-mode-2026-02-01"`
37335 
37336 - `"output-300k-2026-03-24"`
37337 
37338 - `"user-profiles-2026-03-24"`
37339 
37340 - `"user-profiles-2026-08-18"`
37341 
37342 - `"user-profiles-2026-09-04"`
37343 
37344 - `"advisor-tool-2026-03-01"`
37345 
37346 - `"managed-agents-2026-04-01"`
37347 
37348 - `"cache-diagnosis-2026-04-07"`
37349 
37350 - `"dreaming-2026-04-21"`
37351 
37352 - `"thinking-token-count-2026-05-13"`
37353 
37354 - `"server-side-fallback-2026-06-01"`
37355 
37356 - `"server-side-fallback-2026-07-01"`
37357 
37358 - `"fallback-credit-2026-06-01"`
37359 
37360 - `"fallback-credit-2026-07-01"`
37361 
37362 - `"agent-memory-2026-07-22"`
37363 
37364 - `"mid-conversation-tool-changes-2026-07-01"`
37365 
37366 - `"compact-2026-01-12"`
37367 
37368 - `"computer-use-2025-11-24"`
37369 
37370 - `"mcp-tunnels-2026-06-22"`
37371 
37372 - `"structured-outputs-2025-11-13"`
37373 
37374 - `"task-budgets-2026-03-13"`
37375 
37376 - `"thinking-display-updates-2026-08-18"`
37377 
37378 - `"ce-user-management-2026-07-13"`
37379 
37380 - `"mid-conversation-output-config-2026-07-01"`
37381 
37382 - `"thinking-binding-controls-2026-08-01"`
37383 
37384 - `"mid-conversation-system-clear-at-2026-08-21"`
37385 
37386 - `"compact-2026-09-04"`
37387 
37388 - `"inline-tools-2026-09-15"`
37389 
37390 - `"mcp-client-2026-09-15"`
37391 
37392 - `"ce-plugins-2026-09-01"`
37393 
37394 - `"spend-limit-reads-2026-09-26"`
37395 
37396 - `"telemetry-destinations-2026-08-11"`
37397 
37398 - `"webhooks-2026-10-07"`
37399 
37400 - `"message-threads-2026-08-12"`
37401 
37402 - `"analytics-usage-cost-2026-08-24"`
37403 
37404 - `"experimental-claude-tag-2026-10-21"`
37405 
37406#### Returns
37407 
37408- `BetaClaudeTagDeletedBundleTarget object`
37409 
37410 Confirms that a Bundle was detached.
37411 
37412 - `type: "bundle_target_deleted"`
37413 
37414 - `id: string`
37415 
37416 The identifier the Bundle Target had.
37417 
37418#### Example
37419 
37420```bash
37421curl https://api.anthropic.com/v1/organizations/claude_tag/bundles/$BUNDLE_ID/targets/$TARGET_ID \
37422 -X DELETE \
37423 -H 'anthropic-version: 2026-10-21' \
37424 -H 'anthropic-beta: experimental-claude-tag-2026-10-21' \
37425 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
37426```
37427 
37428##### Response (200)
37429 
37430```json
37431{
37432 "id": "id",
37433 "type": "bundle_target_deleted"
37434}
37435```
3295237436 

api/beta/organization/analytics Changed · +11 / -7 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

Nothing in the body moved in this read. What changed is above.

api/beta/organization/analytics/cost Changed · +4 / -2 lines

from line 429
429429 
430430 - `"analytics-usage-cost-2026-08-24"`
431431 
432 - `"experimental-claude-tag-2026-10-21"`
433 
432434### Returns
433435 
434436- `data: array of BetaAnalyticsCostItem`
from line 747
745747 "email_address": "[email protected]",
746748 "name": "Jane Doe",
747749 "type": "user_actor",
748 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
750 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
749751 },
750752 "actor_type": "user_actor",
751753 "agent_id": "agent_01VHd3EAGJ6PLkP9LM7DDu3f",
from line 773
771773 "starting_at": "2026-09-01T00:00:00Z"
772774 }
773775 ],
774 "data_refreshed_at": "2019-12-27T18:11:19.117Z",
776 "data_refreshed_at": "2026-10-01T04:02:11Z",
775777 "has_more": true,
776778 "next_page": "next_page"
777779}

api/beta/organization/analytics/cost/list Changed · +4 / -2 lines

from line 427
427427 
428428 - `"analytics-usage-cost-2026-08-24"`
429429 
430 - `"experimental-claude-tag-2026-10-21"`
431 
430432## Returns
431433 
432434- `data: array of BetaAnalyticsCostItem`
from line 745
743745 "email_address": "[email protected]",
744746 "name": "Jane Doe",
745747 "type": "user_actor",
746 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
748 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
747749 },
748750 "actor_type": "user_actor",
749751 "agent_id": "agent_01VHd3EAGJ6PLkP9LM7DDu3f",
from line 771
769771 "starting_at": "2026-09-01T00:00:00Z"
770772 }
771773 ],
772 "data_refreshed_at": "2019-12-27T18:11:19.117Z",
774 "data_refreshed_at": "2026-10-01T04:02:11Z",
773775 "has_more": true,
774776 "next_page": "next_page"
775777}
Feedback