Analytics changedapi/admin/analytics
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+189added
Lines−5removed
From line
482
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 482, old and new numbered
/
from line 482
482482
483483 - `"1m"`
484484
485- `claude_tag_categories: optional array of "dm" or "engaged" or "monitoring" or 2 more`
486
487 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.
488
489 maxItems: 100
490
491 - `"dm"`
492
493 - `"engaged"`
494
495 - `"monitoring"`
496
497 - `"proactive"`
498
499 - `"scheduled"`
500
501- `claude_tag_user_ids: optional array of string`
502
503 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.
504
505 maxItems: 100
506
485507- `context_windows: optional array of "0-200k" or "200k-1M"`
486508
487509 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
from line 520
498520
499521 format: date-time
500522
501- `group_by: optional array of "context_window" or "inference_geo" or "model" or 4 more`
523- `group_by: optional array of "claude_tag_category" or "claude_tag_user_id" or "context_window" or 6 more`
502524
503525 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.
504526
505527 maxItems: 100
506528
529 - `"claude_tag_category"`
530
531 - `"claude_tag_user_id"`
532
507533 - `"context_window"`
508534
509535 - `"inference_geo"`
from line 654
628654
629655 The number of input tokens read from the cache.
630656
657 - `claude_tag_category: "dm" or "engaged" or "monitoring" or 2 more or null`
658
659 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.
660
661 - `"dm"`
662
663 - `"engaged"`
664
665 - `"monitoring"`
666
667 - `"proactive"`
668
669 - `"scheduled"`
670
671 - `claude_tag_user_id: string or null`
672
673 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.
674
631675 - `context_window: "0-200k" or "200k-1M" or null`
632676
633677 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 778
734778 "ephemeral_5m_input_tokens": 500
735779 },
736780 "cache_read_input_tokens": 0,
781 "claude_tag_category": "dm",
782 "claude_tag_user_id": "U0123ABCDEF",
737783 "context_window": "0-200k",
738784 "inference_geo": "global",
739785 "model": "claude-opus-5",
from line 837
791837
792838 - `"1m"`
793839
840- `claude_tag_categories: optional array of "dm" or "engaged" or "monitoring" or 2 more`
841
842 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.
843
844 maxItems: 100
845
846 - `"dm"`
847
848 - `"engaged"`
849
850 - `"monitoring"`
851
852 - `"proactive"`
853
854 - `"scheduled"`
855
856- `claude_tag_user_ids: optional array of string`
857
858 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.
859
860 maxItems: 100
861
794862- `context_windows: optional array of "0-200k" or "200k-1M"`
795863
796864 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
from line 881
813881
814882 default: false
815883
816- `group_by: optional array of "context_window" or "inference_geo" or "model" or 4 more`
884- `group_by: optional array of "claude_tag_category" or "claude_tag_user_id" or "context_window" or 6 more`
817885
818886 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.
819887
820888 maxItems: 100
821889
890 - `"claude_tag_category"`
891
892 - `"claude_tag_user_id"`
893
822894 - `"context_window"`
823895
824896 - `"inference_geo"`
from line 1053
9811053
9821054 The number of input tokens read from the cache.
9831055
1056 - `claude_tag_category: "dm" or "engaged" or "monitoring" or 2 more or null`
1057
1058 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.
1059
1060 - `"dm"`
1061
1062 - `"engaged"`
1063
1064 - `"monitoring"`
1065
1066 - `"proactive"`
1067
1068 - `"scheduled"`
1069
1070 - `claude_tag_user_id: string or null`
1071
1072 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.
1073
9841074 - `context_window: "0-200k" or "200k-1M" or null`
9851075
9861076 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 1191
11011191 "ephemeral_5m_input_tokens": 500
11021192 },
11031193 "cache_read_input_tokens": 3200000,
1194 "claude_tag_category": "dm",
1195 "claude_tag_user_id": "U0123ABCDEF",
11041196 "context_window": "0-200k",
11051197 "ending_at": "2019-12-27T18:11:19.117Z",
11061198 "inference_geo": "global",
from line 1251
11591251
11601252 - `"1m"`
11611253
1254- `claude_tag_categories: optional array of "dm" or "engaged" or "monitoring" or 2 more`
1255
1256 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.
1257
1258 maxItems: 100
1259
1260 - `"dm"`
1261
1262 - `"engaged"`
1263
1264 - `"monitoring"`
1265
1266 - `"proactive"`
1267
1268 - `"scheduled"`
1269
1270- `claude_tag_user_ids: optional array of string`
1271
1272 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.
1273
1274 maxItems: 100
1275
11621276- `context_windows: optional array of "0-200k" or "200k-1M"`
11631277
11641278 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
from line 1289
11751289
11761290 format: date-time
11771291
1178- `group_by: optional array of "context_window" or "cost_type" or "inference_geo" or 6 more`
1292- `group_by: optional array of "claude_tag_category" or "claude_tag_user_id" or "context_window" or 8 more`
11791293
11801294 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.
11811295
11821296 maxItems: 100
11831297
1298 - `"claude_tag_category"`
1299
1300 - `"claude_tag_user_id"`
1301
11841302 - `"context_window"`
11851303
11861304 - `"cost_type"`
from line 1415
12971415
12981416 Amount (post-discount, pre-credit) in fractional cents.
12991417
1418 - `claude_tag_category: "dm" or "engaged" or "monitoring" or 2 more or null`
1419
1420 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.
1421
1422 - `"dm"`
1423
1424 - `"engaged"`
1425
1426 - `"monitoring"`
1427
1428 - `"proactive"`
1429
1430 - `"scheduled"`
1431
1432 - `claude_tag_user_id: string or null`
1433
1434 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.
1435
13001436 - `context_window: "0-200k" or "200k-1M" or null`
13011437
13021438 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 1553
14171553 "results": [
14181554 {
14191555 "amount": "amount",
1556 "claude_tag_category": "dm",
1557 "claude_tag_user_id": "U0123ABCDEF",
14201558 "context_window": "0-200k",
14211559 "cost_type": "code_execution",
14221560 "currency": "USD",
from line 1611
14731611
14741612 - `"1m"`
14751613
1614- `claude_tag_categories: optional array of "dm" or "engaged" or "monitoring" or 2 more`
1615
1616 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.
1617
1618 maxItems: 100
1619
1620 - `"dm"`
1621
1622 - `"engaged"`
1623
1624 - `"monitoring"`
1625
1626 - `"proactive"`
1627
1628 - `"scheduled"`
1629
1630- `claude_tag_user_ids: optional array of string`
1631
1632 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.
1633
1634 maxItems: 100
1635
14761636- `context_windows: optional array of "0-200k" or "200k-1M"`
14771637
14781638 Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values.
from line 1655
14951655
14961656 default: false
14971657
1498- `group_by: optional array of "context_window" or "cost_type" or "inference_geo" or 6 more`
1658- `group_by: optional array of "claude_tag_category" or "claude_tag_user_id" or "context_window" or 8 more`
14991659
15001660 Break each actor's row out by the given dimensions. Accepts the same values as the bucketed `/cost_report` endpoint. The `product`, `model`, `context_window`, `inference_geo`, and `speed` dimensions — and the time bucket, when `bucket_width` is set — count toward `limit`. `cost_type` and `token_type` do not: `cost_type` returns one row per cost component (tokens, web search, code execution); `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 and code-execution rows. A page can therefore contain more rows than `limit` when `cost_type` or `token_type` is requested.
15011661
15021662 maxItems: 100
15031663
1664 - `"claude_tag_category"`
1665
1666 - `"claude_tag_user_id"`
1667
15041668 - `"context_window"`
15051669
15061670 - `"cost_type"`
from line 1815
16511815
16521816 Amount (post-discount, pre-credit) in fractional cents (minor units).
16531817
1818 - `claude_tag_category: "dm" or "engaged" or "monitoring" or 2 more or null`
1819
1820 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.
1821
1822 - `"dm"`
1823
1824 - `"engaged"`
1825
1826 - `"monitoring"`
1827
1828 - `"proactive"`
1829
1830 - `"scheduled"`
1831
1832 - `claude_tag_user_id: string or null`
1833
1834 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.
1835
16541836 - `context_window: "0-200k" or "200k-1M" or null`
16551837
16561838 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 1963
17811963 "user_id": "user_01AbCdEfGhIjKlMnOpQrSt"
17821964 },
17831965 "amount": "41280.000000",
1966 "claude_tag_category": "dm",
1967 "claude_tag_user_id": "U0123ABCDEF",
17841968 "context_window": "0-200k",
17851969 "cost_type": "code_execution",
17861970 "currency": "USD",
from line 2707
25232707
25242708 - `skill_display_name: optional string or null`
25252709
2526 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types — user-defined names are withheld from the analytics pipeline). Only organization-shared skills resolve; the literal 'unknown' bucket row also gets a fixed 'Unknown skill' label. Null for private (user-defined) skills — their names are not disclosed to analytics-key holders — and null when `skill_name` is already a display name, when the skill was deleted, or when display-name resolution is not enabled for this organization.
2710 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills — user-defined names are withheld from the analytics pipeline). Organization-shared skills and skills delivered by the organization's own plugins (its plugin marketplaces and its library) resolve; plugin skill names are shown without their 'plugin:' prefix. The literal 'unknown' bucket row gets a fixed 'Unknown skill' label. Null for private (user-defined) skills and members' personal-plugin skills — those names are not disclosed to analytics-key holders — and for Anthropic-provided plugin skills (not resolved), and null when `skill_name` is already a display name, when the skill or plugin was deleted, or when display-name resolution is not enabled for this organization.
25272711
25282712 - `user_id: optional string or null`
25292713
No line in this hunk matches that.