Get Token Usage Over Time changedapi/admin/analytics/usage/list
Nearest release: v2.1.245, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+48added
Lines−21removed
From line
1
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits6to this page, all time
# Get Token Usage Over Time ## Query parameters ## Returns ## Example ### Response (200) ## Get Token Usage Over Time ### Query Parameters ### Returns ### Example #### Response
The whole hunk
from line 1, old and new numbered
/
from line 1
1---
2title: Get Token Usage Over Time
3url: https://platform.claude.com/docs/en/api/admin/analytics/usage/list
4---
1# Get Token Usage Over Time
52
6## Get Token Usage Over Time
3**GET** `/v1/organizations/analytics/usage_report`
74
8**get** `/v1/organizations/analytics/usage_report`
9
105Get token usage over time across a date range.
116
127Returns token usage bucketed by minute, hour, or day, optionally broken
from line 9
149Available to organizations on a Claude Enterprise plan. Requires an API
1510key with the `read:analytics` scope.
1611
17### Query Parameters
12## Query parameters
1813
1914- `starting_at: string`
2015
2116 Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z.
2217
18 format: date-time
19
2320- `bucket_width: optional "1d" or "1h" or "1m"`
2421
2522 Time bucket granularity.
2623
24 default: 1d
25
2726 - `"1d"`
2827
2928 - `"1h"`
from line 33
3433
3534 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
3635
36 maxItems: 100
37
3738 - `"0-200k"`
3839
3940 - `"200k-1M"`
from line 43
4243
4344 End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days.
4445
46 format: date-time
47
4548- `group_by: optional array of "context_window" or "inference_geo" or "model" or 4 more`
4649
4750 Dimensions to break each time bucket out by. Defaults to no grouping (one total per bucket). Each bucket reports at most its top 100 groups; a group beyond that cap has no row in that bucket (there is no remainder row), so grouped buckets are not exhaustive when a dimension has more than 100 distinct values.
4851
52 maxItems: 100
53
4954 - `"context_window"`
5055
5156 - `"inference_geo"`
from line 69
6469
6570 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.
6671
72 maxItems: 100
73
6774 - `"global"`
6875
6976 - `"not_available"`
from line 81
7481
7582 Maximum number of time buckets per page. Defaults and caps vary by bucket_width (1d: default 7, max 31; 1h: default 24, max 168; 1m: default 60, max 256).
7683
84 minimum: 1
85
7786- `models: optional array of string`
7887
7988 Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values.
8089
90 maxItems: 100
91
8192- `page: optional string`
8293
8394 Opaque cursor from a previous response's `next_page` field.
from line 97
8697
8798 Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it.
8899
100 maxItems: 100
101
89102- `rbac_group_ids: optional array of string`
90103
91104 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.
92105
106 maxItems: 100
107
93108- `slack_channel_ids: optional array of string`
94109
95110 Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values.
96111
112 maxItems: 100
113
97114- `speeds: optional array of "fast" or "standard"`
98115
99116 Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values.
100117
118 maxItems: 100
119
101120 - `"fast"`
102121
103122 - `"standard"`
from line 125
106125
107126 Filter to specific users by tagged user ID.
108127
109### Returns
128 maxItems: 100
110129
111- `UsageBucket object { data, data_refreshed_at, has_more, 2 more }`
130## Returns
112131
113 - `data: array of object { ending_at, results, starting_at }`
132- `UsageBucket object`
114133
134 - `data: array of object`
135
115136 Time buckets for this page, oldest first: one per `bucket_width` interval, including intervals with no data (their `results` list is empty). A page holds at most `limit` buckets.
116137
117138 - `ending_at: string`
from line 139
118139
119140 End of the time bucket (exclusive) in RFC 3339 format.
120141
121 - `results: array of object { cache_creation, cache_read_input_tokens, context_window, 10 more }`
142 format: date-time
122143
144 - `results: array of object`
145
123146 Rows for this time bucket. Empty when the bucket has no data; otherwise a single combined row when `group_by[]` is omitted, or one row per group (subject to the per-bucket group cap described on the `group_by[]` parameter).
124147
125 - `cache_creation: object { ephemeral_1h_input_tokens, ephemeral_5m_input_tokens }`
148 - `cache_creation: object`
126149
127150 The number of input tokens for cache creation.
128151
from line 197
174197
175198 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`).
176199
177 - `server_tool_use: object { web_search_requests }`
200 - `server_tool_use: object`
178201
179202 Server-side tool usage metrics.
180203
from line 225
202225
203226 Start of the time bucket (inclusive) in RFC 3339 format.
204227
228 format: date-time
229
205230 - `data_refreshed_at: string or null`
206231
207232 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 every bucket's `results` list is empty. Buckets beyond this watermark are incomplete; for stable results, set `ending_at` to this value or earlier. Data is typically refreshed every 4 hours but not final until about 30 days after the usage date (late-arriving events, reconciliation adjustments).
208233
234 format: date-time
235
209236 - `has_more: boolean`
210237
211238 Whether another page is available. When true, pass `next_page` as the `page` parameter to fetch it.
from line 245
218245
219246 ID of the Organization.
220247
221### Example
248## Example
222249
223```http
250```bash
224251curl https://api.anthropic.com/v1/organizations/analytics/usage_report \
225252 -H 'anthropic-version: 2023-06-01' \
226253 -H "X-Api-Key: $ANTHROPIC_ADMIN_API_KEY"
227254```
228255
229#### Response
256### Response (200)
230257
231258```json
232259{
No line in this hunk matches that.