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

One read of Claude Developer Platformapi-20261029T173726Z

320 pages moved out of 826 read.

Pages moved 320 significant first
Pages read 826 in this capture
Captured 17:37 UTC
Corpus hash 1b6c4dd3baa9 corpus-hash

What this read moved

1-25 of 320, page 1 of 13

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

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

from line 196
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 re-writes the prefix at 1.25x the input price instead of reading it at 0.025x. On Claude Haiku 5.5 a system prompt edit costs 12.5 times an unchanged request. The edit re-wrote the whole conversation. By default, newer accounts get a 400 error instead, except on Claude Mythos 5.1[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, re-wrote 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[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.
200200 
201201**What to do.**
202202 
from line 272
272272* Run-wide, the prune and context editing cache about equally well. If you use context editing, [clear in a few large batches](https://platform.claude.com/docs/en/build-with-claude/context-editing#context-editing-and-prompt-caching).
273273 
274274<Note>
275 On Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5, and Claude Haiku 5.5, rewriting an earlier tool result [invalidates every thinking block after it](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#prefix-check), so use compaction instead. The prune was measured on an earlier model without [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking); on these four models, [context editing](https://platform.claude.com/docs/en/build-with-claude/context-editing) and [compaction](https://platform.claude.com/docs/en/build-with-claude/compaction) run on the server and don’t invalidate thinking blocks. [Send assistant turns back exactly as returned](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#append-assistant-turns-exactly-as-returned): dropping their thinking blocks costs output tokens on every turn, because Claude [re-creates the reasoning](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#drop-block-cost).
275 On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, Claude Sonnet 5.5, and Claude Haiku 5.5, rewriting an earlier tool result [invalidates every thinking block after it](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#prefix-check), so use compaction instead. The prune was measured on an earlier model without [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking); on these models, [context editing](https://platform.claude.com/docs/en/build-with-claude/context-editing) and [compaction](https://platform.claude.com/docs/en/build-with-claude/compaction) run on the server and don’t invalidate thinking blocks. [Send assistant turns back exactly as returned](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#append-assistant-turns-exactly-as-returned): dropping their thinking blocks costs output tokens on every turn, because Claude [re-creates the reasoning](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#drop-block-cost).
276276</Note>
277277 
278278The prune, adapted from the triage agent’s code:
from line 659
6596593. If the curve shows a gap effort can’t close, add the multi-model strategy that fits and re-run the suite.
6606604. Run the winner in shadow on a traffic slice before cutover, then keep the suite running.
661661 
662**How to price a task.** Price each of the five token counts in a response’s `usage` at its own rate: uncached input, 5-minute and 1-hour cache writes at 1.25x and 2x the input price, cache reads, and output. Sum them across the task’s requests (the [Usage and Cost API](https://platform.claude.com/docs/en/manage-claude/usage-cost-api) reports the aggregate). On Claude Haiku 5.5, use the rates for each request’s prompt length, counting cache reads and writes (see [Long context pricing](https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing)). When `usage.speed` is `"fast"`, use the [fast mode rates](https://platform.claude.com/docs/en/about-claude/pricing#fast-mode-pricing).
662**How to price a task.** Price each of the five token counts in a response’s `usage` at its own rate: uncached input, 5-minute and 1-hour cache writes at 1.25x and 2x the input price, cache reads, and output. Sum them across the task’s requests (the [Usage and Cost Analytics API](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api) reports the aggregate). On Claude Haiku 5.5, use the rates for each request’s prompt length, counting cache reads and writes (see [Long context pricing](https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing)). When `usage.speed` is `"fast"`, use the [fast mode rates](https://platform.claude.com/docs/en/about-claude/pricing#fast-mode-pricing).
663663 
664664The following example computes one request’s cost at Claude Opus 5.5’s list prices. Change the three prices for another model:
665665 
from line 1033
10331033 
10341034 * **October 2026 test, one change to a long conversation:** Measured October 20, 2026, on Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5, and Claude Haiku 5.5, on the Messages API with no tools, adaptive thinking, each model’s default effort, the 5-minute cache, a cache breakpoint on the system prompt, and [automatic caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#automatic-caching). The conversation held about 101,000 tokens: a 20,000-token system prompt, 13 user turns of filler text, the model’s own reply to the first turn with its thinking block, and one-word replies to the rest. Once one request had cached the conversation, a second added one short turn, and each measured request sent that longer conversation with one change. Two conversations per model gave the same result.
10351035 * **October 2026 test, tokens read and written:** With no change, and with a per-message effort change, the request read all 101,000 tokens and wrote none. With a 25-token mid-conversation system message, or a 25-token status line at the end of the newest user turn, it read them all and wrote only the new text. A top-level effort change (to `low` on Claude Fable 5.1 and Claude Sonnet 5.5, to `high` on Claude Opus 5.5 and Claude Haiku 5.5) read the 20,000-token system prompt and wrote 81,000 tokens. The same 25 tokens at the front or the end of the system prompt read nothing and wrote all 101,000. The request after a mid-conversation system message, a top-level effort change, or 25 tokens added to the end of the system prompt read the new prefix; a new status line at the front wrote everything again. A further test on October 21, 2026, on the same four models with conversations of 5,000 tokens, and on all but Claude Fable 5.1 with conversations of 100,000 tokens, all with one-word replies, sent a beta header for the first time mid-conversation, as a first per-message effort change may: that request read everything the request before it had cached, all 54 times. A system message sent with no beta header did the same, all 15 times.
1036 * **October 2026 test, how priced:** The chart gives the prompt side of one request, from its `usage` fields at list prices. The chart’s values, in the order system prompt edit, system message, top-level effort change, and per-message effort change: Claude Fable 5.1 $1.26 USD, $0.026 USD, $1.02 USD, and $0.025 USD; Claude Opus 5.5 $0.50 USD, $0.020 USD, $0.41 USD, and $0.020 USD; Claude Sonnet 5.5 $0.25 USD, $0.010 USD, $0.20 USD, and $0.010 USD. The unchanged request repeated an earlier request byte for byte; a new turn of about 25 tokens adds under $0.001 USD. On Claude Haiku 5.5, whose requests were over 100,000 prompt tokens and so at its [long context prices](https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing): $0.063 USD for the system prompt edit, $0.052 USD for the effort change, and $0.005 USD for the read. The requests ran on an Anthropic-internal organization whose usage is metered the same way as a customer organization’s, and on which the API does not enforce the [prefix check](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#prefix-check) by default, so its system prompt edits were accepted. On accounts created on or after August 31, 2026, 00:00 UTC, a request to one of these four models that sends earlier thinking blocks back gets a 400 error by default if it changes `system`, `tools`, or a message before one of them.
1036 * **October 2026 test, how priced:** The chart gives the prompt side of one request, from its `usage` fields at list prices. The chart’s values, in the order system prompt edit, system message, top-level effort change, and per-message effort change: Claude Fable 5.1 $1.26 USD, $0.026 USD, $1.02 USD, and $0.025 USD; Claude Opus 5.5 $0.50 USD, $0.020 USD, $0.41 USD, and $0.020 USD; Claude Sonnet 5.5 $0.25 USD, $0.010 USD, $0.20 USD, and $0.010 USD. The unchanged request repeated an earlier request byte for byte; a new turn of about 25 tokens adds under $0.001 USD. On Claude Haiku 5.5, whose requests were over 100,000 prompt tokens and so at its [long context prices](https://platform.claude.com/docs/en/about-claude/pricing#long-context-pricing): $0.063 USD for the system prompt edit, $0.052 USD for the effort change, and $0.005 USD for the read. The requests ran on an Anthropic-internal organization whose usage is metered the same way as a customer organization’s. For that organization, the API lets failing thinking blocks through when a request leaves `prefix_mismatch_behavior` unset, so the system prompt edits in these tests were accepted. On an account created on or after August 31, 2026, 00:00 UTC, the same edit gets a 400 error on all four models, because each request sends an earlier thinking block back.
10371037 * **What was measured:** The triage agent’s long variant from [Trim input and context tokens](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#trim-input-and-context-tokens), run August 24, 2026, on Claude Sonnet 5 with the 5-minute cache, cost from the usage fields at list prices, five sessions per arm: a no-change arm at the default effort throughout ($0.81 USD per session), and two arms that start at low effort and make the same two cache-breaking changes, a switch to the default effort and one added tool, either mid-session at requests 12 and 17 ($0.95 USD) or together on the first request after the first compaction ($0.75 USD).
10381038 * **Fourth arm:** A fourth arm of six sessions, run August 25, 2026, made the same two changes on the request that triggered the first compaction ($0.92 USD per session): that request’s summarization pass wrote the 81,000-token context to the cache instead of reading it, so that pass cost $0.21 USD against $0.04 USD for the same pass in the boundary arm.
10391039 * **Compaction:** Sessions first compacted at request 21 to 25 (16 of the 21 sessions at request 22), once the prompt passed the 80,000-token compaction trigger, and two no-change sessions compacted a second time near the end. The boundary arm’s lower total than the no-change arm reflects its low-effort requests before the change and those second compactions rather than caching: the two arms’ re-write costs differ by under $0.01 USD.

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

from line 1827
18271827 
18281828### Manage screenshot history
18291829 
1830Long agent loops accumulate screenshots quickly (roughly 1,000–1,800 input tokens each). The API’s [request limits](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits) also apply. Once a single request carries more than 20 images, every image in it is held to a stricter per-side limit. A loop that keeps its screenshot history reaches that count within a few dozen turns, so either resize each screenshot so that neither side exceeds 2000 px or prune older screenshots to keep 20 or fewer in the request.
1830Long agent loops accumulate screenshots quickly (roughly 1,000–1,800 input tokens each). The API’s [request limits](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits) also apply. Once a single request carries more than 20 images, every image in it is held to a stricter per-side limit. A loop that keeps its screenshot history reaches that count within a few dozen turns, so either resize each screenshot to stay under that limit or prune older screenshots to keep 20 or fewer in the request.
18311831 
18321832To keep [Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) effective while bounding context:
18331833 
18341834* Place one `cache_control` breakpoint after the system prompt and tool definitions, and up to three more on the last `tool_result` block of each of the most recent turns, advancing them each turn. Within a [batch action](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool#batch-actions), markers on several blocks act as a single breakpoint, but each still counts toward the limit of four, so use at most one in any turn.
1835* Prune old screenshots in *batches*, not one each turn. Dropping a screenshot every turn changes the prefix every turn and invalidates the cache. A reasonable default is to keep the last three screenshots and prune every 25 turns, so the prefix stays byte-identical between prune events; if your screenshots exceed 2000 px on either side, choose an interval that keeps each request at 20 or fewer images.
1836* On Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5, and Claude Haiku 5.5, avoid pruning on the client: removing an earlier screenshot [invalidates every later thinking block](https://platform.claude.com/docs/en/build-with-claude/thinking#preserved-in-conversation) in every request that still carries those turns. Resize screenshots to 2000 px or less per side instead, and use server-side [tool result clearing](https://platform.claude.com/docs/en/build-with-claude/context-editing#tool-result-clearing) to drop old ones from the context. If you must prune, keep [`prefix_mismatch_behavior: "drop_block"`](https://platform.claude.com/docs/en/build-with-claude/thinking#preserved-thinking-controls) set from then on; after each prune, Claude continues without the thinking produced since the pruned screenshot, on that request and every later one. On Claude Sonnet 5.5, `block_binding` works only with `thinking: {"type": "adaptive"}`. With `between_tools`, keep the history append-only, or strip the thinking blocks from the edited turn on. On Claude Haiku 5.5, `block_binding` works only with `thinking: {"type": "adaptive"}`; with `thinking: {"type": "disabled"}`, keep the history append-only, or strip the thinking blocks from the edited turn on.
1835* Prune old screenshots in *batches*, not one each turn. Dropping a screenshot every turn changes the prefix every turn and invalidates the cache. A reasonable default is to keep the last three screenshots and prune every 25 turns, so the prefix stays byte-identical between prune events; if your screenshots exceed the stricter limit, choose an interval that keeps each request at 20 or fewer images.
1836* On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, Claude Sonnet 5.5, and Claude Haiku 5.5, avoid pruning on the client: removing an earlier screenshot from a request [invalidates every later thinking block](https://platform.claude.com/docs/en/build-with-claude/thinking#preserved-in-conversation) in that request and in every later request. Resize screenshots to stay under the stricter limit instead and use server-side [tool result clearing](https://platform.claude.com/docs/en/build-with-claude/context-editing#tool-result-clearing) to drop old ones from the context. If you must prune, keep [`prefix_mismatch_behavior: "drop_block"`](https://platform.claude.com/docs/en/build-with-claude/thinking#preserved-thinking-controls) set from then on; after each prune, Claude continues without the thinking produced since the pruned screenshot, on that request and every later one. On Claude Sonnet 5.5 and Claude Haiku 5.5, `block_binding` works only with `thinking: {"type": "adaptive"}`. With any other thinking setting on those models, keep the history append-only or strip every `thinking` and `redacted_thinking` block after the pruned screenshot.
18371837 
18381838### Diagnose click issues
18391839 

api/beta Changed · +2405 / -33 lines

## Beta › Organization › Analytics › Usage ### Get Token Usage By Dimension ## Beta › Organization › Analytics › Cost ### Get Cost By Dimension

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 49 more`
12- `AnthropicBeta = string or "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 51 more`
1313 
1414 - `string`
1515 
from line 117
117117 
118118 - `"webhooks-2026-10-07"`
119119 
120 - `"message-threads-2026-08-12"`
121 
122 - `"analytics-usage-cost-2026-08-24"`
123 
120124### Beta API Error
121125 
122126- `BetaAPIError object`
from line 601
597601 
598602 - `"webhooks-2026-10-07"`
599603 
604 - `"message-threads-2026-08-12"`
605 
606 - `"analytics-usage-cost-2026-08-24"`
607 
600608- `"anthropic-workspace-id": optional string`
601609 
602610 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 943
935943 "deprecated_at": "2019-12-27T18:11:19.117Z",
936944 "display_name": "Claude Opus 5.5",
937945 "lifecycle": "active",
938 "line": "haiku",
946 "line": "opus",
939947 "max_input_tokens": 0,
940948 "max_tokens": 0,
941949 "retires_at": "2019-12-27T18:11:19.117Z",
from line 1088
10801088 
10811089 - `"webhooks-2026-10-07"`
10821090 
1091 - `"message-threads-2026-08-12"`
1092 
1093 - `"analytics-usage-cost-2026-08-24"`
1094 
10831095- `"anthropic-workspace-id": optional string`
10841096 
10851097 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1416
14041416 "deprecated_at": "2019-12-27T18:11:19.117Z",
14051417 "display_name": "Claude Opus 5.5",
14061418 "lifecycle": "active",
1407 "line": "haiku",
1419 "line": "opus",
14081420 "max_input_tokens": 0,
14091421 "max_tokens": 0,
14101422 "retires_at": "2019-12-27T18:11:19.117Z",
from line 1554
15421554 
15431555 - `"webhooks-2026-10-07"`
15441556 
1557 - `"message-threads-2026-08-12"`
1558 
1559 - `"analytics-usage-cost-2026-08-24"`
1560 
15451561- `"anthropic-user-profile-id": optional string`
15461562 
15471563 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 5495
54795495 
54805496 - `BetaThinkingConfigAdaptive object`
54815497 
5498- `thread: optional BetaMessageThreadParam or null`
5499 
5500 Server-held conversation state (a Thread). `{"type": "create"}` asks the server to hold this conversation's state under the response's `id`; `{"type": "continue", "previous_message_id": ...}` resumes from a previous response so only the new turn's messages are sent. The response shape is unchanged.
5501 
5502 - `BetaThreadCreateParams object`
5503 
5504 Start holding conversation state under this response's `id`.
5505 
5506 - `type: "create"`
5507 
5508 - `BetaThreadContinueParams object`
5509 
5510 Resume from the response named by `previous_message_id`.
5511 
5512 - `type: "continue"`
5513 
5514 - `previous_message_id: string`
5515 
5516 The `id` of the previous response in this Thread.
5517 
54825518- `tool_choice: optional BetaToolChoice`
54835519 
54845520 How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
from line 7631
75957631 
75967632 `double_click`'s config overrides.
75977633 
7598 - `defer_loading: optional boolean or null`
7599 
7600 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7601 
7602 - `enabled: optional boolean or null`
7603 
7604 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.
7605 
7606 - `hold_key: optional BetaComputerHoldKeyConfig or null`
7607 
7608 `hold_key`'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 with
7634

api/beta/agents Changed · +24 / -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 129
129129 
130130 - `"webhooks-2026-10-07"`
131131 
132 - `"message-threads-2026-08-12"`
133 
134 - `"analytics-usage-cost-2026-08-24"`
135 
132136- `"anthropic-workspace-id": optional string`
133137 
134138 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2151
21472151 
21482152 - `"webhooks-2026-10-07"`
21492153 
2154 - `"message-threads-2026-08-12"`
2155 
2156 - `"analytics-usage-cost-2026-08-24"`
2157 
21502158- `"anthropic-workspace-id": optional string`
21512159 
21522160 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3207
31993207 
32003208 - `"webhooks-2026-10-07"`
32013209 
3210 - `"message-threads-2026-08-12"`
3211 
3212 - `"analytics-usage-cost-2026-08-24"`
3213 
32023214- `"anthropic-workspace-id": optional string`
32033215 
32043216 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4246
42344246 
42354247 - `"webhooks-2026-10-07"`
42364248 
4249 - `"message-threads-2026-08-12"`
4250 
4251 - `"analytics-usage-cost-2026-08-24"`
4252 
42374253- `"anthropic-workspace-id": optional string`
42384254 
42394255 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 6243
62276243 
62286244 - `"webhooks-2026-10-07"`
62296245 
6246 - `"message-threads-2026-08-12"`
6247 
6248 - `"analytics-usage-cost-2026-08-24"`
6249 
62306250- `"anthropic-workspace-id": optional string`
62316251 
62326252 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 8225
82058225 
82068226 - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter or null`
82078227 
8208 Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both.
8209 
8210 - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput or null`
8211 
8212 Whether URLs in the text of user messages may be fetched. Null when not set, which allows them.
8213 
8214 - `BetaManagedAgentsWebFetchURLSourceAll object`
8215 
8216 Every URL from this source may be fetched. This
8228 Which of the web_search and web_fetch t

api/beta/deployment_runs Changed · +8 / -0 lines

from line 185
185185 
186186 - `"webhooks-2026-10-07"`
187187 
188 - `"message-threads-2026-08-12"`
189 
190 - `"analytics-usage-cost-2026-08-24"`
191 
188192- `"anthropic-workspace-id": optional string`
189193 
190194 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 591
587591 - `"telemetry-destinations-2026-08-11"`
588592 
589593 - `"webhooks-2026-10-07"`
594 
595 - `"message-threads-2026-08-12"`
596 
597 - `"analytics-usage-cost-2026-08-24"`
590598 
591599- `"anthropic-workspace-id": optional string`
592600 

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

from line 129
129129 
130130 - `"webhooks-2026-10-07"`
131131 
132 - `"message-threads-2026-08-12"`
133 
134 - `"analytics-usage-cost-2026-08-24"`
135 
132136- `"anthropic-workspace-id": optional string`
133137 
134138 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1327
13231327 
13241328 - `"webhooks-2026-10-07"`
13251329 
1330 - `"message-threads-2026-08-12"`
1331 
1332 - `"analytics-usage-cost-2026-08-24"`
1333 
13261334- `"anthropic-workspace-id": optional string`
13271335 
13281336 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2072
20642072 
20652073 - `"webhooks-2026-10-07"`
20662074 
2075 - `"message-threads-2026-08-12"`
2076 
2077 - `"analytics-usage-cost-2026-08-24"`
2078 
20672079- `"anthropic-workspace-id": optional string`
20682080 
20692081 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2808
27962808 
27972809 - `"webhooks-2026-10-07"`
27982810 
2811 - `"message-threads-2026-08-12"`
2812 
2813 - `"analytics-usage-cost-2026-08-24"`
2814 
27992815- `"anthropic-workspace-id": optional string`
28002816 
28012817 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3954
39383954 
39393955 - `"webhooks-2026-10-07"`
39403956 
3957 - `"message-threads-2026-08-12"`
3958 
3959 - `"analytics-usage-cost-2026-08-24"`
3960 
39413961- `"anthropic-workspace-id": optional string`
39423962 
39433963 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4691
46714691 
46724692 - `"webhooks-2026-10-07"`
46734693 
4694 - `"message-threads-2026-08-12"`
4695 
4696 - `"analytics-usage-cost-2026-08-24"`
4697 
46744698- `"anthropic-workspace-id": optional string`
46754699 
46764700 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5090
50665090 
50675091 - `"webhooks-2026-10-07"`
50685092 
5093 - `"message-threads-2026-08-12"`
5094 
5095 - `"analytics-usage-cost-2026-08-24"`
5096 
50695097- `"anthropic-workspace-id": optional string`
50705098 
50715099 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5826
57985826 - `"telemetry-destinations-2026-08-11"`
57995827 
58005828 - `"webhooks-2026-10-07"`
5829 
5830 - `"message-threads-2026-08-12"`
5831 
5832 - `"analytics-usage-cost-2026-08-24"`
58015833 
58025834- `"anthropic-workspace-id": optional string`
58035835 

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

from line 133
133133 
134134 - `"webhooks-2026-10-07"`
135135 
136 - `"message-threads-2026-08-12"`
137 
138 - `"analytics-usage-cost-2026-08-24"`
139 
136140- `"anthropic-workspace-id": optional string`
137141 
138142 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 726
722726 
723727 - `"webhooks-2026-10-07"`
724728 
729 - `"message-threads-2026-08-12"`
730 
731 - `"analytics-usage-cost-2026-08-24"`
732 
725733- `"anthropic-workspace-id": optional string`
726734 
727735 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1152
11441152 
11451153 - `"webhooks-2026-10-07"`
11461154 
1155 - `"message-threads-2026-08-12"`
1156 
1157 - `"analytics-usage-cost-2026-08-24"`
1158 
11471159- `"anthropic-workspace-id": optional string`
11481160 
11491161 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1573
15611573 
15621574 - `"webhooks-2026-10-07"`
15631575 
1576 - `"message-threads-2026-08-12"`
1577 
1578 - `"analytics-usage-cost-2026-08-24"`
1579 
15641580- `"anthropic-workspace-id": optional string`
15651581 
15661582 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1994
19781994 - `"telemetry-destinations-2026-08-11"`
19791995 
19801996 - `"webhooks-2026-10-07"`
1997 
1998 - `"message-threads-2026-08-12"`
1999 
2000 - `"analytics-usage-cost-2026-08-24"`
19812001 
19822002- `"anthropic-workspace-id": optional string`
19832003 

api/beta/environments Changed · +56 / -0 lines

from line 129
129129 
130130 - `"webhooks-2026-10-07"`
131131 
132 - `"message-threads-2026-08-12"`
133 
134 - `"analytics-usage-cost-2026-08-24"`
135 
132136- `"anthropic-workspace-id": optional string`
133137 
134138 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 612
608612 
609613 - `"webhooks-2026-10-07"`
610614 
615 - `"message-threads-2026-08-12"`
616 
617 - `"analytics-usage-cost-2026-08-24"`
618 
611619- `"anthropic-workspace-id": optional string`
612620 
613621 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 951
943951 
944952 - `"webhooks-2026-10-07"`
945953 
954 - `"message-threads-2026-08-12"`
955 
956 - `"analytics-usage-cost-2026-08-24"`
957 
946958- `"anthropic-workspace-id": optional string`
947959 
948960 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1281
12691281 
12701282 - `"webhooks-2026-10-07"`
12711283 
1284 - `"message-threads-2026-08-12"`
1285 
1286 - `"analytics-usage-cost-2026-08-24"`
1287 
12721288- `"anthropic-workspace-id": optional string`
12731289 
12741290 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1733
17171733 
17181734 - `"webhooks-2026-10-07"`
17191735 
1736 - `"message-threads-2026-08-12"`
1737 
1738 - `"analytics-usage-cost-2026-08-24"`
1739 
17201740- `"anthropic-workspace-id": optional string`
17211741 
17221742 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1906
18861906 
18871907 - `"webhooks-2026-10-07"`
18881908 
1909 - `"message-threads-2026-08-12"`
1910 
1911 - `"analytics-usage-cost-2026-08-24"`
1912 
18891913- `"anthropic-workspace-id": optional string`
18901914 
18911915 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2706
26822706 
26832707 - `"webhooks-2026-10-07"`
26842708 
2709 - `"message-threads-2026-08-12"`
2710 
2711 - `"analytics-usage-cost-2026-08-24"`
2712 
26852713- `"anthropic-workspace-id": optional string`
26862714 
26872715 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2976
29482976 
29492977 - `"webhooks-2026-10-07"`
29502978 
2979 - `"message-threads-2026-08-12"`
2980 
2981 - `"analytics-usage-cost-2026-08-24"`
2982 
29512983- `"Anthropic-Worker-ID": optional string`
29522984 
29532985 Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console
from line 3232
32003232 
32013233 - `"webhooks-2026-10-07"`
32023234 
3235 - `"message-threads-2026-08-12"`
3236 
3237 - `"analytics-usage-cost-2026-08-24"`
3238 
32033239#### Returns
32043240 
32053241- `BetaSelfHostedWork object`
from line 3495
34593495 
34603496 - `"webhooks-2026-10-07"`
34613497 
3498 - `"message-threads-2026-08-12"`
3499 
3500 - `"analytics-usage-cost-2026-08-24"`
3501 
34623502#### Returns
34633503 
34643504- `BetaSelfHostedWorkHeartbeatResponse object`
from line 3691
36513691 
36523692 - `"webhooks-2026-10-07"`
36533693 
3694 - `"message-threads-2026-08-12"`
3695 
3696 - `"analytics-usage-cost-2026-08-24"`
3697 
36543698- `"anthropic-workspace-id": optional string`
36553699 
36563700 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3969
39253969 
39263970 - `"webhooks-2026-10-07"`
39273971 
3972 - `"message-threads-2026-08-12"`
3973 
3974 - `"analytics-usage-cost-2026-08-24"`
3975 
39283976#### Returns
39293977 
39303978- `BetaSelfHostedWorkListResponse object`
from line 4230
41824230 
41834231 - `"webhooks-2026-10-07"`
41844232 
4233 - `"message-threads-2026-08-12"`
4234 
4235 - `"analytics-usage-cost-2026-08-24"`
4236 
41854237- `"anthropic-workspace-id": optional string`
41864238 
41874239 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4495
44434495 - `"telemetry-destinations-2026-08-11"`
44444496 
44454497 - `"webhooks-2026-10-07"`
4498 
4499 - `"message-threads-2026-08-12"`
4500 
4501 - `"analytics-usage-cost-2026-08-24"`
44464502 
44474503- `"anthropic-workspace-id": optional string`
44484504 

api/beta/environments/work Changed · +32 / -0 lines

from line 137
137137 
138138 - `"webhooks-2026-10-07"`
139139 
140 - `"message-threads-2026-08-12"`
141 
142 - `"analytics-usage-cost-2026-08-24"`
143 
140144- `"anthropic-workspace-id": optional string`
141145 
142146 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 407
403407 
404408 - `"webhooks-2026-10-07"`
405409 
410 - `"message-threads-2026-08-12"`
411 
412 - `"analytics-usage-cost-2026-08-24"`
413 
406414- `"Anthropic-Worker-ID": optional string`
407415 
408416 Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console
from line 663
655663 
656664 - `"webhooks-2026-10-07"`
657665 
666 - `"message-threads-2026-08-12"`
667 
668 - `"analytics-usage-cost-2026-08-24"`
669 
658670### Returns
659671 
660672- `BetaSelfHostedWork object`
from line 926
914926 
915927 - `"webhooks-2026-10-07"`
916928 
929 - `"message-threads-2026-08-12"`
930 
931 - `"analytics-usage-cost-2026-08-24"`
932 
917933### Returns
918934 
919935- `BetaSelfHostedWorkHeartbeatResponse object`
from line 1122
11061122 
11071123 - `"webhooks-2026-10-07"`
11081124 
1125 - `"message-threads-2026-08-12"`
1126 
1127 - `"analytics-usage-cost-2026-08-24"`
1128 
11091129- `"anthropic-workspace-id": optional string`
11101130 
11111131 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1400
13801400 
13811401 - `"webhooks-2026-10-07"`
13821402 
1403 - `"message-threads-2026-08-12"`
1404 
1405 - `"analytics-usage-cost-2026-08-24"`
1406 
13831407### Returns
13841408 
13851409- `BetaSelfHostedWorkListResponse object`
from line 1661
16371661 
16381662 - `"webhooks-2026-10-07"`
16391663 
1664 - `"message-threads-2026-08-12"`
1665 
1666 - `"analytics-usage-cost-2026-08-24"`
1667 
16401668- `"anthropic-workspace-id": optional string`
16411669 
16421670 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1926
18981926 - `"telemetry-destinations-2026-08-11"`
18991927 
19001928 - `"webhooks-2026-10-07"`
1929 
1930 - `"message-threads-2026-08-12"`
1931 
1932 - `"analytics-usage-cost-2026-08-24"`
19011933 
19021934- `"anthropic-workspace-id": optional string`
19031935 

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

from line 129
129129 
130130 - `"webhooks-2026-10-07"`
131131 
132 - `"message-threads-2026-08-12"`
133 
134 - `"analytics-usage-cost-2026-08-24"`
135 
132136- `"anthropic-workspace-id": optional string`
133137 
134138 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 392
388392 
389393 - `"webhooks-2026-10-07"`
390394 
395 - `"message-threads-2026-08-12"`
396 
397 - `"analytics-usage-cost-2026-08-24"`
398 
391399- `"anthropic-workspace-id": optional string`
392400 
393401 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 634
626634 
627635 - `"webhooks-2026-10-07"`
628636 
637 - `"message-threads-2026-08-12"`
638 
639 - `"analytics-usage-cost-2026-08-24"`
640 
629641- `"anthropic-workspace-id": optional string`
630642 
631643 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 782
770782 
771783 - `"webhooks-2026-10-07"`
772784 
785 - `"message-threads-2026-08-12"`
786 
787 - `"analytics-usage-cost-2026-08-24"`
788 
773789- `"anthropic-workspace-id": optional string`
774790 
775791 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1012
9961012 - `"telemetry-destinations-2026-08-11"`
9971013 
9981014 - `"webhooks-2026-10-07"`
1015 
1016 - `"message-threads-2026-08-12"`
1017 
1018 - `"analytics-usage-cost-2026-08-24"`
9991019 
10001020- `"anthropic-workspace-id": optional string`
10011021 

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

from line 129
129129 
130130 - `"webhooks-2026-10-07"`
131131 
132 - `"message-threads-2026-08-12"`
133 
134 - `"analytics-usage-cost-2026-08-24"`
135 
132136- `"anthropic-workspace-id": optional string`
133137 
134138 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 395
391395 
392396 - `"webhooks-2026-10-07"`
393397 
398 - `"message-threads-2026-08-12"`
399 
400 - `"analytics-usage-cost-2026-08-24"`
401 
394402- `"anthropic-workspace-id": optional string`
395403 
396404 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 618
610618 
611619 - `"webhooks-2026-10-07"`
612620 
621 - `"message-threads-2026-08-12"`
622 
623 - `"analytics-usage-cost-2026-08-24"`
624 
613625- `"anthropic-workspace-id": optional string`
614626 
615627 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 836
824836 
825837 - `"webhooks-2026-10-07"`
826838 
839 - `"message-threads-2026-08-12"`
840 
841 - `"analytics-usage-cost-2026-08-24"`
842 
827843- `"anthropic-workspace-id": optional string`
828844 
829845 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1078
10621078 
10631079 - `"webhooks-2026-10-07"`
10641080 
1081 - `"message-threads-2026-08-12"`
1082 
1083 - `"analytics-usage-cost-2026-08-24"`
1084 
10651085- `"anthropic-workspace-id": optional string`
10661086 
10671087 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1251
12311251 
12321252 - `"webhooks-2026-10-07"`
12331253 
1254 - `"message-threads-2026-08-12"`
1255 
1256 - `"analytics-usage-cost-2026-08-24"`
1257 
12341258- `"anthropic-workspace-id": optional string`
12351259 
12361260 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1550
15261550 
15271551 - `"webhooks-2026-10-07"`
15281552 
1553 - `"message-threads-2026-08-12"`
1554 
1555 - `"analytics-usage-cost-2026-08-24"`
1556 
15291557- `"anthropic-workspace-id": optional string`
15301558 
15311559 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1843
18151843 
18161844 - `"webhooks-2026-10-07"`
18171845 
1846 - `"message-threads-2026-08-12"`
1847 
1848 - `"analytics-usage-cost-2026-08-24"`
1849 
18181850- `"anthropic-workspace-id": optional string`
18191851 
18201852 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2118
20862118 
20872119 - `"webhooks-2026-10-07"`
20882120 
2121 - `"message-threads-2026-08-12"`
2122 
2123 - `"analytics-usage-cost-2026-08-24"`
2124 
20892125- `"anthropic-workspace-id": optional string`
20902126 
20912127 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2368
23322368 
23332369 - `"webhooks-2026-10-07"`
23342370 
2371 - `"message-threads-2026-08-12"`
2372 
2373 - `"analytics-usage-cost-2026-08-24"`
2374 
23352375- `"anthropic-workspace-id": optional string`
23362376 
23372377 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2638
25982638 
25992639 - `"webhooks-2026-10-07"`
26002640 
2641 - `"message-threads-2026-08-12"`
2642 
2643 - `"analytics-usage-cost-2026-08-24"`
2644 
26012645- `"anthropic-workspace-id": optional string`
26022646 
26032647 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 2889
28452889 
28462890 - `"webhooks-2026-10-07"`
28472891 
2892 - `"message-threads-2026-08-12"`
2893 
2894 - `"analytics-usage-cost-2026-08-24"`
2895 
28482896- `"anthropic-workspace-id": optional string`
28492897 
28502898 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3225
31773225 
31783226 - `"webhooks-2026-10-07"`
31793227 
3228 - `"message-threads-2026-08-12"`
3229 
3230 - `"analytics-usage-cost-2026-08-24"`
3231 
31803232- `"anthropic-workspace-id": optional string`
31813233 
31823234 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 3541
34893541 - `"telemetry-destinations-2026-08-11"`
34903542 
34913543 - `"webhooks-2026-10-07"`
3544 
3545 - `"message-threads-2026-08-12"`
3546 
3547 - `"analytics-usage-cost-2026-08-24"`
34923548 
34933549- `"anthropic-workspace-id": optional string`
34943550 

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

from line 151
151151 
152152 - `"webhooks-2026-10-07"`
153153 
154 - `"message-threads-2026-08-12"`
155 
156 - `"analytics-usage-cost-2026-08-24"`
157 
154158- `"anthropic-workspace-id": optional string`
155159 
156160 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 444
440444 
441445 - `"webhooks-2026-10-07"`
442446 
447 - `"message-threads-2026-08-12"`
448 
449 - `"analytics-usage-cost-2026-08-24"`
450 
443451- `"anthropic-workspace-id": optional string`
444452 
445453 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 719
711719 
712720 - `"webhooks-2026-10-07"`
713721 
722 - `"message-threads-2026-08-12"`
723 
724 - `"analytics-usage-cost-2026-08-24"`
725 
714726- `"anthropic-workspace-id": optional string`
715727 
716728 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 969
957969 
958970 - `"webhooks-2026-10-07"`
959971 
972 - `"message-threads-2026-08-12"`
973 
974 - `"analytics-usage-cost-2026-08-24"`
975 
960976- `"anthropic-workspace-id": optional string`
961977 
962978 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 1238
12221238 - `"telemetry-destinations-2026-08-11"`
12231239 
12241240 - `"webhooks-2026-10-07"`
1241 
1242 - `"message-threads-2026-08-12"`
1243 
1244 - `"analytics-usage-cost-2026-08-24"`
12251245 
12261246- `"anthropic-workspace-id": optional string`
12271247 

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

from line 209
209209 
210210 - `"webhooks-2026-10-07"`
211211 
212 - `"message-threads-2026-08-12"`
213 
214 - `"analytics-usage-cost-2026-08-24"`
215 
212216- `"anthropic-workspace-id": optional string`
213217 
214218 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 545
541545 
542546 - `"webhooks-2026-10-07"`
543547 
548 - `"message-threads-2026-08-12"`
549 
550 - `"analytics-usage-cost-2026-08-24"`
551 
544552- `"anthropic-workspace-id": optional string`
545553 
546554 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 861
853861 - `"telemetry-destinations-2026-08-11"`
854862 
855863 - `"webhooks-2026-10-07"`
864 
865 - `"message-threads-2026-08-12"`
866 
867 - `"analytics-usage-cost-2026-08-24"`
856868 
857869- `"anthropic-workspace-id": optional string`
858870 

api/beta/messages Changed · +114 / -0 lines

### Beta Message Thread Param ### Beta Thread Continue Params ### Beta Thread Create Params

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 - `"webhooks-2026-10-07"`
135135 
136 - `"message-threads-2026-08-12"`
137 
138 - `"analytics-usage-cost-2026-08-24"`
139 
136140- `"anthropic-user-profile-id": optional string`
137141 
138142 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 4074
40704074 
40714075 - `BetaThinkingConfigAdaptive object`
40724076 
4077- `thread: optional BetaMessageThreadParam or null`
4078 
4079 Server-held conversation state (a Thread). `{"type": "create"}` asks the server to hold this conversation's state under the response's `id`; `{"type": "continue", "previous_message_id": ...}` resumes from a previous response so only the new turn's messages are sent. The response shape is unchanged.
4080 
4081 - `BetaThreadCreateParams object`
4082 
4083 Start holding conversation state under this response's `id`.
4084 
4085 - `type: "create"`
4086 
4087 - `BetaThreadContinueParams object`
4088 
4089 Resume from the response named by `previous_message_id`.
4090 
4091 - `type: "continue"`
4092 
4093 - `previous_message_id: string`
4094 
4095 The `id` of the previous response in this Thread.
4096 
40734097- `tool_choice: optional BetaToolChoice`
40744098 
40754099 How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
from line 7046
70227046 
70237047 Powerful intelligence for coding, knowledge work, and long-running agents
70247048 
7025 - `"claude-mythos-5-1"`
7026 
7027 Our most capable model for cybersecurity and biology research, available through trusted access programs
7028 
7029 - `"claude-sonnet-5"`
7030 
7031 Efficient model for coding and agents
7032 
7033 - `"claude-fable-5"`
7034 
7035 Next generation of intelligence for the hardest knowledge work and coding problems
7036 
7037 - `"claude-mythos-5"`
7038 
7039 Most capable model for cybersecurity and biology research
7040 
7041 - `"claude-opus-5"`
7042 
7043 Powerful intelligence for long-running agents and coding
7044 
7045 - `"claude-opus-4-8"`
7046 
7047 Powerful intelligence for long-running agents and coding
7048 
7049
7049

api/beta/messages/batches Changed · +44 / -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 - `"webhooks-2026-10-07"`
135135 
136 - `"message-threads-2026-08-12"`
137 
138 - `"analytics-usage-cost-2026-08-24"`
139 
136140- `"anthropic-user-profile-id": optional string`
137141 
138142 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 4094
40904094 
40914095 - `BetaThinkingConfigAdaptive object`
40924096 
4097 - `thread: optional BetaMessageThreadParam or null`
4098 
4099 Server-held conversation state (a Thread). `{"type": "create"}` asks the server to hold this conversation's state under the response's `id`; `{"type": "continue", "previous_message_id": ...}` resumes from a previous response so only the new turn's messages are sent. The response shape is unchanged.
4100 
4101 - `BetaThreadCreateParams object`
4102 
4103 Start holding conversation state under this response's `id`.
4104 
4105 - `type: "create"`
4106 
4107 - `BetaThreadContinueParams object`
4108 
4109 Resume from the response named by `previous_message_id`.
4110 
4111 - `type: "continue"`
4112 
4113 - `previous_message_id: string`
4114 
4115 The `id` of the previous response in this Thread.
4116 
40934117 - `tool_choice: optional BetaToolChoice`
40944118 
40954119 How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
from line 4609
45854609 
45864610 - `"webhooks-2026-10-07"`
45874611 
4612 - `"message-threads-2026-08-12"`
4613 
4614 - `"analytics-usage-cost-2026-08-24"`
4615 
45884616- `"anthropic-workspace-id": optional string`
45894617 
45904618 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 4905
48774905 
48784906 - `"webhooks-2026-10-07"`
48794907 
4908 - `"message-threads-2026-08-12"`
4909 
4910 - `"analytics-usage-cost-2026-08-24"`
4911 
48804912- `"anthropic-workspace-id": optional string`
48814913 
48824914 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5210
51785210 
51795211 - `"webhooks-2026-10-07"`
51805212 
5213 - `"message-threads-2026-08-12"`
5214 
5215 - `"analytics-usage-cost-2026-08-24"`
5216 
51815217- `"anthropic-workspace-id": optional string`
51825218 
51835219 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5497
54615497 
54625498 - `"webhooks-2026-10-07"`
54635499 
5500 - `"message-threads-2026-08-12"`
5501 
5502 - `"analytics-usage-cost-2026-08-24"`
5503 
54645504- `"anthropic-workspace-id": optional string`
54655505 
54665506 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 5676
56365676 
56375677 - `"webhooks-2026-10-07"`
56385678 
5679 - `"message-threads-2026-08-12"`
5680 
5681 - `"analytics-usage-cost-2026-08-24"`
5682 
56395683- `"anthropic-workspace-id": optional string`
56405684 
56415685 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 7246
72027246 
72037247 - `enabled: optional boolean or null`
72047248 
7205 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.
7206 
7207 - `right_click: optional BetaBrowserRightClickConfig or null`
7208 
7209 `right_click`'s config overrides.
7210 
7211 - `defer_loading: optional boolean or null`
7212 
7213 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7214 
7215 - `enabled: optional boolean or null`
7216 
7217 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.
7218 
7219 - `screenshot: optional BetaBrowserScreenshotConfig or null`
7220 
7221 `screenshot`'s config overrides.
7222 
7223 - `defer_loading: optional boolean or null`
7224 
7225 Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.
7226 
7227 - `enabled: optional boolean or null
7249 Whether this member i

api/beta/messages/batches/create Changed · +24 / -0 lines

from line 131
131131 
132132 - `"webhooks-2026-10-07"`
133133 
134 - `"message-threads-2026-08-12"`
135 
136 - `"analytics-usage-cost-2026-08-24"`
137 
134138- `"anthropic-user-profile-id": optional string`
135139 
136140 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 4091
40874091 - `BetaThinkingConfigBetweenTools object`
40884092 
40894093 - `BetaThinkingConfigAdaptive object`
4094 
4095 - `thread: optional BetaMessageThreadParam or null`
4096 
4097 Server-held conversation state (a Thread). `{"type": "create"}` asks the server to hold this conversation's state under the response's `id`; `{"type": "continue", "previous_message_id": ...}` resumes from a previous response so only the new turn's messages are sent. The response shape is unchanged.
4098 
4099 - `BetaThreadCreateParams object`
4100 
4101 Start holding conversation state under this response's `id`.
4102 
4103 - `type: "create"`
4104 
4105 - `BetaThreadContinueParams object`
4106 
4107 Resume from the response named by `previous_message_id`.
4108 
4109 - `type: "continue"`
4110 
4111 - `previous_message_id: string`
4112 
4113 The `id` of the previous response in this Thread.
40904114 
40914115 - `tool_choice: optional BetaToolChoice`
40924116 

api/beta/messages/create Changed · +24 / -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 131
131131 
132132 - `"webhooks-2026-10-07"`
133133 
134 - `"message-threads-2026-08-12"`
135 
136 - `"analytics-usage-cost-2026-08-24"`
137 
134138- `"anthropic-user-profile-id": optional string`
135139 
136140 The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization.
from line 4072
40684072 
40694073 - `BetaThinkingConfigAdaptive object`
40704074 
4075- `thread: optional BetaMessageThreadParam or null`
4076 
4077 Server-held conversation state (a Thread). `{"type": "create"}` asks the server to hold this conversation's state under the response's `id`; `{"type": "continue", "previous_message_id": ...}` resumes from a previous response so only the new turn's messages are sent. The response shape is unchanged.
4078 
4079 - `BetaThreadCreateParams object`
4080 
4081 Start holding conversation state under this response's `id`.
4082 
4083 - `type: "create"`
4084 
4085 - `BetaThreadContinueParams object`
4086 
4087 Resume from the response named by `previous_message_id`.
4088 
4089 - `type: "continue"`
4090 
4091 - `previous_message_id: string`
4092 
4093 The `id` of the previous response in this Thread.
4094 
40714095- `tool_choice: optional BetaToolChoice`
40724096 
40734097 How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
from line 7044
70207044 
70217045 Powerful intelligence for coding, knowledge work, and long-running agents
70227046 
7023 - `"claude-mythos-5-1"`
7024 
7025 Our most capable model for cybersecurity and biology research, available through trusted access programs
7026 
7027 - `"claude-sonnet-5"`
7028 
7029 Efficient model for coding and agents
7030 
7031 - `"claude-fable-5"`
7032 
7033 Next generation of intelligence for the hardest knowledge work and coding problems
7034 
7035 - `"claude-mythos-5"`
7036 
7037 Most capable model for cybersecurity and biology research
7038 
7039 - `"claude-opus-5"`
7040 
7041 Powerful intelligence for long-running agents and coding
7042 
7043 - `"claude-opus-4-8"`
7044 
7045 Powerful intelligence for long-running agents and coding
7046 
7047
7047

api/beta/models Changed · +10 / -2 lines

from line 161
161161 
162162 - `"webhooks-2026-10-07"`
163163 
164 - `"message-threads-2026-08-12"`
165 
166 - `"analytics-usage-cost-2026-08-24"`
167 
164168- `"anthropic-workspace-id": optional string`
165169 
166170 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 503
499503 "deprecated_at": "2019-12-27T18:11:19.117Z",
500504 "display_name": "Claude Opus 5.5",
501505 "lifecycle": "active",
502 "line": "haiku",
506 "line": "opus",
503507 "max_input_tokens": 0,
504508 "max_tokens": 0,
505509 "retires_at": "2019-12-27T18:11:19.117Z",
from line 648
644648 
645649 - `"webhooks-2026-10-07"`
646650 
651 - `"message-threads-2026-08-12"`
652 
653 - `"analytics-usage-cost-2026-08-24"`
654 
647655- `"anthropic-workspace-id": optional string`
648656 
649657 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 976
968976 "deprecated_at": "2019-12-27T18:11:19.117Z",
969977 "display_name": "Claude Opus 5.5",
970978 "lifecycle": "active",
971 "line": "haiku",
979 "line": "opus",
972980 "max_input_tokens": 0,
973981 "max_tokens": 0,
974982 "retires_at": "2019-12-27T18:11:19.117Z",

api/beta/models/list Changed · +5 / -1 lines

from line 159
159159 
160160 - `"webhooks-2026-10-07"`
161161 
162 - `"message-threads-2026-08-12"`
163 
164 - `"analytics-usage-cost-2026-08-24"`
165 
162166- `"anthropic-workspace-id": optional string`
163167 
164168 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 501
497501 "deprecated_at": "2019-12-27T18:11:19.117Z",
498502 "display_name": "Claude Opus 5.5",
499503 "lifecycle": "active",
500 "line": "haiku",
504 "line": "opus",
501505 "max_input_tokens": 0,
502506 "max_tokens": 0,
503507 "retires_at": "2019-12-27T18:11:19.117Z",

api/beta/models/retrieve Changed · +5 / -1 lines

from line 135
135135 
136136 - `"webhooks-2026-10-07"`
137137 
138 - `"message-threads-2026-08-12"`
139 
140 - `"analytics-usage-cost-2026-08-24"`
141 
138142- `"anthropic-workspace-id": optional string`
139143 
140144 Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).
from line 463
459463 "deprecated_at": "2019-12-27T18:11:19.117Z",
460464 "display_name": "Claude Opus 5.5",
461465 "lifecycle": "active",
462 "line": "haiku",
466 "line": "opus",
463467 "max_input_tokens": 0,
464468 "max_tokens": 0,
465469 "retires_at": "2019-12-27T18:11:19.117Z",

api/beta/organization Changed · +1870 / -30 lines

## Organization › Analytics › Usage ### Get Token Usage By Dimension ## Organization › Analytics › Cost ### Get Cost By Dimension

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 1713
17131713 
17141714 - `"webhooks-2026-10-07"`
17151715 
1716 - `"message-threads-2026-08-12"`
1717 
1718 - `"analytics-usage-cost-2026-08-24"`
1719 
17161720#### Body parameters
17171721 
17181722- `issuer_url: string`
from line 2119
21152119 
21162120 - `"webhooks-2026-10-07"`
21172121 
2122 - `"message-threads-2026-08-12"`
2123 
2124 - `"analytics-usage-cost-2026-08-24"`
2125 
21182126#### Returns
21192127 
21202128- `data: array of BetaFederationIssuer`
from line 2436
24282436 
24292437 - `"webhooks-2026-10-07"`
24302438 
2439 - `"message-threads-2026-08-12"`
2440 
2441 - `"analytics-usage-cost-2026-08-24"`
2442 
24312443#### Returns
24322444 
24332445- `BetaFederationIssuer object`
from line 2756
27442756 
27452757 - `"webhooks-2026-10-07"`
27462758 
2759 - `"message-threads-2026-08-12"`
2760 
2761 - `"analytics-usage-cost-2026-08-24"`
2762 
27472763#### Body parameters
27482764 
27492765- `check_jti: optional boolean or null`
from line 3154
31383154 
31393155 - `"webhooks-2026-10-07"`
31403156 
3157 - `"message-threads-2026-08-12"`
3158 
3159 - `"analytics-usage-cost-2026-08-24"`
3160 
31413161#### Returns
31423162 
31433163- `BetaFederationIssuer object`
from line 3478
34583478 
34593479 - `"webhooks-2026-10-07"`
34603480 
3481 - `"message-threads-2026-08-12"`
3482 
3483 - `"analytics-usage-cost-2026-08-24"`
3484 
34613485#### Body parameters
34623486 
34633487- `issuer_id: string`
from line 3909
38853909 
38863910 - `"webhooks-2026-10-07"`
38873911 
3912 - `"message-threads-2026-08-12"`
3913 
3914 - `"analytics-usage-cost-2026-08-24"`
3915 
38883916#### Returns
38893917 
38903918- `data: array of BetaFederationRule`
from line 4226
41984226 
41994227 - `"webhooks-2026-10-07"`
42004228 
4229 - `"message-threads-2026-08-12"`
4230 
4231 - `"analytics-usage-cost-2026-08-24"`
4232 
42014233#### Returns
42024234 
42034235- `BetaFederationRule object`
from line 4561
45294561 
45304562 - `"webhooks-2026-10-07"`
45314563 
4564 - `"message-threads-2026-08-12"`
4565 
4566 - `"analytics-usage-cost-2026-08-24"`
4567 
45324568#### Body parameters
45334569 
45344570- `applies_to_all_workspaces: optional boolean or null`
from line 4968
49324968 
49334969 - `"webhooks-2026-10-07"`
49344970 
4971 - `"message-threads-2026-08-12"`
4972 
4973 - `"analytics-usage-cost-2026-08-24"`
4974 
49354975#### Returns
49364976 
49374977- `BetaFederationRule object`
from line 5299
52595299 
52605300 - `"webhooks-2026-10-07"`
52615301 
5302 - `"message-threads-2026-08-12"`
5303 
5304 - `"analytics-usage-cost-2026-08-24"`
5305 
52625306#### Body parameters
52635307 
52645308- `workspace_id: string`
from line 5514
54705514 
54715515 - `"webhooks-2026-10-07"`
54725516 
5517 - `"message-threads-2026-08-12"`
5518 
5519 - `"analytics-usage-cost-2026-08-24"`
5520 
54735521#### Returns
54745522 
54755523- `data: array of BetaFederationRuleWorkspace`
from line 5719
56715719 
56725720 - `"webhooks-2026-10-07"`
56735721 
5722 - `"message-threads-2026-08-12"`
5723 
5724 - `"analytics-usage-cost-2026-08-24"`
5725 
56745726#### Returns
56755727 
56765728- `type: "federation_rule_workspace_deleted"`
from line 6396
63446396 
63456397 - `"webhooks-2026-10-07"`
63466398 
6399 - `"message-threads-2026-08-12"`
6400 
6401 - `"analytics-usage-cost-2026-08-24"`
6402 
63476403#### Body parameters
63486404 
63496405- `name: string`
from line 6663
66076663 
66086664 - `"webhooks-2026-10-07"`
66096665 
6666 - `"message-threads-2026-08-12"`
6667 
6668 - `"analytics-usage-cost-2026-08-24"`
6669 
66106670#### Returns
66116671 
66126672- `data: array of BetaServiceAccount`
from line 6892
68326892 
68336893 - `"webhooks-2026-10-07"`
68346894 
6895 - `"message-threads-2026-08-12"`
6896 
6897 - `"analytics-usage-cost-2026-08-24"`
6898 
68356899#### Returns
68366900 
68376901- `BetaServiceAccount object`
from line 7122
70587122 
70597123 - `"webhooks-2026-10-07"`
70607124 
7125 - `"message-threads-2026-08-12"`
7126 
7127 - `"analytics-usage-cost-2026-08-24"`
7128 
70617129#### Body parameters
70627130 
70637131- `description: optional string or null`
from line 7370
73027370 
73037371 - `"webhooks-2026-10-07"`
73047372 
7373 - `"message-threads-2026-08-12"`
7374 
7375 - `"analytics-usage-cost-2026-08-24"`
7376 
73057377#### Returns
73067378 
73077379- `BetaServiceAccount object`
from line 7605
75337605 
75347606 - `"webhooks-2026-10-07"`
75357607 
7608 - `"message-threads-2026-08-12"`
7609 
7610 - `"analytics-usage-cost-2026-08-24"`
7611 
75367612#### Body parameters
75377613 
75387614- `workspace_id: string`
from line 7849
77737849 
77747850 - `"webhooks-2026-10-07"`
77757851 
7852 - `"message-threads-2026-08-12"`
7853 
7854 - `"analytics-usage-cost-2026-08-24"`
7855 
77767856#### Returns
77777857 
77787858- `data: array of BetaServiceAccountWorkspaceMember`
from line 8065
79858065 
79868066 - `"webhooks-2026-10-07"`
79878067 
8068 - `"message-threads-2026-08-12"`
8069 
8070 - `"analytics-usage-cost-2026-08-24"`
8071 
79888072#### Returns
79898073 
79908074- `type: "service_account_workspace_member_deleted"`
from line 8817
87338817 
87348818 - `"webhooks-2026-10-07"`
87358819 
8820 - `"message-threads-2026-08-12"`
8821 
8822 - `"analytics-usage-cost-2026-08-24"`
8823 
87368824#### Body parameters
87378825 
87388826- `name: string`
from line 10480
1039210480 
1039310481**GET** `/v1/organizations/workspaces/{workspace_id}/service_accounts`
1039410482 
10395**Requires an OAuth access token with the `org:admin` scope**, from `ant auth login --scope org:admin` or a workload identity federation rule; Admin API keys are not accepted. See [Manage WIF with the Admin API](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=http).
10396 
10397List the service accounts that are members of a workspace.
10398 
10399Each entry includes the service account's `workspace_role`. Use `limit`
10400and the `next_page` cursor to paginate. Archived workspaces return 400;
10401use `GET /service_accounts/{id}/workspaces` to audit memberships of an
10402archived workspace. The implicit default-workspace membership is not
10403included in this list. Memberships of archived service accounts are
10404omitted from the results.
10405 
10406#### Path parameters
10407 
10408- `workspace_id: string`
10409 
10410 ID of the workspace.
10411 
10412#### Query parameters
10413 
10414- `limit: optional number`
10415 
10416 Number of results per page.
10417 
10418 default: 20, minimum: 1, maximum: 100
10419 
10420- `page: optional string`
10421 
10422 Opaque cursor from a previous response's `next_page`.
10423 
10424#### Headers
10425 
10426- `"anthropic-version": optional string`
10427 
10428 The version of the Claude API you want to use.
10429 
10430 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
10431 
10432- `"anthropic-beta": optional array of AnthropicBeta`
10433 
10434 Optional header to specify the beta version(s) you want to use.
10435 
10436 - `string`
10437 
10438 - `"message-batches-2024-09-24"`
10439 
10440 - `"prompt-caching-2024-07-31"`
10441 
10442 - `"computer-use-2024-10-22"`
10443 
10444 - `"computer-use-2025-01-24"`
10445 
10446 - `"pdfs-2024-09-25"`
10447 
10448 - `"token-counting-2024-11-01"`
10449 
10450 - `"token-efficient-tools-2025-02-19"`
10451 
10452 - `"output-128k-2025-02-19"`
10453 
10454 - `"files-api-2025-04-14"`
10455 
10456 - `"mcp-client-2025-04-04"`
10457 
10458 - `"mcp-client-2025-11-20"`
10459 
10460 - `"dev-full-thinking-2025-05-14"`
10461 
10462 - `"interleaved-thinking-2025-05-14"`
10463 
10464 - `"code-execution-2025-05-22"`
10465 
10466 - `"extended-cache-ttl-2025-04-11"`
10467 
10468 - `"context-
10483**Requires an OAuth access token with the `org:admin` scope**, from `ant auth login --scope org:admin` or a workload identity federation rule; Admin API keys are not accepted. See [Manage WIF with the Admin API](https://platfor

api/beta/organization/analytics Changed · +1948 / -30 lines

### Beta Analytics Actor ### Beta Analytics Actor Type ### Beta Analytics API Actor ### Beta Analytics Federated Actor ### Beta Analytics Federated Actor AWS Provider ### Beta Analytics Federated Actor Azure Provider ### Beta Analytics Federated Actor GCP Provider ### Beta Analytics Federated Actor OIDC Provider ### Beta Analytics Federated Actor Provider ### Beta Analytics Grouped Cost Type ### Beta Analytics Report User Actor ### Beta Analytics Service Account Actor ### Beta Analytics Service Tier ### Beta Analytics Speed ### Beta Analytics Time Bucket Width ### Beta Analytics Usage Cost Inference Geo ### Beta Analytics Usage Cost Product Filter ### Beta Analytics Usage Cost Sort Order ## Analytics › Usage ### Get Token Usage By Dimension ## Analytics › Cost ### Get Cost By Dimension

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 6
66# Analytics
77 
88## Domain types
9 
10### Beta Analytics Actor
11 
12- `BetaAnalyticsActor = BetaAnalyticsReportUserActor or BetaAnalyticsServiceAccountActor or BetaAnalyticsFederatedActor or BetaAnalyticsAPIActor`
13 
14 - `BetaAnalyticsReportUserActor object`
15 
16 - `type: "user_actor"`
17 
18 Actor type. Always `"user_actor"`.
19 
20 - `deleted: boolean`
21 
22 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
23 
24 - `email_address: string or null`
25 
26 The user's current email address, including for users who are no longer members of the organization. Null when the account has been deleted and for system-minted service accounts.
27 
28 - `name: string or null`
29 
30 The user's current full name. Null when the user has not set one. `"Deleted User"` when the account has been deleted, or when the user is no longer a member and the organization hides removed users' names.
31 
32 - `user_id: string`
33 
34 Tagged user ID.
35 
36 - `BetaAnalyticsServiceAccountActor object`
37 
38 - `type: "service_account_actor"`
39 
40 - `service_account_id: string`
41 
42 Tagged service account ID.
43 
44 - `BetaAnalyticsFederatedActor object`
45 
46 - `type: "federated_actor"`
47 
48 - `provider: BetaAnalyticsFederatedActorProvider`
49 
50 The trusted provider that asserted the caller's identity.
51 
52 - `BetaAnalyticsFederatedActorAWSProvider object`
53 
54 - `type: "aws"`
55 
56 - `account_id: string`
57 
58 The AWS account the organization is bound to.
59 
60 - `signed_principal: string`
61 
62 The AWS-signed ARN of the IAM principal that made the requests.
63 
64 - `BetaAnalyticsFederatedActorAzureProvider object`
65 
66 - `type: "azure"`
67 
68 - `subscription_id: string`
69 
70 The Azure subscription the organization is bound to.
71 
72 - `BetaAnalyticsFederatedActorGCPProvider object`
73 
74 - `type: "gcp"`
75 
76 - `project_number: string`
77 
78 The Google Cloud project the organization is bound to.
79 
80 - `BetaAnalyticsFederatedActorOIDCProvider object`
81 
82 - `type: "oidc"`
83 
84 - `issuer: string or null`
85 
86 The federation issuer's URL.
87 
88 - `subject: string or null`
89 
90 The provider's identifier for the caller: on `aws`, the IAM principal ARN (one role is one actor across its sessions); on `gcp`, the caller's IAM principal identifier as Google Cloud reports it, such as `serviceAccount:<email>`, `user:<email>`, or a `principal://...` URI.
91 
92 - `BetaAnalyticsAPIActor object`
93 
94 - `type: "api_actor"`
95 
96 - `api_key_id: string`
97 
98 Tagged API key ID.
99 
100### Beta Analytics Actor Type
101 
102- `BetaAnalyticsActorType = "api_actor" or "federated_actor" or "service_account_actor" or "user_actor"`
103 
104 Kind of identity a row's usage is attributed to.
105 
106 - `"api_actor"`
107 
108 - `"federated_actor"`
109 
110 - `"service_account_actor"`
111 
112 - `"user_actor"`
113 
114### Beta Analytics API Actor
115 
116- `BetaAnalyticsAPIActor object`
117 
118 - `type: "api_actor"`
119 
120 - `api_key_id: string`
121 
122 Tagged API key ID.
9123 
10124### Beta Analytics Artifact Activity
11125 
from line 1160
10461160 
10471161 Number of messages sent in Claude Design sessions
10481162 
1163### Beta Analytics Federated Actor
1164 
1165- `BetaAnalyticsFederatedActor object`
1166 
1167 - `type: "federated_actor"`
1168 
1169 - `provider: BetaAnalyticsFederatedActorProvider`
1170 
1171 The trusted provider that asserted the caller's identity.
1172 
1173 - `BetaAnalyticsFederatedActorAWSProvider object`
1174 
1175 - `type: "aws"`
1176 
1177 - `account_id: string`
1178 
1179 The AWS account the organization is bound to.
1180 
1181 - `signed_principal: string`
1182 
1183 The AWS-signed ARN of the IAM principal that made the requests.
1184 
1185 - `BetaAnalyticsFederatedActorAzureProvider object`
1186 
1187 - `type: "azure"`
1188 
1189 - `subscription_id: string`
1190 
1191 The Azure subscription the organization is bound to.
1192 
1193 - `BetaAnalyticsFederatedActorGCPProvider object`
1194 
1195 - `type: "gcp"`
1196 
1197 - `project_number: string`
1198 
1199 The Google Cloud project the organization is bound to.
1200 
1201 - `BetaAnalyticsFederatedActorOIDCProvider object`
1202 
1203 - `type: "oidc"`
1204 
1205 - `issuer: string or null`
1206 
1207 The federation issuer's URL.
1208 
1209 - `subject: string or null`
1210 
1211 The provider's identifier for the caller: on `aws`, the IAM principal ARN (one role is one actor across its sessions); on `gcp`, the caller's IAM principal identifier as Google Cloud reports it, such as `serviceAccount:<email>`, `user:<email>`, or a `principal://...` URI.
1212 
1213### Beta Analytics Federated Actor AWS Provider
1214 
1215- `BetaAnalyticsFederatedActorAWSProvider object`
1216 
1217 - `type: "aws"`
1218 
1219 - `account_id: string`
1220 
1221 The AWS account the organization is bound to.
1222 
1223 - `signed_principal: string`
1224 
1225 The AWS-signed ARN of the IAM principal that made the requests.
1226 
1227### Beta Analytics Federated Actor Azure Provider
1228 
1229- `BetaAnalyticsFederatedActorAzureProvider object`
1230 
1231 - `type: "azure"`
1232 
1233 - `subscription_id: string`
1234 
1235 The Azure subscription the organization is bound to.
1236 
1237### Beta Analytics Federated Actor GCP Provider
1238 
1239- `BetaAnalyticsFederatedActorGCPProvider object`
1240 
1241 - `type: "gcp"`
1242 
1243 - `project_number: string`
1244 
1245 The Google Cloud project the organization is bound to.
1246 
1247### Beta Analytics Federated Actor OIDC Provider
1248 
1249- `BetaAnalyticsFederatedActorOIDCProvider object`
1250 
1251 - `type: "oidc"`
1252 
1253 - `issuer: string or null`
1254 
1255 The federation issuer's URL.
1256 
1257### Beta Analytics Federated Actor Provider
1258 
1259- `BetaAnalyticsFederatedActorProvider = BetaAnalyticsFederatedActorAWSProvider or BetaAnalyticsFederatedActorAzureProvider or BetaAnalyticsFederatedActorGCPProvider or BetaAnalyticsFederatedActorOIDCProvider`
1260 
1261 - `BetaAnalyticsFederatedActorAWSProvider object`
1262 
1263 - `type: "aws"`
1264 
1265 - `account_id: string`
1266 
1267 The AWS account the organization is bound to.
1268 
1269 - `signed_principal: string`
1270 
1271 The AWS-signed ARN of the IAM principal that made the requests.
1272 
1273 - `BetaAnalyticsFederatedActorAzureProvider object`
1274 
1275 - `type: "azure"`
1276 
1277 - `subscription_id: string`
1278 
1279 The Azure subscription the organization is bound to.
1280 
1281 - `BetaAnalyticsFederatedActorGCPProvider object`
1282 
1283 - `type: "gcp"`
1284 
1285 - `project_number: string`
1286 
1287 The Google Cloud project the organization is bound to.
1288 
1289 - `BetaAnalyticsFederatedActorOIDCProvider object`
1290 
1291 - `type: "oidc"`
1292 
1293 - `issuer: string or null`
1294 
1295 The federation issuer's URL.
1296 
1297### Beta Analytics Grouped Cost Type
1298 
1299- `BetaAnalyticsGroupedCostType = "code_execution" or "session_usage" or "tokens" or "web_search"`
1300 
1301 - `"code_execution"`
1302 
1303 - `"session_usage"`
1304 
1305 - `"tokens"`
1306 
1307 - `"web_search"`
1308 
10491309### Beta Analytics Inference Geo Filter
10501310 
10511311- `BetaAnalyticsInferenceGeoFilter = "global" or "not_available" or "us"`
from line 1586
13261586 
13271587 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
13281588 
1589### Beta Analytics Report User Actor
1590 
1591- `BetaAnalyticsReportUserActor object`
1592 
1593 - `type: "user_actor"`
1594 
1595 Actor type. Always `"user_actor"`.
1596 
1597 - `deleted: boolean`
1598 
1599 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
1600 
1601 - `email_address: string or null`
1602 
1603 The user's current email address, including for users who are no longer members of the organization. Null when the account has been deleted and for system-minted service accounts.
1604 
1605 - `name: string or null`
1606 
1607 The user's current full name. Null when the user has not set one. `"Deleted User"` when the account has been deleted, or when the user is no longer a member and the organization hides removed users' names.
1608 
1609 - `user_id: string`
1610 
1611 Tagged user ID.
1612 
13291613### Beta Analytics Science Metrics
13301614 
13311615- `BetaAnalyticsScienceMetrics object`
from line 1643
13591643 - `web_search_requests: number`
13601644 
13611645 The number of web search requests made.
1646 
1647### Beta Analytics Service Account Actor
1648 
1649- `BetaAnalyticsServiceAccountActor object`
1650 
1651 - `type: "service_account_actor"`
1652 
1653 - `service_account_id: string`
1654 
1655 Tagged service account ID.
1656 
1657### Beta Analytics Service Tier
1658 
1659- `BetaAnalyticsServiceTier = "batch" or "flex" or "flex_discount" or 3 more`
1660 
1661 - `"batch"`
1662 
1663 - `"flex"`
1664 
1665 - `"flex_discount"`
1666 
1667 - `"priority"`
1668 
1669 - `"priority_on_demand"`
1670 
1671 - `"standard"`
13621672 
13631673### Beta Analytics Single Day Activity Summary
13641674 
from line 2030
17202030 
17212031 Number of distinct Office Agent sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
17222032 
2033### Beta Analytics Speed
2034 
2035- `BetaAnalyticsSpeed = "fast" or "standard"`
2036 
2037 - `"fast"`
2038 
2039 - `"standard"`
2040 
2041### Beta Analytics Time Bucket Width
2042 
2043- `BetaAnalyticsTimeBucketWidth = "1d" or "1h" or "1m"`
2044 
2045 - `"1d"`
2046 
2047 - `"1h"`
2048 
2049 - `"1m"`
2050 
17232051### Beta Analytics Token Type
17242052 
17252053- `BetaAnalyticsTokenType = "cache_creation.ephemeral_1h_input_tokens" or "cache_creation.ephemeral_5m_input_tokens" or "cache_read_input_tokens" or 2 more`
from line 2207
18792207 - `uncached_input_tokens: number`
18802208 
18812209 The number of uncached input tokens processed.
2210 
2211### Beta Analytics Usage Cost Inference Geo
2212 
2213- `BetaAnalyticsUsageCostInferenceGeo = "global" or "us"`
2214 
2215 - `"global"`
2216 
2217 - `"us"`
2218 
2219### Beta Analytics Usage Cost Product Filter
2220 
2221- `BetaAnalyticsUsageCostProductFilter = "chat" or "chat_cowork_unified" or "claude_code" or 9 more`
2222 
2223 Publicly documented product surfaces. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified.
2224 
2225 - `"chat"`
2226 
2227 - `"chat_cowork_unified"`
2228 
2229 - `"claude_code"`
2230 
2231 - `"claude_console"`
2232 
2233 - `"claude_design"`
2234 
2235 - `"claude_in_chrome"`
2236 
2237 - `"claude_tag"`
2238 
2239 - `"cowork"`
2240 
2241 - `"managed_agents_api"`
2242 
2243 - `"message_batches_api"`
2244 
2245 - `"messages_api"`
2246 
2247 - `"office_agent"`
2248 
2249### Beta Analytics Usage Cost Sort Order
2250 
2251- `BetaAnalyticsUsageCostSortOrder = "asc" or "desc"`
2252 
2253 - `"asc"`
2254 
2255 - `"desc"`
18822256 
18832257### Beta Analytics Usage Report Time Bucket
18842258 
from line 5031
46575031}
46585032```
46595033 
5034## Analytics › Usage
5035 
5036### Get Token Usage By Dimension
5037 
5038**GET** `/v1/organizations/analytics/usage`
5039 
5040Get token usage across a date range, broken out by dimension.
5041 
5042Returns one row per combination of the requested `group_by[]`
5043dimensions (and time bucket, when `time_bucket_width` is set) that has
5044usage in the range, ranked by the `order_by` metric or ordered by time
5045bucket; every combination is returned across pages. With no `group_by[]`
5046and no `time_bucket_width`, a single row aggregates the whole range.
5047Includes all usage, whether or not it is attributable to a seat user.
5048Requires an API key with the `read:analytics` scope, or an Admin API key.
5049 
5050#### Query parameters
5051 
5052- `starting_at: string`
5053 
5054 Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z.
5055 
5056 format: date-time
5057 
5058- `actor_ids: optional array of string`
5059 
5060 Filter to usage attributed to specific identities, by tagged ID: a `user_...`, `svac_...` (service account), or `apikey_...` ID. An `apikey_` entry matches only usage attributed to the key itself, not usage on that key attributed to a user or service account (use `api_key_ids[]` for every request a key authenticated). Federated identities have no tagged ID; select them with `actor_types[]`. Use `group_by[]=actor` to break out per-identity values.
5061 
5062 maxItems: 100
5063 
5064- `actor_types: optional array of BetaAnalyticsActorType`
5065 
5066 Filter to usage attributed to specific kinds of identity. Use `group_by[]=actor_type` to break out per-kind values.
5067 
5068 maxItems: 100
5069 
5070 - `"api_actor"`
5071 
5072 - `"federated_actor"`
5073 
5074 - `"service_account_actor"`
5075 
5076 - `"user_actor"`
5077 
5078- `agent_ids: optional array of string`
5079 
5080 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.
5081 
5082 maxItems: 100
5083 
5084- `api_key_ids: optional array of string`
5085 
5086 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.
5087 
5088 maxItems: 100
5089 
5090- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
5091 
5092 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
5093 
5094 maxItems: 100
5095 
5096 - `"dm"`
5097 
5098 - `"engaged"`
5099 
5100 - `"monitoring"`
5101 
5102 - `"proactive"`
5103 
5104 - `"scheduled"`
5105 
5106- `claude_tag_user_ids: optional array of string`
5107 
5108 Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values.
5109 
5110 maxItems: 100
5111 
5112- `context_windows: optional array of BetaAnalyticsContextWindow`
5113 
5114 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
5115 
5116 maxItems: 100
5117 
5118 - `"0-200k"`
5119 
5120 - `"200k-1M"`
5121 
5122- `deployment_ids: optional array of string`
5123 
5124 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.
5125 
5126 maxItems: 100
5127 
5128- `ending_at: optional string`
5129 
5130 End of range, exclusive. Required when `time_bucket_width` is set. Without `time_bucket_width`, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days.
5131 
5132 format: date-time
5133 
5134- `environment_ids: optional array of string`
5135 
5136 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.
5137 
5138 maxItems: 100
5139 
5140- `exclude_deleted_users: optional boolean`
5141 
5142 If true, omit rows whose `actor` is a `user_actor` with `deleted: true`. Requires `group_by[]=actor`. Rows for other actor types, and rows whose `actor` is null, are always kept. A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual.
5143 
5144 default: false
5145 
5146- `group_by: optional array of BetaAnalyticsUsageGroupBy`
5147 
5148 Dimensions to break usage out by (at most 5): one row per combination of their values with usage in the range (and per time bucket, when `time_bucket_width` is set), every combination returned across pages rather than a capped top set. When omitted, a single row aggregates the whole range.
5149 
5150 maxItems: 100
5151 
5152 - `"actor"`
5153 
5154 - `"actor_type"`
5155 
5156 - `"agent_id"`
5157 
5158 - `"api_key_id"`
5159 
5160 - `"claude_tag_category"`
5161 
5162 - `"claude_tag_user_id"`
5163 
5164 - `"context_window"`
5165 
5166 - `"deployment_id"`
5167 
5168 - `"environment_id"`
5169 
5170 - `"inference_geo"`
5171 
5172 - `"model"`
5173 
5174 - `"product"`
5175 
5176 - `"rbac_group_id"`
5177 
5178 - `"service_tier"`
5179 
5180 - `"session_id"`
5181 
5182 - `"slack_channel_id"`
5183 
5184 - `"speed"`
5185 
5186 - `"user_profile_id"`
5187 
5188 - `"workspace_id"`
5189 
5190- `inference_geos: optional array of BetaAnalyticsInferenceGeoFilter`
5191 
5192 Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values.
5193 
5194 maxItems: 100
5195 
5196 - `"global"`
5197 
5198 - `"not_available"`
5199 
5200 - `"us"`
5201 
5202- `limit: optional number`
5203 
5204 Number of rows per page (1-1000, default 20). `cost_type`/`token_type` fan-out rows (cost endpoint only) do not count toward this limit, so `data` can exceed it.
5205 
5206 default: 20, minimum: 1, maximum: 1000
5207 
5208- `models: optional array of string`
5209 
5210 Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values.
5211 
5212 maxItems: 100
5213 
5214- `order: optional BetaAnalyticsUsageCostSortOrder`
5215 
5216 Sort direction of the `order_by` metric, or of the time buckets when `order_by` is `time` and `time_bucket_width` is set. Defaults to `desc`.
5217 
5218 - `"asc"`
5219 
5220 - `"desc"`
5221 
5222- `order_by: optional BetaAnalyticsUsageOrderBy`
5223 
5224 Row order. A metric ranks rows by that metric in the `order` direction. `time` orders rows by time bucket in the `order` direction (newest first by default) and, within a bucket, by `total_tokens`, highest first. `time` takes effect only with `time_bucket_width`; without it, `time` is the same as `total_tokens`. Defaults to `total_tokens`.
5225 
5226 - `"output_tokens"`
5227 
5228 - `"requests"`
5229 
5230 - `"time"`
5231 
5232 - `"total_tokens"`
5233 
5234 - `"uncached_input_tokens"`
5235 
5236- `page: optional string`
5237 
5238 Opaque cursor from a previous response's `next_page` field.
5239 
5240- `products: optional array of BetaAnalyticsUsageCostProductFilter`
5241 
5242 Product surfaces to include. Defaults to all products.
5243 
5244 maxItems: 100
5245 
5246 - `"chat"`
5247 
5248 - `"chat_cowork_unified"`
5249 
5250 - `"claude_code"`
5251 
5252 - `"claude_console"`
5253 
5254 - `"claude_design"`
5255 
5256 - `"claude_in_chrome"`
5257 
5258 - `"claude_tag"`
5259 
5260 - `"cowork"`
5261 
5262 - `"managed_agents_api"`
5263 
5264 - `"message_batches_api"`
5265 
5266 - `"messages_api"`
5267 
5268 - `"office_agent"`
5269 
5270- `rbac_group_ids: optional array of string`
5271 
5272 Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.
5273 
5274 maxItems: 100
5275 
5276- `service_tiers: optional array of BetaAnalyticsServiceTier`
5277 
5278 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
5279 
5280 maxItems: 100
5281 
5282 - `"batch"`
5283 
5284 - `"flex"`
5285 
5286 - `"flex_discount"`
5287 
5288 - `"priority"`
5289 
5290 - `"priority_on_demand"`
5291 
5292 - `"standard"`
5293 
5294- `session_ids: optional array of string`
5295 
5296 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.
5297 
5298 maxItems: 100
5299 
5300- `slack_channel_ids: optional array of string`
5301 
5302 Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values.
5303 
5304 maxItems: 100
5305 
5306- `speeds: optional array of BetaAnalyticsSpeed`
5307 
5308 Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values.
5309 
5310 maxItems: 100
5311 
5312 - `"fast"`
5313 
5314 - `"standard"`
5315 
5316- `time_bucket_width: optional BetaAnalyticsTimeBucketWidth`
5317 
5318 Time-bucket granularity. When set, rows are returned per time bucket (one per bucket and dimension combination with usage) and each row's `starting_at` and `ending_at` are that bucket's bounds; the time bucket counts toward `limit`. `ending_at` is required when `time_bucket_width` is set, and with `time_bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the requested range with `starting_at` and `ending_at` each rounded down to the hour.
5319 
5320 - `"1d"`
5321 
5322 - `"1h"`
5323 
5324 - `"1m"`
5325 
5326- `user_profile_ids: optional array of string`
5327 
5328 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.
5329 
5330 maxItems: 100
5331 
5332- `workspace_ids: optional array of string`
5333 
5334 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
5335 
5336 maxItems: 100
5337 
5338#### Headers
5339 
5340- `"anthropic-version": optional string`
5341 
5342 The version of the Claude API you want to use.
5343 
5344 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
5345 
5346- `"anthropic-beta": optional array of AnthropicBeta`
5347 
5348 This endpoint is in beta: requests must send `analytics-usage-cost-2026-08-24` in this header.
5349 
5350 - `string`
5351 
5352 - `"message-batches-2024-09-24"`
5353 
5354 - `"prompt-caching-2024-07-31"`
5355 
5356 - `"computer-use-2024-10-22"`
5357 
5358 - `"computer-use-2025-01-24"`
5359 
5360 - `"pdfs-2024-09-25"`
5361 
5362 - `"token-counting-2024-11-01"`
5363 
5364 - `"token-efficient-tools-2025-02-19"`
5365 
5366 - `"output-128k-2025-02-19"`
5367 
5368 - `"files-api-2025-04-14"`
5369 
5370 - `"mcp-client-2025-04-04"`
5371 
5372 - `"mcp-client-2025-11-20"`
5373 
5374 - `"dev-full-thinking-2025-05-14"`
5375 
5376 - `"interleaved-thinking-2025-05-14"`
5377 
5378 - `"code-execution-2025-05-22"`
5379 
5380 - `"extended-cache-ttl-2025-04-11"`
5381 
5382 - `"context-1m-2025-08-07"`
5383 
5384 - `"context-management-2025-06-27"`
5385 
5386 - `"model-context-window-exceeded-2025-08-26"`
5387 
5388 - `"skills-2025-10-02"`
5389 
5390 - `"fast-mode-2026-02-01"`
5391 
5392 - `"output-300k-2026-03-24"`
5393 
5394 - `"user-profiles-2026-03-24"`
5395 
5396 - `"user-profiles-2026-08-18"`
5397 
5398 - `"user-profiles-2026-09-04"`
5399 
5400 - `"advisor-tool-2026-03-01"`
5401 
5402 - `"managed-agents-2026-04-01"`
5403 
5404 - `"cache-diagnosis-2026-04-07"`
5405 
5406 - `"dreaming-2026-04-21"`
5407 
5408 - `"thinking-token-count-2026-05-13"`
5409 
5410 - `"server-side-fallback-2026-06-01"`
5411 
5412 - `"server-side-fallback-2026-07-01"`
5413 
5414 - `"fallback-credit-2026-06-01"`
5415 
5416 - `"fallback-credit-2026-07-01"`
5417 
5418 - `"agent-memory-2026-07-22"`
5419 
5420 - `"mid-conversation-tool-changes-2026-07-01"`
5421 
5422 - `"compact-2026-01-12"`
5423 
5424 - `"computer-use-2025-11-24"`
5425 
5426 - `"mcp-tunnels-2026-06-22"`
5427 
5428 - `"structured-outputs-2025-11-13"`
5429 
5430 - `"task-budgets-2026-03-13"`
5431 
5432 - `"thinking-display-updates-2026-08-18"`
5433 
5434 - `"ce-user-management-2026-07-13"`
5435 
5436 - `"mid-conversation-output-config-2026-07-01"`
5437 
5438 - `"thinking-binding-controls-2026-08-01"`
5439 
5440 - `"mid-conversation-system-clear-at-2026-08-21"`
5441 
5442 - `"compact-2026-09-04"`
5443 
5444 - `"inline-tools-2026-09-15"`
5445 
5446 - `"mcp-client-2026-09-15"`
5447 
5448 - `"ce-plugins-2026-09-01"`
5449 
5450 - `"spend-limit-reads-2026-09-26"`
5451 
5452 - `"telemetry-destinations-2026-08-11"`
5453 
5454 - `"webhooks-2026-10-07"`
5455 
5456 - `"message-threads-2026-08-12"`
5457 
5458 - `"analytics-usage-cost-2026-08-24"`
5459 
5460#### Returns
5461 
5462- `data: array of BetaAnalyticsUsageItem`
5463 
5464 Rows for this page, in the order set by `order_by` and `order`: one per combination of the `group_by[]` dimensions (and per time bucket, when `time_bucket_width` is set) with usage or cost in the range, or a single row when neither is set. Rows split out by `cost_type` or `token_type` (cost endpoint only) stay adjacent and are ranked as one unit.
5465 
5466 - `ending_at: string`
5467 
5468 End of the period this row covers (exclusive), as an RFC 3339 UTC timestamp: the end of the row's time bucket when a time-bucket width is set; otherwise the requested `ending_at` (or, when omitted, the earlier of now and `starting_at` plus 31 days) rounded down to the hour, because without a time bucket the report covers whole hours.
5469 
5470 format: date-time
5471 
5472 - `group: BetaAnalyticsUsageGroup`
5473 
5474 The dimension values this row's usage is broken out by.
5475 
5476 - `actor: BetaAnalyticsActor or null`
5477 
5478 The identity the usage is attributed to: the user if one is attributed, else the service account, else the federated (cloud-platform) identity, else the API key. Populated only when `actor` is in `group_by[]`; null for usage with no attributable identity, and for users' and federated identities' usage when the reader is a member who can see only some workspaces. Distinct identities the server cannot render also read null, each as its own row.
5479 
5480 - `BetaAnalyticsReportUserActor object`
5481 
5482 - `type: "user_actor"`
5483 
5484 Actor type. Always `"user_actor"`.
5485 
5486 - `deleted: boolean`
5487 
5488 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
5489 
5490 - `email_address: string or null`
5491 
5492 The user's current email address, including for users who are no longer members of the organization. Null when the account has been deleted and for system-minted service accounts.
5493 
5494 - `name: string or null`
5495 
5496 The user's current full name. Null when the user has not set one. `"Deleted User"` when the account has been deleted, or when the user is no longer a member and the organization hides removed users' names.
5497 
5498 - `user_id: string`
5499 
5500 Tagged user ID.
5501 
5502 - `BetaAnalyticsServiceAccountActor object`
5503 
5504 - `type: "service_account_actor"`
5505 
5506 - `service_account_id: string`
5507 
5508 Tagged service account ID.
5509 
5510 - `BetaAnalyticsFederatedActor object`
5511 
5512 - `type: "federated_actor"`
5513 
5514 - `provider: BetaAnalyticsFederatedActorProvider`
5515 
5516 The trusted provider that asserted the caller's identity.
5517 
5518 - `BetaAnalyticsFederatedActorAWSProvider object`
5519 
5520 - `type: "aws"`
5521 
5522 - `account_id: string`
5523 
5524 The AWS account the organization is bound to.
5525 
5526 - `signed_principal: string`
5527 
5528 The AWS-signed ARN of the IAM principal that made the requests.
5529 
5530 - `BetaAnalyticsFederatedActorAzureProvider object`
5531 
5532 - `type: "azure"`
5533 
5534 - `subscription_id: string`
5535 
5536 The Azure subscription the organization is bound to.
5537 
5538 - `BetaAnalyticsFederatedActorGCPProvider object`
5539 
5540 - `type: "gcp"`
5541 
5542 - `project_number: string`
5543 
5544 The Google Cloud project the organization is bound to.
5545 
5546 - `BetaAnalyticsFederatedActorOIDCProvider object`
5547 
5548 - `type: "oidc"`
5549 
5550 - `issuer: string or null`
5551 
5552 The federation issuer's URL.
5553 
5554 - `subject: string or null`
5555 
5556 The provider's identifier for the caller: on `aws`, the IAM principal ARN (one role is one actor across its sessions); on `gcp`, the caller's IAM principal identifier as Google Cloud reports it, such as `serviceAccount:<email>`, `user:<email>`, or a `principal://...` URI.
5557 
5558 - `BetaAnalyticsAPIActor object`
5559 
5560 - `type: "api_actor"`
5561 
5562 - `api_key_id: string`
5563 
5564 Tagged API key ID.
5565 
5566 - `actor_type: BetaAnalyticsActorType or null`
5567 
5568 Kind of identity the usage is attributed to; matches `actor.type` when `actor` is set. Populated only when `actor_type` is in `group_by[]`.
5569 
5570 - `"api_actor"`
5571 
5572 - `"federated_actor"`
5573 
5574 - `"service_account_actor"`
5575 
5576 - `"user_actor"`
5577 
5578 - `agent_id: string or null`
5579 
5580 Claude Managed Agents agent whose session incurred the usage. Populated only when `agent_id` is in `group_by[]`; null for usage outside a managed session.
5581 
5582 - `api_key_id: string or null`
5583 
5584 API key that authenticated the requests, as a tagged API key ID, whichever identity `actor` resolves to. Populated only when `api_key_id` is in `group_by[]`; null for usage not authenticated by an API key.
5585 
5586 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
5587 
5588 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
5589 
5590 - `"dm"`
5591 
5592 - `"engaged"`
5593 
5594 - `"monitoring"`
5595 
5596 - `"proactive"`
5597 
5598 - `"scheduled"`
5599 
5600 - `claude_tag_user_id: string or null`
5601 
5602 Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter.
5603 
5604 - `context_window: BetaAnalyticsContextWindow or null`
5605 
5606 Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution.
5607 
5608 - `"0-200k"`
5609 
5610 - `"200k-1M"`
5611 
5612 - `deployment_id: string or null`
5613 
5614 Deployment that started the Claude Managed Agents session. Populated only when `deployment_id` is in `group_by[]`; null for usage outside a managed session and for sessions no deployment started.
5615 
5616 - `environment_id: string or null`
5617 
5618 Claude Managed Agents environment the session ran in. Populated only when `environment_id` is in `group_by[]`; null for usage outside a managed session.
5619 
5620 - `inference_geo: BetaAnalyticsUsageCostInferenceGeo or null`
5621 
5622 Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches).
5623 
5624 - `"global"`
5625 
5626 - `"us"`
5627 
5628 - `model: string or null`
5629 
5630 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
5631 
5632 - `product: string or null`
5633 
5634 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other".
5635 
5636 - `rbac_group_id: string or null`
5637 
5638 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`.
5639 
5640 - `service_tier: BetaAnalyticsServiceTier or null`
5641 
5642 Service tier the usage was served at. Populated only when `service_tier` is in `group_by[]`; null for usage with no service tier (for example, code execution) and for Claude Enterprise usage.
5643 
5644 - `"batch"`
5645 
5646 - `"flex"`
5647 
5648 - `"flex_discount"`
5649 
5650 - `"priority"`
5651 
5652 - `"priority_on_demand"`
5653 
5654 - `"standard"`
5655 
5656 - `session_id: string or null`
5657 
5658 Claude Managed Agents session that incurred the usage. Populated only when `session_id` is in `group_by[]`; null for usage outside a managed session.
5659 
5660 - `slack_channel_id: string or null`
5661 
5662 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
5663 
5664 - `speed: BetaAnalyticsSpeed or null`
5665 
5666 Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`.
5667 
5668 - `"fast"`
5669 
5670 - `"standard"`
5671 
5672 - `user_profile_id: string or null`
5673 
5674 User profile the usage was attributed to, as a tagged `uprof_` ID. Populated only when `user_profile_id` is in `group_by[]`; null for usage that named no profile and for Claude Enterprise usage.
5675 
5676 - `workspace_id: string or null`
5677 
5678 Workspace the usage occurred in, as a tagged workspace ID, including the organization's default workspace. Populated only when `workspace_id` is in `group_by[]`; null for Claude Enterprise usage.
5679 
5680 - `starting_at: string`
5681 
5682 Start of the period this row covers (inclusive), as an RFC 3339 UTC timestamp: the start of the row's time bucket when a time-bucket width is set, otherwise the requested `starting_at` rounded down to the hour.
5683 
5684 format: date-time
5685 
5686 - `usage: BetaAnalyticsUsageMetrics`
5687 
5688 Token usage for this row.
5689 
5690 - `cache_creation: BetaCacheCreation`
5691 
5692 The number of input tokens for cache creation.
5693 
5694 - `ephemeral_1h_input_tokens: number`
5695 
5696 The number of input tokens used to create the 1 hour cache entry.
5697 
5698 default: 0, minimum: 0
5699 
5700 - `ephemeral_5m_input_tokens: number`
5701 
5702 The number of input tokens used to create the 5 minute cache entry.
5703 
5704 default: 0, minimum: 0
5705 
5706 - `cache_read_input_tokens: number`
5707 
5708 The number of input tokens read from the cache.
5709 
5710 - `output_tokens: number`
5711 
5712 The number of output tokens generated.
5713 
5714 - `requests: number or null`
5715 
5716 Number of API requests in this row's scope. For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`).
5717 
5718 - `server_tool_use: BetaAnalyticsServerToolUse`
5719 
5720 Server-side tool usage metrics.
5721 
5722 - `web_search_requests: number`
5723 
5724 The number of web search requests made.
5725 
5726 - `total_tokens: number`
5727 
5728 Total token count across all token types. This is the value the default `order_by` (`total_tokens`) sorts on.
5729 
5730 - `uncached_input_tokens: number`
5731 
5732 The number of uncached input tokens processed.
5733 
5734- `data_refreshed_at: string or null`
5735 
5736 RFC 3339 timestamp of the export this response was served from. Null when no export yet covers any part of the requested range, in which case `data` is empty. Data beyond this watermark is incomplete; for stable results, set `ending_at` to this value or earlier. Data is typically refreshed every 4 hours. Values can be revised as late events arrive and reconciliation runs, until about 7 days after the end of the calendar month the usage falls in; for example, values for October 1 can change until about November 7.
5737 
5738 format: date-time
5739 
5740- `has_more: boolean`
5741 
5742 Whether another page is available. When true, pass `next_page` as the `page` parameter to fetch it.
5743 
5744- `next_page: string or null`
5745 
5746 Opaque cursor for the next page, or null when `has_more` is false. Pass it as the `page` parameter, keeping the other parameters unchanged. A cursor can expire after the underlying data refreshes; the request then returns HTTP 410 and pagination must restart from the first page.
5747 
5748#### Example
5749 
5750```bash
5751curl https://api.anthropic.com/v1/organizations/analytics/usage \
5752 -H 'anthropic-version: 2026-10-21' \
5753 -H 'anthropic-beta: analytics-usage-cost-2026-08-24' \
5754 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
5755```
5756 
5757##### Response (200)
5758 
5759```json
5760{
5761 "data": [
5762 {
5763 "ending_at": "2026-10-01T00:00:00Z",
5764 "group": {
5765 "actor": {
5766 "deleted": false,
5767 "email_address": "[email protected]",
5768 "name": "Jane Doe",
5769 "type": "user_actor",
5770 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
5771 },
5772 "actor_type": "user_actor",
5773 "agent_id": "agent_01VHd3EAGJ6PLkP9LM7DDu3f",
5774 "api_key_id": "apikey_01Rj2N8SVvo6BePZj99NhmiT",
5775 "claude_tag_category": "dm",
5776 "claude_tag_user_id": "U0123ABCDEF",
5777 "context_window": "0-200k",
5778 "deployment_id": "depl_01JFC6ihzZHtAuyHsaENdJhY",
5779 "environment_id": "env_017oTjuGedHtjhJauVC5xGJD",
5780 "inference_geo": "global",
5781 "model": "claude-opus-5-5",
5782 "product": "chat",
5783 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
5784 "service_tier": "standard",
5785 "session_id": "sesn_0187kPDyNCwibNNvfaPEApCJ",
5786 "slack_channel_id": "C0123ABCDEF",
5787 "speed": "fast",
5788 "user_profile_id": "uprof_01M33NeYUQK2WV9PpYcsPHLi",
5789 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
5790 },
5791 "starting_at": "2026-09-01T00:00:00Z",
5792 "usage": {
5793 "cache_creation": {
5794 "ephemeral_1h_input_tokens": 0,
5795 "ephemeral_5m_input_tokens": 0
5796 },
5797 "cache_read_input_tokens": 3200000,
5798 "output_tokens": 891000,
5799 "requests": 128,
5800 "server_tool_use": {
5801 "web_search_requests": 10
5802 },
5803 "total_tokens": 5377000,
5804 "uncached_input_tokens": 1284500
5805 }
5806 }
5807 ],
5808 "data_refreshed_at": "2019-12-27T18:11:19.117Z",
5809 "has_more": true,
5810 "next_page": "next_page"
5811}
5812```
5813 
5814## Analytics › Cost
5815 
5816### Get Cost By Dimension
5817 
5818**GET** `/v1/organizations/analytics/cost`
5819 
5820Get cost in USD across a date range, broken out by dimension.
5821 
5822Returns one row per combination of the requested `group_by[]`
5823dimensions (and time bucket, when `time_bucket_width` is set) that has
5824cost in the range, ranked by spend or ordered by time bucket; every
5825combination is returned across pages. With no `group_by[]` and no
5826`time_bucket_width`, a single row aggregates the whole range. Includes
5827all cost, whether or not it is attributable to a seat user. Requires an
5828API key with the `read:analytics` scope, or an Admin API key.
5829 
5830#### Query parameters
5831 
5832- `starting_at: string`
5833 
5834 Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z.
5835 
5836 format: date-time
5837 
5838- `actor_ids: optional array of string`
5839 
5840 Filter to usage attributed to specific identities, by tagged ID: a `user_...`, `svac_...` (service account), or `apikey_...` ID. An `apikey_` entry matches only usage attributed to the key itself, not usage on that key attributed to a user or service account (use `api_key_ids[]` for every request a key authenticated). Federated identities have no tagged ID; select them with `actor_types[]`. Use `group_by[]=actor` to break out per-identity values.
5841 
5842 maxItems: 100
5843 
5844- `actor_types: optional array of BetaAnalyticsActorType`
5845 
5846 Filter to usage attributed to specific kinds of identity. Use `group_by[]=actor_type` to break out per-kind values.
5847 
5848 maxItems: 100
5849 
5850 - `"api_actor"`
5851 
5852 - `"federated_actor"`
5853 
5854 - `"service_account_actor"`
5855 
5856 - `"user_actor"`
5857 
5858- `agent_ids: optional array of string`
5859 
5860 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.
5861 
5862 maxItems: 100
5863 
5864- `api_key_ids: optional array of string`
5865 
5866 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.
5867 
5868 maxItems: 100
5869 
5870- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
5871 
5872 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
5873 
5874 maxItems: 100
5875 
5876 - `"dm"`
5877 
5878 - `"engaged"`
5879 
5880 - `"monitoring"`
5881 
5882 - `"proactive"`
5883 
5884 - `"scheduled"`
5885 
5886- `claude_tag_user_ids: optional array of string`
5887 
5888 Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values.
5889 
5890 maxItems: 100
5891 
5892- `context_windows: optional array of BetaAnalyticsContextWindow`
5893 
5894 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
5895 
5896 maxItems: 100
5897 
5898 - `"0-200k"`
5899 
5900 - `"200k-1M"`
5901 
5902- `deployment_ids: optional array of string`
5903 
5904 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.
5905 
5906 maxItems: 100
5907 
5908- `ending_at: optional string`
5909 
5910 End of range, exclusive. Required when `time_bucket_width` is set. Without `time_bucket_width`, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days.
5911 
5912 format: date-time
5913 
5914- `environment_ids: optional array of string`
5915 
5916 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.
5917 
5918 maxItems: 100
5919 
5920- `exclude_deleted_users: optional boolean`
5921 
5922 If true, omit rows whose `actor` is a `user_actor` with `deleted: true`. Requires `group_by[]=actor`. Rows for other actor types, and rows whose `actor` is null, are always kept. A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual.
5923 
5924 default: false
5925 
5926- `group_by: optional array of BetaAnalyticsCostGroupBy`
5927 
5928 Dimensions to break cost out by (at most 5, not counting `cost_type` and `token_type`): one row per combination of their values with cost in the range (and per time bucket, when `time_bucket_width` is set), every combination returned across pages rather than a capped top set. `cost_type` and `token_type` do not count toward `limit`: `cost_type` returns one row per cost component (tokens, web search, code execution, and `session_usage`, Claude Managed Agents session time); `token_type` returns one row per token type, each with `cost_type: "tokens"`; combining both returns the per-token-type rows plus the web-search, code-execution and session-usage rows. When omitted, a single row aggregates the whole range.
5929 
5930 maxItems: 100
5931 
5932 - `"actor"`
5933 
5934 - `"actor_type"`
5935 
5936 - `"agent_id"`
5937 
5938 - `"api_key_id"`
5939 
5940 - `"claude_tag_category"`
5941 
5942 - `"claude_tag_user_id"`
5943 
5944 - `"context_window"`
5945 
5946 - `"cost_type"`
5947 
5948 - `"deployment_id"`
5949 
5950 - `"environment_id"`
5951 
5952 - `"inference_geo"`
5953 
5954 - `"model"`
5955 
5956 - `"product"`
5957 
5958 - `"rbac_group_id"`
5959 
5960 - `"service_tier"`
5961 
5962 - `"session_id"`
5963 
5964 - `"slack_channel_id"`
5965 
5966 - `"speed"`
5967 
5968 - `"token_type"`
5969 
5970 - `"user_profile_id"`
5971 
5972 - `"workspace_id"`
5973 
5974- `inference_geos: optional array of BetaAnalyticsInferenceGeoFilter`
5975 
5976 Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values.
5977 
5978 maxItems: 100
5979 
5980 - `"global"`
5981 
5982 - `"not_available"`
5983 
5984 - `"us"`
5985 
5986- `limit: optional number`
5987 
5988 Number of rows per page (1-1000, default 20). `cost_type`/`token_type` fan-out rows (cost endpoint only) do not count toward this limit, so `data` can exceed it.
5989 
5990 default: 20, minimum: 1, maximum: 1000
5991 
5992- `models: optional array of string`
5993 
5994 Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values.
5995 
5996 maxItems: 100
5997 
5998- `order: optional BetaAnalyticsUsageCostSortOrder`
5999 
6000 Sort direction of the `order_by` metric, or of the time buckets when `order_by` is `time` and `time_bucket_width` is set. Defaults to `desc`.
6001 
6002 - `"asc"`
6003 
6004 - `"desc"`
6005 
6006- `order_by: optional BetaAnalyticsCostOrderBy`
6007 
6008 Row order. A metric ranks rows by that metric in the `order` direction. `time` orders rows by time bucket in the `order` direction (newest first by default) and, within a bucket, by `amount`, highest first. `time` takes effect only with `time_bucket_width`; without it, `time` is the same as `amount`. Defaults to `amount`.
6009 
6010 - `"amount"`
6011 
6012 - `"list_amount"`
6013 
6014 - `"time"`
6015 
6016- `page: optional string`
6017 
6018 Opaque cursor from a previous response's `next_page` field.
6019 
6020- `products: optional array of BetaAnalyticsUsageCostProductFilter`
6021 
6022 Product surfaces to include. Defaults to all products.
6023 
6024 maxItems: 100
6025 
6026 - `"chat"`
6027 
6028 - `"chat_cowork_unified"`
6029 
6030 - `"claude_code"`
6031 
6032 - `"claude_console"`
6033 
6034 - `"claude_design"`
6035 
6036 - `"claude_in_chrome"`
6037 
6038 - `"claude_tag"`
6039 
6040 - `"cowork"`
6041 
6042 - `"managed_agents_api"`
6043 
6044 - `"message_batches_api"`
6045 
6046 - `"messages_api"`
6047 
6048 - `"office_agent"`
6049 
6050- `rbac_group_ids: optional array of string`
6051 
6052 Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.
6053 
6054 maxItems: 100
6055 
6056- `service_tiers: optional array of BetaAnalyticsServiceTier`
6057 
6058 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
6059 
6060 maxItems: 100
6061 
6062 - `"batch"`
6063 
6064 - `"flex"`
6065 
6066 - `"flex_discount"`
6067 
6068 - `"priority"`
6069 
6070 - `"priority_on_demand"`
6071 
6072 - `"standard"`
6073 
6074- `session_ids: optional array of string`
6075 
6076 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.
6077 
6078 maxItems: 100
6079 
6080- `slack_channel_ids: optional array of string`
6081 
6082 Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values.
6083 
6084 maxItems: 100
6085 
6086- `speeds: optional array of BetaAnalyticsSpeed`
6087 
6088 Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values.
6089 
6090 maxItems: 100
6091 
6092 - `"fast"`
6093 
6094 - `"standard"`
6095 
6096- `time_bucket_width: optional BetaAnalyticsTimeBucketWidth`
6097 
6098 Time-bucket granularity. When set, rows are returned per time bucket (one per bucket and dimension combination with usage) and each row's `starting_at` and `ending_at` are that bucket's bounds; the time bucket counts toward `limit`. `ending_at` is required when `time_bucket_width` is set, and with `time_bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the requested range with `starting_at` and `ending_at` each rounded down to the hour.
6099 
6100 - `"1d"`
6101 
6102 - `"1h"`
6103 
6104 - `"1m"`
6105 
6106- `user_profile_ids: optional array of string`
6107 
6108 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.
6109 
6110 maxItems: 100
6111 
6112- `workspace_ids: optional array of string`
6113 
6114 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
6115 
6116 maxItems: 100
6117 
6118#### Headers
6119 
6120- `"anthropic-version": optional string`
6121 
6122 The version of the Claude API you want to use.
6123 
6124 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
6125 
6126- `"anthropic-beta": optional array of AnthropicBeta`
6127 
6128 This endpoint is in beta: requests must send `analytics-usage-cost-2026-08-24` in this header.
6129 
6130 - `string`
6131 
6132 - `"message-batches-2024-09-24"`
6133 
6134 - `"prompt-caching-2024-07-31"`
6135 
6136 - `"computer-use-2024-10-22"`
6137 
6138 - `"computer-use-2025-01-24"`
6139 
6140 - `"pdfs-2024-09-25"`
6141 
6142 - `"token-counting-2024-11-01"`
6143 
6144 - `"token-efficient-tools-2025-02-19"`
6145 
6146 - `"output-128k-2025-02-19"`
6147 
6148 - `"files-api-2025-04-14"`
6149 
6150 - `"mcp-client-2025-04-04"`
6151 
6152 - `"mcp-client-2025-11-20"`
6153 
6154 - `"dev-full-thinking-2025-05-14"`
6155 
6156 - `"interleaved-thinking-2025-05-14"`
6157 
6158 - `"code-execution-2025-05-22"`
6159 
6160 - `"extended-cache-ttl-2025-04-11"`
6161 
6162 - `"context-1m-2025-08-07"`
6163 
6164 - `"context-management-2025-06-27"`
6165 
6166 - `"model-context-window-exceeded-2025-08-26"`
6167 
6168 - `"skills-2025-10-02"`
6169 
6170 - `"fast-mode-2026-02-01"`
6171 
6172 - `"output-300k-2026-03-24"`
6173 
6174 - `"user-profiles-2026-03-24"`
6175 
6176 - `"user-profiles-2026-08-18"`
6177 
6178 - `"user-profiles-2026-09-04"`
6179 
6180 - `"advisor-tool-2026-03-01"`
6181 
6182 - `"managed-agents-2026-04-01"`
6183 
6184 - `"cache-diagnosis-2026-04-07"`
6185 
6186 - `"dreaming-2026-04-21"`
6187 
6188 - `"thinking-token-count-2026-05-13"`
6189 
6190 - `"server-side-fallback-2026-06-01"`
6191 
6192 - `"server-side-fallback-2026-07-01"`
6193 
6194 - `"fallback-credit-2026-06-01"`
6195 
6196 - `"fallback-credit-2026-07-01"`
6197 
6198 - `"agent-memory-2026-07-22"`
6199 
6200 - `"mid-conversation-tool-changes-2026-07-01"`
6201 
6202 - `"compact-2026-01-12"`
6203 
6204 - `"computer-use-2025-11-24"`
6205 
6206 - `"mcp-tunnels-2026-06-22"`
6207 
6208 - `"structured-outputs-2025-11-13"`
6209 
6210 - `"task-budgets-2026-03-13"`
6211 
6212 - `"thinking-display-updates-2026-08-18"`
6213 
6214 - `"ce-user-management-2026-07-13"`
6215 
6216 - `"mid-conversation-output-config-2026-07-01"`
6217 
6218 - `"thinking-binding-controls-2026-08-01"`
6219 
6220 - `"mid-conversation-system-clear-at-2026-08-21"`
6221 
6222 - `"compact-2026-09-04"`
6223 
6224 - `"inline-tools-2026-09-15"`
6225 
6226 - `"mcp-client-2026-09-15"`
6227 
6228 - `"ce-plugins-2026-09-01"`
6229 
6230 - `"spend-limit-reads-2026-09-26"`
6231 
6232 - `"telemetry-destinations-2026-08-11"`
6233 
6234 - `"webhooks-2026-10-07"`
6235 
6236 - `"message-threads-2026-08-12"`
6237 
6238 - `"analytics-usage-cost-2026-08-24"`
6239 
6240#### Returns
6241 
6242- `data: array of BetaAnalyticsCostItem`
6243 
6244 Rows for this page, in the order set by `order_by` and `order`: one per combination of the `group_by[]` dimensions (and per time bucket, when `time_bucket_width` is set) with usage or cost in the range, or a single row when neither is set. Rows split out by `cost_type` or `token_type` (cost endpoint only) stay adjacent and are ranked as one unit.
6245 
6246 - `cost: BetaAnalyticsCostMetrics`
6247 
6248 Cost for this row.
6249 
6250 - `amount: string`
6251 
6252 Amount (post-discount, pre-credit) in fractional cents (minor units).
6253 
6254 - `currency: string`
6255 
6256 Currency code for the cost amount. Currently always `"USD"`.
6257 
6258 default: USD
6259 
6260 - `list_amount: string`
6261 
6262 List-price amount (pre-discount) in fractional cents.
6263 
6264 - `requests: number or null`
6265 
6266 Number of API requests in this row's scope. Null when `group_by` includes `cost_type` or `token_type` (the count has no per-component attribution; read it from the ungrouped response). For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`).
6267 
6268 - `ending_at: string`
6269 
6270 End of the period this row covers (exclusive), as an RFC 3339 UTC timestamp: the end of the row's time bucket when a time-bucket width is set; otherwise the requested `ending_at` (or, when omitted, the earlier of now and `starting_at` plus 31 days) rounded down to the hour, because without a time bucket the report covers whole hours.
6271 
6272 format: date-time
6273 
6274 - `group: BetaAnalyticsCostGroup`
6275 
6276 The dimension values this row's cost is broken out by.
6277 
6278 - `actor: BetaAnalyticsActor or null`
6279 
6280 The identity the usage is attributed to: the user if one is attributed, else the service account, else the federated (cloud-platform) identity, else the API key. Populated only when `actor` is in `group_by[]`; null for usage with no attributable identity, and for users' and federated identities' usage when the reader is a member who can see only some workspaces. Distinct identities the server cannot render also read null, each as its own row.
6281 
6282 - `BetaAnalyticsReportUserActor object`
6283 
6284 - `type: "user_actor"`
6285 
6286 Actor type. Always `"user_actor"`.
6287 
6288 - `deleted: boolean`
6289 
6290 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
6291 
6292 - `email_address: string or null`
6293 
6294 The user's current email address, including for users who are no longer members of the organization. Null when the account has been deleted and for system-minted service accounts.
6295 
6296 - `name: string or null`
6297 
6298 The user's current full name. Null when the user has not set one. `"Deleted User"` when the account has been deleted, or when the user is no longer a member and the organization hides removed users' names.
6299 
6300 - `user_id: string`
6301 
6302 Tagged user ID.
6303 
6304 - `BetaAnalyticsServiceAccountActor object`
6305 
6306 - `type: "service_account_actor"`
6307 
6308 - `service_account_id: string`
6309 
6310 Tagged service account ID.
6311 
6312 - `BetaAnalyticsFederatedActor object`
6313 
6314 - `type: "federated_actor"`
6315 
6316 - `provider: BetaAnalyticsFederatedActorProvider`
6317 
6318 The trusted provider that asserted the caller's identity.
6319 
6320 - `BetaAnalyticsFederatedActorAWSProvider object`
6321 
6322 - `type: "aws"`
6323 
6324 - `account_id: string`
6325 
6326 The AWS account the organization is bound to.
6327 
6328 - `signed_principal: string`
6329 
6330 The AWS-signed ARN of the IAM principal that made the requests.
6331 
6332 - `BetaAnalyticsFederatedActorAzureProvider object`
6333 
6334 - `type: "azure"`
6335 
6336 - `subscription_id: string`
6337 
6338 The Azure subscription the organization is bound to.
6339 
6340 - `BetaAnalyticsFederatedActorGCPProvider object`
6341 
6342 - `type: "gcp"`
6343 
6344 - `project_number: string`
6345 
6346 The Google Cloud project the organization is bound to.
6347 
6348 - `BetaAnalyticsFederatedActorOIDCProvider object`
6349 
6350 - `type: "oidc"`
6351 
6352 - `issuer: string or null`
6353 
6354 The federation issuer's URL.
6355 
6356 - `subject: string or null`
6357 
6358 The provider's identifier for the caller: on `aws`, the IAM principal ARN (one role is one actor across its sessions); on `gcp`, the caller's IAM principal identifier as Google Cloud reports it, such as `serviceAccount:<email>`, `user:<email>`, or a `principal://...` URI.
6359 
6360 - `BetaAnalyticsAPIActor object`
6361 
6362 - `type: "api_actor"`
6363 
6364 - `api_key_id: string`
6365 
6366 Tagged API key ID.
6367 
6368 - `actor_type: BetaAnalyticsActorType or null`
6369 
6370 Kind of identity the usage is attributed to; matches `actor.type` when `actor` is set. Populated only when `actor_type` is in `group_by[]`.
6371 
6372 - `"api_actor"`
6373 
6374 - `"federated_actor"`
6375 
6376 - `"service_account_actor"`
6377 
6378 - `"user_actor"`
6379 
6380 - `agent_id: string or null`
6381 
6382 Claude Managed Agents agent whose session incurred the usage. Populated only when `agent_id` is in `group_by[]`; null for usage outside a managed session.
6383 
6384 - `api_key_id: string or null`
6385 
6386 API key that authenticated the requests, as a tagged API key ID, whichever identity `actor` resolves to. Populated only when `api_key_id` is in `group_by[]`; null for usage not authenticated by an API key.
6387 
6388 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
6389 
6390 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
6391 
6392 - `"dm"`
6393 
6394 - `"engaged"`
6395 
6396 - `"monitoring"`
6397 
6398 - `"proactive"`
6399 
6400 - `"scheduled"`
6401 
6402 - `claude_tag_user_id: string or null`
6403 
6404 Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter.
6405 
6406 - `context_window: BetaAnalyticsContextWindow or null`
6407 
6408 Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution.
6409 
6410 - `"0-200k"`
6411 
6412 - `"200k-1M"`
6413 
6414 - `cost_type: BetaAnalyticsGroupedCostType or null`
6415 
6416 Cost component breakdown; null when returning the combined total.
6417 
6418 - `"code_execution"`
6419 
6420 - `"session_usage"`
6421 
6422 - `"tokens"`
6423 
6424 - `"web_search"`
6425 
6426 - `deployment_id: string or null`
6427 
6428 Deployment that started the Claude Managed Agents session. Populated only when `deployment_id` is in `group_by[]`; null for usage outside a managed session and for sessions no deployment started.
6429 
6430 - `environment_id: string or null`
6431 
6432 Claude Managed Agents environment the session ran in. Populated only when `environment_id` is in `group_by[]`; null for usage outside a managed session.
6433 
6434 - `inference_geo: BetaAnalyticsUsageCostInferenceGeo or null`
6435 
6436 Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches).
6437 
6438 - `"global"`
6439 
6440 - `"us"`
6441 
6442 - `model: string or null`
6443 
6444 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
6445 
6446 - `product: string or null`
6447 
6448 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other".
6449 
6450 - `rbac_group_id: string or null`
6451 
6452 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`.
6453 
6454 - `service_tier: BetaAnalyticsServiceTier or null`
6455 
6456 Service tier the usage was served at. Populated only when `service_tier` is in `group_by[]`; null for usage with no service tier (for example, code execution) and for Claude Enterprise usage.
6457 
6458 - `"batch"`
6459 
6460 - `"flex"`
6461 
6462 - `"flex_discount"`
6463 
6464 - `"priority"`
6465 
6466 - `"priority_on_demand"`
6467 
6468 - `"standard"`
6469 
6470 - `session_id: string or null`
6471 
6472 Claude Managed Agents session that incurred the usage. Populated only when `session_id` is in `group_by[]`; null for usage outside a managed session.
6473 
6474 - `slack_channel_id: string or null`
6475 
6476 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
6477 
6478 - `speed: BetaAnalyticsSpeed or null`
6479 
6480 Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`.
6481 
6482 - `"fast"`
6483 
6484 - `"standard"`
6485 
6486 - `token_type: BetaAnalyticsTokenType or null`
6487 
6488 Token type when `cost_type` is `tokens`; null otherwise.
6489 
6490 - `"cache_creation.ephemeral_1h_input_tokens"`
6491 
6492 - `"cache_creation.ephemeral_5m_input_tokens"`
6493 
6494 - `"cache_read_input_tokens"`
6495 
6496 - `"output_tokens"`
6497 
6498 - `"uncached_input_tokens"`
6499 
6500 - `user_profile_id: string or null`
6501 
6502 User profile the usage was attributed to, as a tagged `uprof_` ID. Populated only when `user_profile_id` is in `group_by[]`; null for usage that named no profile and for Claude Enterprise usage.
6503 
6504 - `workspace_id: string or null`
6505 
6506 Workspace the usage occurred in, as a tagged workspace ID, including the organization's default workspace. Populated only when `workspace_id` is in `group_by[]`; null for Claude Enterprise usage.
6507 
6508 - `starting_at: string`
6509 
6510 Start of the period this row covers (inclusive), as an RFC 3339 UTC timestamp: the start of the row's time bucket when a time-bucket width is set, otherwise the requested `starting_at` rounded down to the hour.
6511 
6512 format: date-time
6513 
6514- `data_refreshed_at: string or null`
6515 
6516 RFC 3339 timestamp of the export this response was served from. Null when no export yet covers any part of the requested range, in which case `data` is empty. Data beyond this watermark is incomplete; for stable results, set `ending_at` to this value or earlier. Data is typically refreshed every 4 hours. Values can be revised as late events arrive and reconciliation runs, until about 7 days after the end of the calendar month the usage falls in; for example, values for October 1 can change until about November 7.
6517 
6518 format: date-time
6519 
6520- `has_more: boolean`
6521 
6522 Whether another page is available. When true, pass `next_page` as the `page` parameter to fetch it.
6523 
6524- `next_page: string or null`
6525 
6526 Opaque cursor for the next page, or null when `has_more` is false. Pass it as the `page` parameter, keeping the other parameters unchanged. A cursor can expire after the underlying data refreshes; the request then returns HTTP 410 and pagination must restart from the first page.
6527 
6528#### Example
6529 
6530```bash
6531curl https://api.anthropic.com/v1/organizations/analytics/cost \
6532 -H 'anthropic-version: 2026-10-21' \
6533 -H 'anthropic-beta: analytics-usage-cost-2026-08-24' \
6534 -H "Authorization: Bearer $ANTHROPIC_API_KEY"
6535```
6536 
6537##### Response (200)
6538 
6539```json
6540{
6541 "data": [
6542 {
6543 "cost": {
6544 "amount": "41280.000000",
6545 "currency": "USD",
6546 "list_amount": "51600.000000",
6547 "requests": 128
6548 },
6549 "ending_at": "2026-10-01T00:00:00Z",
6550 "group": {
6551 "actor": {
6552 "deleted": false,
6553 "email_address": "[email protected]",
6554 "name": "Jane Doe",
6555 "type": "user_actor",
6556 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
6557 },
6558 "actor_type": "user_actor",
6559 "agent_id": "agent_01VHd3EAGJ6PLkP9LM7DDu3f",
6560 "api_key_id": "apikey_01Rj2N8SVvo6BePZj99NhmiT",
6561 "claude_tag_category": "dm",
6562 "claude_tag_user_id": "U0123ABCDEF",
6563 "context_window": "0-200k",
6564 "cost_type": "tokens",
6565 "deployment_id": "depl_01JFC6ihzZHtAuyHsaENdJhY",
6566 "environment_id": "env_017oTjuGedHtjhJauVC5xGJD",
6567 "inference_geo": "global",
6568 "model": "claude-opus-5-5",
6569 "product": "chat",
6570 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
6571 "service_tier": "standard",
6572 "session_id": "sesn_0187kPDyNCwibNNvfaPEApCJ",
6573 "slack_channel_id": "C0123ABCDEF",
6574 "speed": "fast",
6575 "token_type": "cache_creation.ephemeral_1h_input_tokens",
6576 "user_profile_id": "uprof_01M33NeYUQK2WV9PpYcsPHLi",
6577 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
6578 },
6579 "starting_at": "2026-09-01T00:00:00Z"
6580 }
6581 ],
6582 "data_refreshed_at": "2019-12-27T18:11:19.117Z",
6583 "has_more": true,
6584 "next_page": "next_page"
6585}
6586```
6587 
46606588## Analytics › Usage Report
46616589 
46626590### Get Token Usage Over Time
46636591 
46646592**GET** `/v1/organizations/analytics/usage_report`
46656593 
4666Get token usage over time across a date range.
4667 
4668Returns token usage bucketed by minute, hour, or day, optionally broken
4669down by product, model, context window, inference region, or speed.
4670Available to organizations on a Claude Enterprise plan. Requires an API
4671key with the `read:analytics` scope.
6594[Legacy] Get token usage over time across a date range.
6595 
6596Returns token usage bucketed by minute, hour, or day, optionally broken down by one or more `group_by[]` dimensions, such as product or model. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
6597 
6598This 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).
46726599 
46736600#### Query parameters
46746601 
from line 6958
50316958 
50326959**GET** `/v1/organizations/analytics/user_usage_report`
50336960 
5034Get per-user token usage across a date range.
5035 
5036Returns one row per user, ranked by the chosen token metric. Use this to
5037see which users consume the most tokens. Only usage attributable to a
5038seat user is included; for organization-wide totals including direct
5039API-key and automation traffic, use the bucketed
5040`/v1/organizations/analytics/usage_report` endpoint. Available to
5041organizations on a Claude Enterprise plan. Requires an API key with the
5042`read:analytics` scope.
6961[Legacy] Get per-user token usage across a date range.
6962 
6963Returns 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.
6964 
6965This 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).
50436966 
50446967#### Query parameters
50456968 
from line 7381
54587381 
54597382**GET** `/v1/organizations/analytics/cost_report`
54607383 
5461Get cost in USD over time across a date range.
5462 
5463Returns cost bucketed by minute, hour, or day, optionally broken down by
5464product, model, context window, inference region, speed, cost type, or
5465token type. Available to organizations on a Claude Enterprise plan.
5466Requires an API key with the `read:analytics` scope.
7384[Legacy] Get cost in USD over time across a date range.
7385 
7386Returns cost bucketed by minute, hour, or day, optionally broken down by one or more `group_by[]` dimensions, such as model or cost type. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
7387 
7388This 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).
54677389 
54687390#### Query parameters
54697391 
from line 7749
58277749 
58287750**GET** `/v1/organizations/analytics/user_cost_report`
58297751 
5830Get per-user cost in USD across a date range.
5831 
5832Returns one row per user, ranked by spend. Use this to see which users
5833account for the most cost. Only cost attributable to a seat user is
5834included; for organization-wide totals including direct API-key and
5835automation traffic, use the bucketed
5836`/v1/organizations/analytics/cost_report` endpoint. Available to
5837organizations on a Claude Enterprise plan. Requires an API key with the
5838`read:analytics` scope.
7752[Legacy] Get per-user cost in USD across a date range.
7753 
7754Returns 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.
7755 
7756This 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).
58397757 
58407758#### Query parameters
58417759 
58427760 

api/beta/organization/analytics/cost New page · 1369 lines, new page

# Cost ## Get Cost By Dimension ### Query parameters ### Headers ### Returns ### Example #### Response (200) ## Domain types ### Beta Analytics Cost Group ### Beta Analytics Cost Group By ### Beta Analytics Cost Item ### Beta Analytics Cost Metrics ### Beta Analytics Cost Order By

A whole new page. There's nothing to diff it against, so here is what it says.

---
title: Cost
url: https://platform.claude.com/docs/en/api/beta/organization/analytics/cost
---

# Cost

## Get Cost By Dimension

**GET** `/v1/organizations/analytics/cost`

Get cost in USD across a date range, broken out by dimension.

Returns one row per combination of the requested `group_by[]`
dimensions (and time bucket, when `time_bucket_width` is set) that has
cost in the range, ranked by spend or ordered by time bucket; every
combination is returned across pages. With no `group_by[]` and no
`time_bucket_width`, a single row aggregates the whole range. Includes
all cost, whether or not it is attributable to a seat user. Requires an
API key with the `read:analytics` scope, or an Admin API key.

### Query parameters

- `starting_at: string`

  Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z.

  format: date-time

- `actor_ids: optional array of string`

  Filter to usage attributed to specific identities, by tagged ID: a `user_...`, `svac_...` (service account), or `apikey_...` ID. An `apikey_` entry matches only usage attributed to the key itself, not usage on that key attributed to a user or service account (use `api_key_ids[]` for every request a key authenticated). Federated identities have no tagged ID; select them with `actor_types[]`. Use `group_by[]=actor` to break out per-identity values.

  maxItems: 100

- `actor_types: optional array of BetaAnalyticsActorType`

  Filter to usage attributed to specific kinds of identity. Use `group_by[]=actor_type` to break out per-kind values.

  maxItems: 100

  - `"api_actor"`

  - `"federated_actor"`

  - `"service_account_actor"`

  - `"user_actor"`

- `agent_ids: optional array of string`

  Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.

  maxItems: 100

- `api_key_ids: optional array of string`

  Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.

  maxItems: 100

- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`

  Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.

  maxItems: 100

  - `"dm"`

  - `"engaged"`

  - `"monitoring"`

  - `"proactive"`

  - `"scheduled"`

- `claude_tag_user_ids: optional array of string`

  Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values.

  maxItems: 100

- `context_windows: optional array of BetaAnalyticsContextWindow`

  Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.

  maxItems: 100

  - `"0-200k"`

  - `"200k-1M"`

- `deployment_ids: optional array of string`

  Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.

  maxItems: 100

- `ending_at: optional string`

  End of range, exclusive. Required when `time_bucket_width` is set. Without `time_bucket_width`, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days.

  format: date-time

- `environment_ids: optional array of string`

  Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.

  maxItems: 100

- `exclude_deleted_users: optional boolean`

  If true, omit rows whose `actor` is a `user_actor` with `deleted: true`. Requires `group_by[]=actor`. Rows for other actor types, and rows whose `actor` is null, are always kept. A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual.

  default: false

- `group_by: optional array of BetaAnalyticsCostGroupBy`

  Dimensions to break cost out by (at most 5, not counting `cost_type` and `token_type`): one row per combination of their values with cost in the range (and per time bucket, when `time_bucket_width` is set), every combination returned across pages rather than a capped top set. `cost_type` and `token_type` do not count toward `limit`: `cost_type` returns one row per cost component (tokens, web search, code execution, and `session_usage`, Claude Managed Agents session time); `token_type` returns one row per token type, each with `cost_type: "tokens"`; combining both returns the per-token-type rows plus the web-search, code-execution and session-usage rows. When omitted, a single row aggregates the whole range.

  maxItems: 100

  - `"actor"`

  - `"actor_type"`

  - `"agent_id"`

  - `"api_key_id"`

  - `"claude_tag_category"`

  - `"claude_tag_user_id"`

  - `"context_window"`

  - `"cost_type"`

  - `"deployment_id"`

  - `"environment_id"`

  - `"inference_geo"`

  - `"model"`

  - `"product"`

  - `"rbac_group_id"`

  - `"service_tier"`

  - `"session_id"`

  - `"slack_channel_id"`

  - `"speed"`

  - `"token_type"`

  - `"user_profile_id"`

  - `"workspace_id"`

- `inference_geos: optional array of BetaAnalyticsInferenceGeoFilter`

  Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values.

  maxItems: 100

  - `"global"`

  - `"not_available"`

  - `"us"`

- `limit: optional number`

  Number of rows per page (1-1000, default 20). `cost_type`/`token_type` fan-out rows (cost endpoint only) do not count toward this limit, so `data` can exceed it.

  default: 20, minimum: 1, maximum: 1000

- `models: optional array of string`

  Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values.

  maxItems: 100

- `order: optional BetaAnalyticsUsageCostSortOrder`

  Sort direction of the `order_by` metric, or of the time buckets when `order_by` is `time` and `time_bucket_width` is set. Defaults to `desc`.

  - `"asc"`

  - `"desc"`

- `order_by: optional BetaAnalyticsCostOrderBy`

  Row order. A metric ranks rows by that metric in the `order` direction. `time` orders rows by time bucket in the `order` direction (newest first by default) and, within a bucket, by `amount`, highest first. `time` takes effect only with `time_bucket_width`; without it, `time` is the same as `amount`. Defaults to `amount`.

  - `"amount"`

  - `"list_amount"`

  - `"time"`

- `page: optional string`

  Opaque cursor from a previous response's `next_page` field.

- `products: optional array of BetaAnalyticsUsageCostProductFilter`

  Product surfaces to include. Defaults to all products.

  maxItems: 100

  - `"chat"`

  - `"chat_cowork_unified"`

  - `"claude_code"`

  - `"claude_console"`

  - `"claude_design"`

  - `"claude_in_chrome"`

  - `"claude_tag"`

  - `"cowork"`

  - `"managed_agents_api"`

  - `"message_batches_api"`

  - `"messages_api"`

  - `"office_agent"`

- `rbac_group_ids: optional array of string`

  Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.

  maxItems: 100

- `service_tiers: optional array of BetaAnalyticsServiceTier`

  Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.

  maxItems: 100

  - `"batch"`

  - `"flex"`

  - `"flex_discount"`

  - `"priority"`

  - `"priority_on_demand"`

  - `"standard"`

- `session_ids: optional array of string`

  Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.

  maxItems: 100

- `slack_channel_ids: optional array of string`

  Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values.

  maxItems: 100

- `speeds: optional array of BetaAnalyticsSpeed`

  Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values.

  maxItems: 100

  - `"fast"`

  - `"standard"`

- `time_bucket_width: optional BetaAnalyticsTimeBucketWidth`

  Time-bucket granularity. When set, rows are returned per time bucket (one per bucket and dimension combination with usage) and each row's `starting_at` and `ending_at` are that bucket's bounds; the time bucket counts toward `limit`. `ending_at` is required when `time_bucket_width` is set, and with `time_bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the requested range with `starting_at` and `ending_at` each rounded down to the hour.

  - `"1d"`

  - `"1h"`

  - `"1m"`

- `user_profile_ids: optional array of string`

  Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.

Cut at 300 lines. The page has the rest.

api/beta/organization/analytics/cost/list New page · 776 lines, new page

# Get Cost By Dimension ## Query parameters ## Headers ## Returns ## Example ### Response (200)

A whole new page. There's nothing to diff it against, so here is what it says.

---
title: Get Cost By Dimension
url: https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list
---

# Get Cost By Dimension

**GET** `/v1/organizations/analytics/cost`

Get cost in USD across a date range, broken out by dimension.

Returns one row per combination of the requested `group_by[]`
dimensions (and time bucket, when `time_bucket_width` is set) that has
cost in the range, ranked by spend or ordered by time bucket; every
combination is returned across pages. With no `group_by[]` and no
`time_bucket_width`, a single row aggregates the whole range. Includes
all cost, whether or not it is attributable to a seat user. Requires an
API key with the `read:analytics` scope, or an Admin API key.

## Query parameters

- `starting_at: string`

  Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z.

  format: date-time

- `actor_ids: optional array of string`

  Filter to usage attributed to specific identities, by tagged ID: a `user_...`, `svac_...` (service account), or `apikey_...` ID. An `apikey_` entry matches only usage attributed to the key itself, not usage on that key attributed to a user or service account (use `api_key_ids[]` for every request a key authenticated). Federated identities have no tagged ID; select them with `actor_types[]`. Use `group_by[]=actor` to break out per-identity values.

  maxItems: 100

- `actor_types: optional array of BetaAnalyticsActorType`

  Filter to usage attributed to specific kinds of identity. Use `group_by[]=actor_type` to break out per-kind values.

  maxItems: 100

  - `"api_actor"`

  - `"federated_actor"`

  - `"service_account_actor"`

  - `"user_actor"`

- `agent_ids: optional array of string`

  Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.

  maxItems: 100

- `api_key_ids: optional array of string`

  Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.

  maxItems: 100

- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`

  Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.

  maxItems: 100

  - `"dm"`

  - `"engaged"`

  - `"monitoring"`

  - `"proactive"`

  - `"scheduled"`

- `claude_tag_user_ids: optional array of string`

  Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values.

  maxItems: 100

- `context_windows: optional array of BetaAnalyticsContextWindow`

  Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.

  maxItems: 100

  - `"0-200k"`

  - `"200k-1M"`

- `deployment_ids: optional array of string`

  Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.

  maxItems: 100

- `ending_at: optional string`

  End of range, exclusive. Required when `time_bucket_width` is set. Without `time_bucket_width`, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days.

  format: date-time

- `environment_ids: optional array of string`

  Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.

  maxItems: 100

- `exclude_deleted_users: optional boolean`

  If true, omit rows whose `actor` is a `user_actor` with `deleted: true`. Requires `group_by[]=actor`. Rows for other actor types, and rows whose `actor` is null, are always kept. A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual.

  default: false

- `group_by: optional array of BetaAnalyticsCostGroupBy`

  Dimensions to break cost out by (at most 5, not counting `cost_type` and `token_type`): one row per combination of their values with cost in the range (and per time bucket, when `time_bucket_width` is set), every combination returned across pages rather than a capped top set. `cost_type` and `token_type` do not count toward `limit`: `cost_type` returns one row per cost component (tokens, web search, code execution, and `session_usage`, Claude Managed Agents session time); `token_type` returns one row per token type, each with `cost_type: "tokens"`; combining both returns the per-token-type rows plus the web-search, code-execution and session-usage rows. When omitted, a single row aggregates the whole range.

  maxItems: 100

  - `"actor"`

  - `"actor_type"`

  - `"agent_id"`

  - `"api_key_id"`

  - `"claude_tag_category"`

  - `"claude_tag_user_id"`

  - `"context_window"`

  - `"cost_type"`

  - `"deployment_id"`

  - `"environment_id"`

  - `"inference_geo"`

  - `"model"`

  - `"product"`

  - `"rbac_group_id"`

  - `"service_tier"`

  - `"session_id"`

  - `"slack_channel_id"`

  - `"speed"`

  - `"token_type"`

  - `"user_profile_id"`

  - `"workspace_id"`

- `inference_geos: optional array of BetaAnalyticsInferenceGeoFilter`

  Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values.

  maxItems: 100

  - `"global"`

  - `"not_available"`

  - `"us"`

- `limit: optional number`

  Number of rows per page (1-1000, default 20). `cost_type`/`token_type` fan-out rows (cost endpoint only) do not count toward this limit, so `data` can exceed it.

  default: 20, minimum: 1, maximum: 1000

- `models: optional array of string`

  Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values.

  maxItems: 100

- `order: optional BetaAnalyticsUsageCostSortOrder`

  Sort direction of the `order_by` metric, or of the time buckets when `order_by` is `time` and `time_bucket_width` is set. Defaults to `desc`.

  - `"asc"`

  - `"desc"`

- `order_by: optional BetaAnalyticsCostOrderBy`

  Row order. A metric ranks rows by that metric in the `order` direction. `time` orders rows by time bucket in the `order` direction (newest first by default) and, within a bucket, by `amount`, highest first. `time` takes effect only with `time_bucket_width`; without it, `time` is the same as `amount`. Defaults to `amount`.

  - `"amount"`

  - `"list_amount"`

  - `"time"`

- `page: optional string`

  Opaque cursor from a previous response's `next_page` field.

- `products: optional array of BetaAnalyticsUsageCostProductFilter`

  Product surfaces to include. Defaults to all products.

  maxItems: 100

  - `"chat"`

  - `"chat_cowork_unified"`

  - `"claude_code"`

  - `"claude_console"`

  - `"claude_design"`

  - `"claude_in_chrome"`

  - `"claude_tag"`

  - `"cowork"`

  - `"managed_agents_api"`

  - `"message_batches_api"`

  - `"messages_api"`

  - `"office_agent"`

- `rbac_group_ids: optional array of string`

  Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.

  maxItems: 100

- `service_tiers: optional array of BetaAnalyticsServiceTier`

  Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.

  maxItems: 100

  - `"batch"`

  - `"flex"`

  - `"flex_discount"`

  - `"priority"`

  - `"priority_on_demand"`

  - `"standard"`

- `session_ids: optional array of string`

  Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.

  maxItems: 100

- `slack_channel_ids: optional array of string`

  Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values.

  maxItems: 100

- `speeds: optional array of BetaAnalyticsSpeed`

  Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values.

  maxItems: 100

  - `"fast"`

  - `"standard"`

- `time_bucket_width: optional BetaAnalyticsTimeBucketWidth`

  Time-bucket granularity. When set, rows are returned per time bucket (one per bucket and dimension combination with usage) and each row's `starting_at` and `ending_at` are that bucket's bounds; the time bucket counts toward `limit`. `ending_at` is required when `time_bucket_width` is set, and with `time_bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the requested range with `starting_at` and `ending_at` each rounded down to the hour.

  - `"1d"`

  - `"1h"`

  - `"1m"`

- `user_profile_ids: optional array of string`

  Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.

  maxItems: 100

Cut at 300 lines. The page has the rest.

api/beta/organization/analytics/cost_report Changed · +5 / -6 lines

from line 9
99 
1010**GET** `/v1/organizations/analytics/cost_report`
1111 
12Get cost in USD over time across a date range.
12[Legacy] Get cost in USD over time across a date range.
1313 
14Returns cost bucketed by minute, hour, or day, optionally broken down by
15product, model, context window, inference region, speed, cost type, or
16token type. Available to organizations on a Claude Enterprise plan.
17Requires an API key with the `read:analytics` scope.
14Returns cost bucketed by minute, hour, or day, optionally broken down by one or more `group_by[]` dimensions, such as model or cost type. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
15 
16This 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).
1817 
1918### Query parameters
2019 
Feedback