The whole hunk
from line 482, old and new numbered
/
lines
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