Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
One change · api

Get Per-User Token Usage changed

api/admin/analytics/usage/list_by_user

Nearest release: v2.1.261, published 3 hours before 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+47added
Lines−1removed
From line 30 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits6to this page, all time

The whole hunk

from line 30, old and new numbered
/
lines
from line 30
3030 
3131 - `"1m"`
3232 
33- `claude_tag_categories: optional array of "dm" or "engaged" or "monitoring" or 2 more`
34 
35 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.
36 
37 maxItems: 100
38 
39 - `"dm"`
40 
41 - `"engaged"`
42 
43 - `"monitoring"`
44 
45 - `"proactive"`
46 
47 - `"scheduled"`
48 
49- `claude_tag_user_ids: optional array of string`
50 
51 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.
52 
53 maxItems: 100
54 
3355- `context_windows: optional array of "0-200k" or "200k-1M"`
3456 
3557 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
from line 74
5274 
5375 default: false
5476 
55- `group_by: optional array of "context_window" or "inference_geo" or "model" or 4 more`
77- `group_by: optional array of "claude_tag_category" or "claude_tag_user_id" or "context_window" or 6 more`
5678 
5779 Break each actor's row out by the given dimensions. Accepts the same values as the bucketed `/usage_report` endpoint. `limit` bounds (actor × time bucket × dimension) rows — with dimensions or `bucket_width` present, one actor may span several rows.
5880 
5981 maxItems: 100
6082 
83 - `"claude_tag_category"`
84 
85 - `"claude_tag_user_id"`
86 
6187 - `"context_window"`
6288 
6389 - `"inference_geo"`
from line 246
220246 
221247 The number of input tokens read from the cache.
222248 
249 - `claude_tag_category: "dm" or "engaged" or "monitoring" or 2 more or null`
250 
251 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.
252 
253 - `"dm"`
254 
255 - `"engaged"`
256 
257 - `"monitoring"`
258 
259 - `"proactive"`
260 
261 - `"scheduled"`
262 
263 - `claude_tag_user_id: string or null`
264 
265 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.
266 
223267 - `context_window: "0-200k" or "200k-1M" or null`
224268 
225269 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.
from line 384
340384 "ephemeral_5m_input_tokens": 500
341385 },
342386 "cache_read_input_tokens": 3200000,
387 "claude_tag_category": "dm",
388 "claude_tag_user_id": "U0123ABCDEF",
343389 "context_window": "0-200k",
344390 "ending_at": "2019-12-27T18:11:19.117Z",
345391 "inference_geo": "global",