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 172
172172
173173 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
174174
175### Beta Analytics Artifact Group By
176
177- `BetaAnalyticsArtifactGroupBy = "product" or "rbac_group_id" or "user_id"`
178
179 A dimension to group artifact activity by.
180
181 - `"product"`
182
183 - `"rbac_group_id"`
184
185 - `"user_id"`
186
175187### Beta Analytics Chat Cowork Unified Chat Metrics
176188
177189- `BetaAnalyticsChatCoworkUnifiedChatMetrics object`
from line 239
227239
228240 Same measure as `chat_metrics.thinking_message_count`, for activity recorded while members had Chat and Cowork unified turned on.
229241
242### Beta Analytics Chat Cowork Unified Metrics
243
244- `BetaAnalyticsChatCoworkUnifiedMetrics object`
245
246 Activity in Chat and Cowork unified for one user on one day: `chat` holds
247 chat activity and `sessions` holds Cowork session activity.
248
249 - `chat: BetaAnalyticsChatCoworkUnifiedChatMetrics`
250
251 Chat activity recorded while members had Chat and Cowork unified turned
252 on.
253
254 - `connectors_used_count: number`
255
256 Same measure as `chat_metrics.connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on.
257
258 - `distinct_artifacts_created_count: number`
259
260 Same measure as `chat_metrics.distinct_artifacts_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it.
261
262 - `distinct_connectors_used_count: number or null`
263
264 Same measure as `chat_metrics.distinct_connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
265
266 - `distinct_conversation_count: number or null`
267
268 Same measure as `chat_metrics.distinct_conversation_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
269
270 - `distinct_files_uploaded_count: number or null`
271
272 Same measure as `chat_metrics.distinct_files_uploaded_count`, for activity recorded while members had Chat and Cowork unified turned on. It counts uploaded files as well as files Claude created and images returned by Claude's tools, such as screenshots. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
273
274 - `distinct_projects_created_count: number`
275
276 Same measure as `chat_metrics.distinct_projects_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it.
277
278 - `distinct_projects_used_count: number or null`
279
280 Same measure as `chat_metrics.distinct_projects_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
281
282 - `distinct_shared_artifacts_viewed_count: number or null`
283
284 Always null: shared-artifact views are not currently measured.
285
286 - `distinct_skills_used_count: number or null`
287
288 Same measure as `chat_metrics.distinct_skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
289
290 - `message_count: number`
291
292 Same measure as `chat_metrics.message_count`, for activity recorded while members had Chat and Cowork unified turned on.
293
294 - `shared_conversations_viewed_count: number`
295
296 Same measure as `chat_metrics.shared_conversations_viewed_count`, for activity recorded while members had Chat and Cowork unified turned on.
297
298 - `thinking_message_count: number`
299
300 Same measure as `chat_metrics.thinking_message_count`, for activity recorded while members had Chat and Cowork unified turned on.
301
302 - `sessions: BetaAnalyticsChatCoworkUnifiedSessionsMetrics`
303
304 Cowork session activity recorded while members had Chat and Cowork
305 unified turned on.
306
307 - `action_count: number`
308
309 Same measure as `cowork_metrics.action_count`, for activity recorded while members had Chat and Cowork unified turned on.
310
311 - `artifacts_created_count: number`
312
313 Same measure as `cowork_metrics.artifacts_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it.
314
315 - `connectors_used_count: number`
316
317 Same measure as `cowork_metrics.connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on.
318
319 - `dispatch_turn_count: number`
320
321 Same measure as `cowork_metrics.dispatch_turn_count`, for activity recorded while members had Chat and Cowork unified turned on.
322
323 - `distinct_connectors_used_count: number or null`
324
325 Same measure as `cowork_metrics.distinct_connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
326
327 - `distinct_plugins_used_count: number or null`
328
329 Same measure as `cowork_metrics.distinct_plugins_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
330
331 - `distinct_session_count: number or null`
332
333 Same measure as `cowork_metrics.distinct_session_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
334
335 - `distinct_skills_used_count: number or null`
336
337 Same measure as `cowork_metrics.distinct_skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
338
339 - `edit_tool_count: number or null`
340
341 Same measure as `cowork_metrics.edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
342
343 - `file_edit_count: number or null`
344
345 Same measure as `cowork_metrics.file_edit_count`, for activity recorded while members had Chat and Cowork unified turned on.
346
347 - `message_count: number`
348
349 Same measure as `cowork_metrics.message_count`, for activity recorded while members had Chat and Cowork unified turned on.
350
351 - `multi_edit_tool_count: number or null`
352
353 Same measure as `cowork_metrics.multi_edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. Claude no longer has a multi-edit tool, so expect 0 when not null; each edit is now a separate Edit tool call, counted in `edit_tool_count` and `file_edit_count`.
354
355 - `notebook_edit_tool_count: number or null`
356
357 Same measure as `cowork_metrics.notebook_edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
358
359 - `plugins_used_count: number or null`
360
361 Same measure as `cowork_metrics.plugins_used_count`, for activity recorded while members had Chat and Cowork unified turned on.
362
363 - `sessions_with_file_edits_count: number or null`
364
365 Same measure as `cowork_metrics.sessions_with_file_edits_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
366
367 - `skills_used_count: number`
368
369 Same measure as `cowork_metrics.skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on.
370
371 - `write_tool_count: number or null`
372
373 Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
374
230375### Beta Analytics Chat Cowork Unified Sessions Metrics
231376
232377- `BetaAnalyticsChatCoworkUnifiedSessionsMetrics object`
from line 603
458603
459604 Number of distinct Claude Code sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
460605
606 - `connector_display_name: string or null`
607
608 Human-readable display name for rows whose `connector_name` is an opaque connector id rather than a readable name, resolved at request time from the organization's connectors (including connectors that have since been removed). `connector_name` remains the row's stable key for sorting and pagination, and `filter[]=connector_name:{value}` also matches these rows by display name. Display names are not unique, and the same connector's claude.ai usage can appear under a separate row with a readable `connector_name`. Null when `connector_name` is already a readable name, when the id cannot be resolved to one of the organization's connectors, or when display-name resolution is not enabled for this organization.
609
461610 - `connector_name: string`
462611
463612 Name of the connector. Some rows carry an opaque connector id here instead of a readable name; `connector_display_name` holds the resolved name for those rows.
from line 623
474623
475624 Number of distinct users who used the connector on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values.
476625
626 - `individual_auth_distinct_user_count: number or null`
627
628 Number of distinct users whose use of this connector on the requested day ran on their own individual credential, connected through their own consent flow. Companion bucket to `managed_auth_distinct_user_count`, which carries the measurement, attribution, and null rules. Users whose requests used no stored credential count in neither bucket.
629
630 - `managed_auth_distinct_user_count: number or null`
631
632 Number of distinct users whose use of this connector on the requested day ran on Enterprise Managed Auth (an organization-managed credential provisioned through the organization's identity provider), read from the token record each request used. Null, never 0, when managed-auth reporting is not enabled for the organization, the value cannot be attributed to the row, no credentialed requests and no managed-token mint events (a managed credential being provisioned for a user's use of the connector) were observed that day, or the day predates 2026-07-01, the first day the backing data exists (forward-only data, no backfill). When credentialed requests or mint events were observed and attributed, both managed-auth fields populate, reporting 0 for a bucket with no users; the two counts are independent, not a partition — a user whose requests that day used both kinds of credential counts in both. Mint events carry user but not surface attribution, so they count as observed auth activity on `user_id` and `rbac_group_id` cuts — attributed to the user the credential was provisioned for — but never on a cut that references `product` (group or filter). Date-range rollup mode (`starting_date`/`ending_date`) computes both fields exactly over the window — distinct users with at least one qualifying day — when the whole window starts on or after 2026-07-01, with the null-versus-0 and mint-event rules applying with the window in place of the day; a range starting earlier reports every managed-auth field as null, never a partial-window value.
633
477634 - `office_metrics: BetaAnalyticsConnectorOfficeMetrics`
478635
479636 Office Agent activity metrics for a single connector on a given day, broken out by Office product.
from line 655
498655
499656 Office Agent activity metrics for a single connector on a given day within one Office product.
500657
501 - `chat_cowork_unified_metrics: optional object or null`
658 - `read_call_count: number or null`
659
660 Number of connector tool calls on the requested day whose trusted read-only annotation marked them read-only. Call count, not distinct users. Every call recorded on a classified surface lands in exactly one of `read_call_count`, `write_call_count`, or `unclassified_call_count`, so the three sum to the day's classified calls. Classification is forward-only per surface: claude.ai from 2026-06-01, Claude Code from 2026-05-30, Claude in Office from 2026-05-29, Cowork from 2026-06-02 (Cowork clients predating annotation forwarding land in `unclassified_call_count`). Null, never 0, when the value cannot be stated: the read/write split is not enabled for this organization, or the day predates 2026-05-29. For a date-range total, sum the per-day values, but treat a window that extends before 2026-05-29 as null rather than summing only its covered days — date-range rollup mode (`starting_date`/`ending_date`) applies both rules server-side.
661
662 - `unclassified_call_count: number or null`
663
664 Number of connector tool calls on the requested day with no trusted read-only annotation — the annotation is optional in the MCP spec and is discarded when connector access controls are active, so unclassified calls are common. This field shows how much of the day's classified activity the read/write split actually covers. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
665
666 - `write_call_count: number or null`
667
668 Number of connector tool calls on the requested day whose trusted read-only annotation marked them not read-only. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
669
670 - `chat_cowork_unified_metrics: optional BetaAnalyticsConnectorChatCoworkUnifiedMetrics or null`
502671
503672 Connector use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified.
504673
from line 689
520689
521690 Same measure as `cowork_metrics.distinct_session_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
522691
523 - `connector_display_name: optional string or null`
524
525 Human-readable display name for rows whose `connector_name` is an opaque connector id rather than a readable name, resolved at request time from the organization's connectors (including connectors that have since been removed). `connector_name` remains the row's stable key for sorting and pagination, and `filter[]=connector_name:{value}` also matches these rows by display name. Display names are not unique, and the same connector's claude.ai usage can appear under a separate row with a readable `connector_name`. Null when `connector_name` is already a readable name, when the id cannot be resolved to one of the organization's connectors, or when display-name resolution is not enabled for this organization.
526
527 - `individual_auth_distinct_user_count: optional number or null`
528
529 Number of distinct users whose use of this connector on the requested day ran on their own individual credential, connected through their own consent flow. Companion bucket to `managed_auth_distinct_user_count`, which carries the measurement, attribution, and null rules. Users whose requests used no stored credential count in neither bucket.
530
531 - `managed_auth_distinct_user_count: optional number or null`
532
533 Number of distinct users whose use of this connector on the requested day ran on Enterprise Managed Auth (an organization-managed credential provisioned through the organization's identity provider), read from the token record each request used. Null, never 0, when managed-auth reporting is not enabled for the organization, the value cannot be attributed to the row, no credentialed requests and no managed-token mint events (a managed credential being provisioned for a user's use of the connector) were observed that day, or the day predates 2026-07-01, the first day the backing data exists (forward-only data, no backfill). When credentialed requests or mint events were observed and attributed, both managed-auth fields populate, reporting 0 for a bucket with no users; the two counts are independent, not a partition — a user whose requests that day used both kinds of credential counts in both. Mint events carry user but not surface attribution, so they count as observed auth activity on `user_id` and `rbac_group_id` cuts — attributed to the user the credential was provisioned for — but never on a cut that references `product` (group or filter). Date-range rollup mode (`starting_date`/`ending_date`) computes both fields exactly over the window — distinct users with at least one qualifying day — when the whole window starts on or after 2026-07-01, with the null-versus-0 and mint-event rules applying with the window in place of the day; a range starting earlier reports every managed-auth field as null, never a partial-window value.
534
535692 - `product: optional string or null`
536693
537694 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
from line 701
544701
545702 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
546703
547 - `read_call_count: optional number or null`
548
549 Number of connector tool calls on the requested day whose trusted read-only annotation marked them read-only. Call count, not distinct users. Every call recorded on a classified surface lands in exactly one of `read_call_count`, `write_call_count`, or `unclassified_call_count`, so the three sum to the day's classified calls. Classification is forward-only per surface: claude.ai from 2026-06-01, Claude Code from 2026-05-30, Claude in Office from 2026-05-29, Cowork from 2026-06-02 (Cowork clients predating annotation forwarding land in `unclassified_call_count`). Null, never 0, when the value cannot be stated: the read/write split is not enabled for this organization, or the day predates 2026-05-29. For a date-range total, sum the per-day values, but treat a window that extends before 2026-05-29 as null rather than summing only its covered days — date-range rollup mode (`starting_date`/`ending_date`) applies both rules server-side.
550
551 - `unclassified_call_count: optional number or null`
552
553 Number of connector tool calls on the requested day with no trusted read-only annotation — the annotation is optional in the MCP spec and is discarded when connector access controls are active, so unclassified calls are common. This field shows how much of the day's classified activity the read/write split actually covers. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
554
555704 - `user_id: optional string or null`
556705
557706 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
558
559 - `write_call_count: optional number or null`
560
561 Number of connector tool calls on the requested day whose trusted read-only annotation marked them not read-only. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
562707
563708### Beta Analytics Connector Chat Cowork Unified Chat Metrics
564709
from line 716
571716
572717 Same measure as `chat_metrics.distinct_conversation_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
573718
719### Beta Analytics Connector Chat Cowork Unified Metrics
720
721- `BetaAnalyticsConnectorChatCoworkUnifiedMetrics object`
722
723 A connector's use in Chat and Cowork unified on one day: `chat` holds its
724 use in chat conversations and `sessions` its use in Cowork sessions.
725
726 - `chat: BetaAnalyticsConnectorChatCoworkUnifiedChatMetrics`
727
728 A connector's use in chat conversations recorded while members had
729 Chat and Cowork unified turned on.
730
731 - `distinct_conversation_connector_used_count: number or null`
732
733 Same measure as `chat_metrics.distinct_conversation_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
734
735 - `sessions: BetaAnalyticsConnectorChatCoworkUnifiedSessionsMetrics`
736
737 A connector's use in Cowork sessions recorded while members had
738 Chat and Cowork unified turned on.
739
740 - `distinct_session_connector_used_count: number or null`
741
742 Same measure as `cowork_metrics.distinct_session_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
743
574744### Beta Analytics Connector Chat Cowork Unified Sessions Metrics
575745
576746- `BetaAnalyticsConnectorChatCoworkUnifiedSessionsMetrics object`
from line 782
612782
613783 Number of distinct Cowork sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
614784
785### Beta Analytics Connector Group By
786
787- `BetaAnalyticsConnectorGroupBy = "product" or "rbac_group_id" or "user_id"`
788
789 A dimension to group connector activity by.
790
791 - `"product"`
792
793 - `"rbac_group_id"`
794
795 - `"user_id"`
796
615797### Beta Analytics Connector Office Metrics
616798
617799- `BetaAnalyticsConnectorOfficeMetrics object`
from line 1272
10901272
10911273 Number of distinct connectors used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
10921274
1275 - `distinct_plugins_used_count: number or null`
1276
1277 Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
1278
10931279 - `distinct_session_count: number or null`
10941280
10951281 Number of distinct Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
from line 1284
10981284
10991285 Number of distinct skills used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
11001286
1287 - `edit_tool_count: number or null`
1288
1289 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
1290
1291 - `file_edit_count: number or null`
1292
1293 Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization.
1294
11011295 - `message_count: number`
11021296
11031297 Number of messages sent in Cowork sessions
11041298
1299 - `multi_edit_tool_count: number or null`
1300
1301 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
1302
1303 - `notebook_edit_tool_count: number or null`
1304
1305 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
1306
1307 - `plugins_used_count: number or null`
1308
1309 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
1310
1311 - `sessions_with_file_edits_count: number or null`
1312
1313 Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
1314
11051315 - `skills_used_count: number`
11061316
11071317 Total number of skill invocations in Cowork sessions
11081318
1109 - `distinct_plugins_used_count: optional number or null`
1110
1111 Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
1112
1113 - `edit_tool_count: optional number or null`
1114
1115 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
1116
1117 - `file_edit_count: optional number or null`
1118
1119 Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization.
1120
1121 - `multi_edit_tool_count: optional number or null`
1122
1123 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
1124
1125 - `notebook_edit_tool_count: optional number or null`
1126
1127 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
1128
1129 - `plugins_used_count: optional number or null`
1130
1131 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
1132
1133 - `sessions_with_file_edits_count: optional number or null`
1134
1135 Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
1136
1137 - `write_tool_count: optional number or null`
1319 - `write_tool_count: number or null`
11381320
11391321 Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
11401322
from line 1587
14051587 - `skills_used_count: number`
14061588
14071589 Number of skill invocations
1590
1591### Beta Analytics Order
1592
1593- `BetaAnalyticsOrder = "asc" or "desc"`
1594
1595 Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted.
1596
1597 - `"asc"`
1598
1599 - `"desc"`
14081600
14091601### Beta Analytics Plugin Activity
14101602
from line 1638
14461638
14471639 Number of plugin invocations on the requested day
14481640
1641 - `plugin_id: string or null`
1642
1643 Stable plugin identifier when available (e.g. `serena@claude-plugins-official`). Null for third-party Claude Code plugins (redacted at the source) and Cowork slash commands that carry only a hashed id.
1644
14491645 - `plugin_name: string`
14501646
14511647 Name of the plugin
14521648
1453 - `chat_cowork_unified_metrics: optional object or null`
1649 - `chat_cowork_unified_metrics: optional BetaAnalyticsPluginChatCoworkUnifiedMetrics or null`
14541650
14551651 Plugin use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified.
14561652
from line 1654
14581654
14591655 Same measure as `cowork_metrics.distinct_session_plugin_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Null on aggregated rows where a distinct count cannot be computed.
14601656
1461 - `plugin_id: optional string or null`
1462
1463 Stable plugin identifier when available (e.g. `serena@claude-plugins-official`). Null for third-party Claude Code plugins (redacted at the source) and Cowork slash commands that carry only a hashed id.
1464
14651657 - `product: optional string or null`
14661658
14671659 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
from line 1670
14781670
14791671 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
14801672
1673### Beta Analytics Plugin Chat Cowork Unified Metrics
1674
1675- `BetaAnalyticsPluginChatCoworkUnifiedMetrics object`
1676
1677 A plugin's use in Cowork sessions recorded while members had Chat
1678 and Cowork unified turned on.
1679
1680 - `distinct_session_plugin_used_count: number or null`
1681
1682 Same measure as `cowork_metrics.distinct_session_plugin_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Null on aggregated rows where a distinct count cannot be computed.
1683
14811684### Beta Analytics Plugin Claude Code Metrics
14821685
14831686- `BetaAnalyticsPluginClaudeCodeMetrics object`
from line 1701
14981701
14991702 Number of distinct Cowork sessions in which the plugin was invoked. Null on aggregated rows where a distinct count cannot be computed.
15001703
1704### Beta Analytics Plugin Group By
1705
1706- `BetaAnalyticsPluginGroupBy = "product" or "rbac_group_id" or "user_id"`
1707
1708 A dimension to group plugin activity by.
1709
1710 - `"product"`
1711
1712 - `"rbac_group_id"`
1713
1714 - `"user_id"`
1715
15011716### Beta Analytics Product Filter
15021717
15031718- `BetaAnalyticsProductFilter = "chat" or "chat_cowork_unified" or "claude-tag" or 5 more`
from line 1741
15261741
15271742 Per-project activity data for a given day.
15281743
1744 - `created_at: string or null`
1745
1746 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
1747
1748 format: date-time
1749
1750 - `created_by: BetaAnalyticsUser or null`
1751
1752 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
1753
1754 - `type: "user"`
1755
1756 Object type. Always `user`.
1757
1758 default: user
1759
1760 - `id: string`
1761
1762 Tagged user identifier (e.g. `user_...`)
1763
1764 - `email_address: string`
1765
1766 Email address of the user
1767
1768 - `distinct_conversation_count: number or null`
1769
1770 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
1771
15291772 - `distinct_user_count: number`
15301773
15311774 Number of distinct users who used the project on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values.
from line 1785
15421785
15431786 Name of the project
15441787
1545 - `created_at: optional string or null`
1546
1547 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
1788 - `rbac_group_id: optional string or null`
1789
1790 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.
1791
1792 - `rbac_group_name: optional string or null`
1793
1794 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
1795
1796 - `user_id: optional string or null`
1797
1798 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
1799
1800### Beta Analytics Project Group By
1801
1802- `BetaAnalyticsProjectGroupBy = "rbac_group_id" or "user_id"`
1803
1804 A dimension to group chat project activity by.
1805
1806 - `"rbac_group_id"`
1807
1808 - `"user_id"`
1809
1810### Beta Analytics Report User Actor
1811
1812- `BetaAnalyticsReportUserActor object`
1813
1814 - `type: "user_actor"`
1815
1816 Actor type. Always `"user_actor"`.
1817
1818 - `deleted: boolean`
1819
1820 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.
1821
1822 - `email_address: string or null`
1823
1824 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.
1825
1826 - `name: string or null`
1827
1828 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.
1829
1830 - `user_id: string`
1831
1832 Tagged user ID.
1833
1834### Beta Analytics Science Metrics
1835
1836- `BetaAnalyticsScienceMetrics object`
1837
1838 Claude Science activity metrics for a single user on a given day.
1839
1840 - `delegation_count: number`
1841
1842 Number of delegations (handoffs to a specialized agent) in Claude Science sessions
1843
1844 - `distinct_session_count: number or null`
1845
1846 Number of distinct Claude Science sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
1847
1848 - `message_count: number`
1849
1850 Number of messages sent in Claude Science sessions
1851
1852 - `remote_compute_job_count: number`
1853
1854 Number of remote compute jobs launched from Claude Science sessions
1855
1856 - `skills_used_count: number`
1857
1858 Total number of skill invocations in Claude Science sessions
1859
1860### Beta Analytics Server Tool Use
1861
1862- `BetaAnalyticsServerToolUse object`
1863
1864 - `web_search_requests: number`
1865
1866 The number of web search requests made.
1867
1868### Beta Analytics Service Account Actor
1869
1870- `BetaAnalyticsServiceAccountActor object`
1871
1872 - `type: "service_account_actor"`
1873
1874 - `service_account_id: string`
1875
1876 Tagged service account ID.
1877
1878### Beta Analytics Service Tier
1879
1880- `BetaAnalyticsServiceTier = "batch" or "flex" or "flex_discount" or 3 more`
1881
1882 - `"batch"`
1883
1884 - `"flex"`
1885
1886 - `"flex_discount"`
1887
1888 - `"priority"`
1889
1890 - `"priority_on_demand"`
1891
1892 - `"standard"`
1893
1894### Beta Analytics Single Day Activity Summary
1895
1896- `BetaAnalyticsSingleDayActivitySummary object`
1897
1898 Per-day entry in the /summaries response.
1899
1900 - `assigned_seat_count: number or null`
1901
1902 Number of seats currently assigned to members. Null when the response is scoped to an RBAC group — seat assignment is org-wide and has no per-group analogue.
1903
1904 - `cowork_daily_active_user_count: number`
1905
1906 Number of users with Cowork activity on the requested day
1907
1908 - `cowork_monthly_active_user_count: number`
1909
1910 Number of users with Cowork activity in the 30-day rolling window
1911
1912 - `cowork_weekly_active_user_count: number`
1913
1914 Number of users with Cowork activity in the 7-day rolling window
1915
1916 - `daily_active_user_count: number`
1917
1918 Number of users with token consumption on the requested day
1919
1920 - `daily_adoption_rate: number or null`
1921
1922 Percentage of assigned seats with activity on the requested day (`DAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group.
1923
1924 - `ending_at: string`
1925
1926 End of the aggregation period (exclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-16T00:00:00Z`).
15481927
15491928 format: date-time
15501929
1551 - `created_by: optional BetaAnalyticsUser or null`
1552
1553 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
1554
1555 - `type: "user"`
1556
1557 Object type. Always `user`.
1558
1559 default: user
1560
1561 - `id: string`
1562
1563 Tagged user identifier (e.g. `user_...`)
1564
1565 - `email_address: string`
1566
1567 Email address of the user
1568
1569 - `distinct_conversation_count: optional number or null`
1570
1571 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
1572
1573 - `product: optional string or null`
1574
1575 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
1576
1577 - `rbac_group_id: optional string or null`
1578
1579 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.
1580
1581 - `rbac_group_name: optional string or null`
1582
1583 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
1584
1585 - `user_id: optional string or null`
1586
1587 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
1588
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
1613### Beta Analytics Science Metrics
1614
1615- `BetaAnalyticsScienceMetrics object`
1616
1617 Claude Science activity metrics for a single user on a given day.
1618
1619 - `delegation_count: number`
1620
1621 Number of delegations (handoffs to a specialized agent) in Claude Science sessions
1622
1623 - `distinct_session_count: number or null`
1624
1625 Number of distinct Claude Science sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
1626
1627 - `message_count: number`
1628
1629 Number of messages sent in Claude Science sessions
1630
1631 - `remote_compute_job_count: number`
1632
1633 Number of remote compute jobs launched from Claude Science sessions
1634
1635 - `skills_used_count: number`
1636
1637 Total number of skill invocations in Claude Science sessions
1638
1639### Beta Analytics Server Tool Use
1640
1641- `BetaAnalyticsServerToolUse object`
1642
1643 - `web_search_requests: number`
1644
1645 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"`
1672
1673### Beta Analytics Single Day Activity Summary
1674
1675- `BetaAnalyticsSingleDayActivitySummary object`
1676
1677 Per-day entry in the /summaries response.
1678
1679 - `assigned_seat_count: number or null`
1680
1681 Number of seats currently assigned to members. Null when the response is scoped to an RBAC group — seat assignment is org-wide and has no per-group analogue.
1682
1683 - `cowork_daily_active_user_count: number`
1684
1685 Number of users with Cowork activity on the requested day
1686
1687 - `cowork_monthly_active_user_count: number`
1688
1689 Number of users with Cowork activity in the 30-day rolling window
1690
1691 - `cowork_weekly_active_user_count: number`
1692
1693 Number of users with Cowork activity in the 7-day rolling window
1694
1695 - `daily_active_user_count: number`
1696
1697 Number of users with token consumption on the requested day
1698
1699 - `daily_adoption_rate: number or null`
1700
1701 Percentage of assigned seats with activity on the requested day (`DAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group.
1702
1703 - `ending_at: string`
1704
1705 End of the aggregation period (exclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-16T00:00:00Z`).
1930 - `monthly_active_user_count: number`
1931
1932 Number of users with token consumption in the 30-day rolling window
1933
1934 - `monthly_adoption_rate: number or null`
1935
1936 Percentage of assigned seats with activity in the 30-day rolling window (`MAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group.
1937
1938 - `pending_invite_count: number or null`
1939
1940 Number of pending invitations to join the organization. Null when the response is scoped to an RBAC group.
1941
1942 - `starting_at: string`
1943
1944 Start of the aggregation period (inclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-15T00:00:00Z`).
17061945
17071946 format: date-time
17081947
1709 - `monthly_active_user_count: number`
1710
1711 Number of users with token consumption in the 30-day rolling window
1712
1713 - `monthly_adoption_rate: number or null`
1714
1715 Percentage of assigned seats with activity in the 30-day rolling window (`MAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group.
1716
1717 - `pending_invite_count: number or null`
1718
1719 Number of pending invitations to join the organization. Null when the response is scoped to an RBAC group.
1720
1721 - `starting_at: string`
1722
1723 Start of the aggregation period (inclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-15T00:00:00Z`).
1724
1725 format: date-time
1726
17271948 - `weekly_active_user_count: number`
17281949
17291950 Number of users with token consumption in the 7-day rolling window
from line 2035
18142035
18152036 Per-skill activity data for a given day.
18162037
2038 - `attributed_list_price: string or null`
2039
2040 List-price (rate-card) value of the member requests attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD), from Claude Code, Cowork, and Office Agent request-level attribution — the value of requests that involved the skill, not the skill's incremental cost. Unlike `estimated_overage_spend` this reflects usage value regardless of how it was funded — seat-covered usage counts — but it is undiscounted and does not tie to billed spend or the organization's spend reporting. claude.ai chat usage carries no request-level attribution and contributes nothing: the field is null on `chat` product rows and on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start), and on ungrouped rows it covers the Claude Code + Cowork + Office Agent share only (null when no attributable usage exists). Also null under the same conditions as `estimated_overage_spend` (spend reporting not enabled for this organization, `office_agent` product cuts before the 2026-06-18 data-start). "0" means attributable usage existed but none was attributed to this skill. Addable across days: date-range rollup mode returns the window's sum. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
2041
18172042 - `chat_metrics: BetaAnalyticsSkillChatMetrics`
18182043
18192044 Claude.ai activity metrics for a single skill on a given day.
from line 2063
18382063
18392064 Number of distinct Cowork 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.
18402065
2066 - `currency: string or null`
2067
2068 Currency for this row's monetary fields (`estimated_overage_spend` and `attributed_list_price`), as an uppercase ISO-4217 code. Always "USD" when either amount is populated; null whenever both amounts are null.
2069
18412070 - `distinct_user_count: number`
18422071
18432072 Number of distinct users who used the skill on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. 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.
18442073
2074 - `enable_count: number or null`
2075
2076 Distinct accounts that enabled this skill on the requested day (claude.ai only — the skill analog of plugin `install_count`). The count is org-wide: null when enable reporting is not enabled for this organization, or when the request scopes to `user_id` / `rbac_group_id` / `product` via `group_by[]` or `filter[]` (an org-wide count would be misleading on per-cut rows). A distinct count, not an event count: summing across days double-counts members who enable the skill on more than one day, so it is also null in date-range rollup mode (`starting_date`/`ending_date`).
2077
2078 - `estimated_overage_spend: string or null`
2079
2080 Estimated overage spend attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD; "1250" is $12.50, fractional cents possible) — an allocation of each member's daily post-discount, pre-credit metered overage spend (the same cost basis as the organization's spend reporting and the Cost & Usage API, so per-skill figures are directly comparable; spend with no skill attribution — including any member-day without skill invocations — is not represented, so skill rows sum to at most those totals) across the skills the member used. Overage only: usage covered by included seat allowances bills nothing and allocates $0 here — see `attributed_list_price` for the funding-independent usage-value companion. Claude Code, Cowork, and Office Agent spend use request-level skill attribution; claude.ai chat spend is approximated proportionally to skill-invoking messages. An estimate, not a billing number — and the cost of the requests/messages that involved the skill, not the skill's incremental cost (the same request would still have cost something without the skill active). "0" means no overage spend was attributed; null when spend reporting is not enabled for this organization, on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start). Addable across days: date-range rollup mode (`starting_date`/`ending_date`) returns the window's sum. With `group_by[]=user_id` each row carries the user's own attributed spend. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
2081
2082 - `invocation_count: number or null`
2083
2084 Total number of times this skill was invoked on the requested day (the skill analog of plugin `invocation_count`). Unlike `distinct_user_count` — which answers '\# of users' — this is the true '# of uses'. 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. Null when invocation reporting is not enabled for this organization. Sum across a date range for total uses in the window — date-range rollup mode (`starting_date`/`ending_date`) returns this sum directly.
2085
18452086 - `office_metrics: BetaAnalyticsSkillOfficeMetrics`
18462087
18472088 Office Agent activity metrics for a single skill on a given day, broken out by Office product.
from line 2107
18662107
18672108 Office Agent activity metrics for a single skill on a given day within one Office product.
18682109
2110 - `share_status: "organization" or "private" or "public" or null`
2111
2112 Skill share status (claude.ai only): one of `private`, `organization`, or `public`. Null for skills used only in Claude Code or Office (no per-skill share-status concept) and when share-status reporting is not yet available for the organization. Filterable via `filter[]=share_status:{value}`.
2113
2114 - `"organization"`
2115
2116 - `"private"`
2117
2118 - `"public"`
2119
2120 - `skill_display_name: string or null`
2121
2122 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills, whose user-defined names usage reports generally withhold). 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. For a member's own skill (private or personal-plugin) it is null, except when the skill's owner used it from Claude Code or Cowork in the requested period: then it shows the name that client reported at the time. Apart from that, the names of members' own skills are not disclosed to analytics-key holders. Also null for Anthropic-provided plugin skills (not resolved), for an organization skill or plugin whose name can no longer be found (for example, one since deleted), when `skill_name` is already a display name, or when display-name resolution is not enabled for this organization.
2123
18692124 - `skill_name: string`
18702125
18712126 Name of the skill
18722127
1873 - `attributed_list_price: optional string or null`
1874
1875 List-price (rate-card) value of the member requests attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD), from Claude Code, Cowork, and Office Agent request-level attribution — the value of requests that involved the skill, not the skill's incremental cost. Unlike `estimated_overage_spend` this reflects usage value regardless of how it was funded — seat-covered usage counts — but it is undiscounted and does not tie to billed spend or the organization's spend reporting. claude.ai chat usage carries no request-level attribution and contributes nothing: the field is null on `chat` product rows and on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start), and on ungrouped rows it covers the Claude Code + Cowork + Office Agent share only (null when no attributable usage exists). Also null under the same conditions as `estimated_overage_spend` (spend reporting not enabled for this organization, `office_agent` product cuts before the 2026-06-18 data-start). "0" means attributable usage existed but none was attributed to this skill. Addable across days: date-range rollup mode returns the window's sum. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
1876
1877 - `chat_cowork_unified_metrics: optional object or null`
2128 - `chat_cowork_unified_metrics: optional BetaAnalyticsSkillChatCoworkUnifiedMetrics or null`
18782129
18792130 Skill use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified.
18802131
from line 2147
18962147
18972148 Same measure as `cowork_metrics.distinct_session_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
18982149
1899 - `currency: optional string or null`
1900
1901 Currency for this row's monetary fields (`estimated_overage_spend` and `attributed_list_price`), as an uppercase ISO-4217 code. Always "USD" when either amount is populated; null whenever both amounts are null.
1902
1903 - `enable_count: optional number or null`
1904
1905 Distinct accounts that enabled this skill on the requested day (claude.ai only — the skill analog of plugin `install_count`). The count is org-wide: null when enable reporting is not enabled for this organization, or when the request scopes to `user_id` / `rbac_group_id` / `product` via `group_by[]` or `filter[]` (an org-wide count would be misleading on per-cut rows). A distinct count, not an event count: summing across days double-counts members who enable the skill on more than one day, so it is also null in date-range rollup mode (`starting_date`/`ending_date`).
1906
1907 - `estimated_overage_spend: optional string or null`
1908
1909 Estimated overage spend attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD; "1250" is $12.50, fractional cents possible) — an allocation of each member's daily post-discount, pre-credit metered overage spend (the same cost basis as the organization's spend reporting and the Cost & Usage API, so per-skill figures are directly comparable; spend with no skill attribution — including any member-day without skill invocations — is not represented, so skill rows sum to at most those totals) across the skills the member used. Overage only: usage covered by included seat allowances bills nothing and allocates $0 here — see `attributed_list_price` for the funding-independent usage-value companion. Claude Code, Cowork, and Office Agent spend use request-level skill attribution; claude.ai chat spend is approximated proportionally to skill-invoking messages. An estimate, not a billing number — and the cost of the requests/messages that involved the skill, not the skill's incremental cost (the same request would still have cost something without the skill active). "0" means no overage spend was attributed; null when spend reporting is not enabled for this organization, on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start). Addable across days: date-range rollup mode (`starting_date`/`ending_date`) returns the window's sum. With `group_by[]=user_id` each row carries the user's own attributed spend. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
1910
1911 - `invocation_count: optional number or null`
1912
1913 Total number of times this skill was invoked on the requested day (the skill analog of plugin `invocation_count`). Unlike `distinct_user_count` — which answers '\# of users' — this is the true '# of uses'. 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. Null when invocation reporting is not enabled for this organization. Sum across a date range for total uses in the window — date-range rollup mode (`starting_date`/`ending_date`) returns this sum directly.
1914
19152150 - `product: optional string or null`
19162151
19172152 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
from line 2158
19232158 - `rbac_group_name: optional string or null`
19242159
19252160 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
1926
1927 - `share_status: optional "organization" or "private" or "public" or null`
1928
1929 Skill share status (claude.ai only): one of `private`, `organization`, or `public`. Null for skills used only in Claude Code or Office (no per-skill share-status concept) and when share-status reporting is not yet available for the organization. Filterable via `filter[]=share_status:{value}`.
1930
1931 - `"organization"`
1932
1933 - `"private"`
1934
1935 - `"public"`
1936
1937 - `skill_display_name: optional string or null`
1938
1939 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills, whose user-defined names usage reports generally withhold). 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. For a member's own skill (private or personal-plugin) it is null, except when the skill's owner used it from Claude Code or Cowork in the requested period: then it shows the name that client reported at the time. Apart from that, the names of members' own skills are not disclosed to analytics-key holders. Also null for Anthropic-provided plugin skills (not resolved), for an organization skill or plugin whose name can no longer be found (for example, one since deleted), when `skill_name` is already a display name, or when display-name resolution is not enabled for this organization.
19402161
19412162 - `user_id: optional string or null`
19422163
from line 2174
19532174
19542175 Same measure as `chat_metrics.distinct_conversation_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
19552176
2177### Beta Analytics Skill Chat Cowork Unified Metrics
2178
2179- `BetaAnalyticsSkillChatCoworkUnifiedMetrics object`
2180
2181 A skill's use in Chat and Cowork unified on one day: `chat` holds its use
2182 in chat conversations and `sessions` its use in Cowork sessions.
2183
2184 - `chat: BetaAnalyticsSkillChatCoworkUnifiedChatMetrics`
2185
2186 A skill's use in chat conversations recorded while members had
2187 Chat and Cowork unified turned on.
2188
2189 - `distinct_conversation_skill_used_count: number or null`
2190
2191 Same measure as `chat_metrics.distinct_conversation_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
2192
2193 - `sessions: BetaAnalyticsSkillChatCoworkUnifiedSessionsMetrics`
2194
2195 A skill's use in Cowork sessions recorded while members had Chat
2196 and Cowork unified turned on.
2197
2198 - `distinct_session_skill_used_count: number or null`
2199
2200 Same measure as `cowork_metrics.distinct_session_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
2201
19562202### Beta Analytics Skill Chat Cowork Unified Sessions Metrics
19572203
19582204- `BetaAnalyticsSkillChatCoworkUnifiedSessionsMetrics object`
from line 2240
19942240
19952241 Number of distinct Cowork 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.
19962242
2243### Beta Analytics Skill Group By
2244
2245- `BetaAnalyticsSkillGroupBy = "product" or "rbac_group_id" or "user_id"`
2246
2247 A dimension to group skill activity by.
2248
2249 - `"product"`
2250
2251 - `"rbac_group_id"`
2252
2253 - `"user_id"`
2254
19972255### Beta Analytics Skill Office Metrics
19982256
19992257- `BetaAnalyticsSkillOfficeMetrics object`
from line 2938
26802938
26812939 Number of distinct connectors used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
26822940
2941 - `distinct_plugins_used_count: number or null`
2942
2943 Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
2944
26832945 - `distinct_session_count: number or null`
26842946
26852947 Number of distinct Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
from line 2950
26882950
26892951 Number of distinct skills used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
26902952
2953 - `edit_tool_count: number or null`
2954
2955 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
2956
2957 - `file_edit_count: number or null`
2958
2959 Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization.
2960
26912961 - `message_count: number`
26922962
26932963 Number of messages sent in Cowork sessions
26942964
2965 - `multi_edit_tool_count: number or null`
2966
2967 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
2968
2969 - `notebook_edit_tool_count: number or null`
2970
2971 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
2972
2973 - `plugins_used_count: number or null`
2974
2975 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
2976
2977 - `sessions_with_file_edits_count: number or null`
2978
2979 Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
2980
26952981 - `skills_used_count: number`
26962982
26972983 Total number of skill invocations in Cowork sessions
26982984
2699 - `distinct_plugins_used_count: optional number or null`
2700
2701 Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
2702
2703 - `edit_tool_count: optional number or null`
2704
2705 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
2706
2707 - `file_edit_count: optional number or null`
2708
2709 Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization.
2710
2711 - `multi_edit_tool_count: optional number or null`
2712
2713 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
2714
2715 - `notebook_edit_tool_count: optional number or null`
2716
2717 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
2718
2719 - `plugins_used_count: optional number or null`
2720
2721 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
2722
2723 - `sessions_with_file_edits_count: optional number or null`
2724
2725 Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
2726
2727 - `write_tool_count: optional number or null`
2985 - `write_tool_count: number or null`
27282986
27292987 Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
27302988
from line 3006
27483006
27493007 Number of messages sent in Claude Design sessions
27503008
3009 - `distinct_user_count: number or null`
3010
3011 Number of distinct active users represented by this row. Only set for grouped rollups (`group_by[]`); null for per-user rows. In date-range mode, recomputed as an exact distinct count of the group's active members over the requested window, never a sum of per-day values.
3012
27513013 - `office_metrics: BetaAnalyticsOfficeMetrics`
27523014
27533015 Office Agent activity metrics for a single user on a given day, broken out by Office product.
from line 3078
28163078
28173079 Total number of skill invocations in Claude Science sessions
28183080
3081 - `user: BetaAnalyticsUser or null`
3082
3083 The user this row describes. Null on rows aggregated across users.
3084
3085 - `type: "user"`
3086
3087 Object type. Always `user`.
3088
3089 default: user
3090
3091 - `id: string`
3092
3093 Tagged user identifier (e.g. `user_...`)
3094
3095 - `email_address: string`
3096
3097 Email address of the user
3098
28193099 - `web_search_count: number`
28203100
28213101 Number of web searches performed
28223102
2823 - `chat_cowork_unified_metrics: optional object or null`
3103 - `chat_cowork_unified_metrics: optional BetaAnalyticsChatCoworkUnifiedMetrics or null`
28243104
28253105 Activity recorded while the member had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into `chat` (chat activity) and `sessions` (Cowork activity). Omitted from the response on deployments that do not offer Chat and Cowork unified.
28263106
from line 3230
29503230
29513231 Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
29523232
2953 - `distinct_user_count: optional number or null`
2954
2955 Number of distinct active users represented by this row. Only set for grouped rollups (`group_by[]`); null for per-user rows. In date-range mode, recomputed as an exact distinct count of the group's active members over the requested window, never a sum of per-day values.
2956
29573233 - `last_activity_date: optional string or null`
29583234
29593235 Most recent UTC day (YYYY-MM-DD) on which the user had any counted activity, within the requested window: equal to the requested `date` in single-day mode, and to the latest active day from `starting_date` (inclusive) to `ending_date` (exclusive) in date-range rollup mode — never a day earlier than the window start. On filtered requests (`filter[]`) only days matching the filter count: with `filter[]=rbac_group_id:{id}` it is the last day the user was active while a member of that group, consistent with the row's other metrics. On grouped (`group_by[]`) rows it is the latest day any member of the group was active (the requested `date` in single-day mode). Omitted from the response while last-activity reporting is not enabled for this organization.
from line 3244
29683244
29693245 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
29703246
2971 - `user: optional BetaAnalyticsUser or null`
2972
2973 The user this row describes. Null on rows aggregated across users.
2974
2975 - `type: "user"`
2976
2977 Object type. Always `user`.
2978
2979 default: user
2980
2981 - `id: string`
2982
2983 Tagged user identifier (e.g. `user_...`)
2984
2985 - `email_address: string`
2986
2987 Email address of the user
2988
29893247### Beta Analytics User Actor
29903248
29913249- `BetaAnalyticsUserActor object`
from line 3267
30093267 - `user_id: string`
30103268
30113269 Tagged user ID.
3270
3271### Beta Analytics User Group By
3272
3273- `BetaAnalyticsUserGroupBy = "rbac_group_id"`
3274
3275 A dimension to group user activity by.
30123276
30133277## Analytics › Summaries
30143278
from line 3559
32953559
32963560 maxItems: 100
32973561
3298- `group_by: optional array of "rbac_group_id"`
3562- `group_by: optional array of BetaAnalyticsUserGroupBy`
32993563
33003564 Dimensions to break results out by (e.g. `group_by[]=rbac_group_id`). Supported on this endpoint: `rbac_group_id`. Rows are already per-member, so the one supported grouping aggregates them per RBAC group instead. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries.
33013565
from line 3571
33073571
33083572 minimum: 1, maximum: 1000
33093573
3310- `order: optional "asc" or "desc"`
3574- `order: optional BetaAnalyticsOrder`
33113575
33123576 Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted.
33133577
from line 3745
34813745
34823746 Number of distinct connectors used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
34833747
3748 - `distinct_plugins_used_count: number or null`
3749
3750 Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
3751
34843752 - `distinct_session_count: number or null`
34853753
34863754 Number of distinct Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
from line 3757
34893757
34903758 Number of distinct skills used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
34913759
3760 - `edit_tool_count: number or null`
3761
3762 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
3763
3764 - `file_edit_count: number or null`
3765
3766 Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization.
3767
34923768 - `message_count: number`
34933769
34943770 Number of messages sent in Cowork sessions
34953771
3772 - `multi_edit_tool_count: number or null`
3773
3774 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
3775
3776 - `notebook_edit_tool_count: number or null`
3777
3778 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
3779
3780 - `plugins_used_count: number or null`
3781
3782 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
3783
3784 - `sessions_with_file_edits_count: number or null`
3785
3786 Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
3787
34963788 - `skills_used_count: number`
34973789
34983790 Total number of skill invocations in Cowork sessions
34993791
3500 - `distinct_plugins_used_count: optional number or null`
3501
3502 Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
3503
3504 - `edit_tool_count: optional number or null`
3505
3506 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
3507
3508 - `file_edit_count: optional number or null`
3509
3510 Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization.
3511
3512 - `multi_edit_tool_count: optional number or null`
3513
3514 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
3515
3516 - `notebook_edit_tool_count: optional number or null`
3517
3518 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
3519
3520 - `plugins_used_count: optional number or null`
3521
3522 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
3523
3524 - `sessions_with_file_edits_count: optional number or null`
3525
3526 Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
3527
3528 - `write_tool_count: optional number or null`
3792 - `write_tool_count: number or null`
35293793
35303794 Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
35313795
from line 3813
35493813
35503814 Number of messages sent in Claude Design sessions
35513815
3816 - `distinct_user_count: number or null`
3817
3818 Number of distinct active users represented by this row. Only set for grouped rollups (`group_by[]`); null for per-user rows. In date-range mode, recomputed as an exact distinct count of the group's active members over the requested window, never a sum of per-day values.
3819
35523820 - `office_metrics: BetaAnalyticsOfficeMetrics`
35533821
35543822 Office Agent activity metrics for a single user on a given day, broken out by Office product.
from line 3885
36173885
36183886 Total number of skill invocations in Claude Science sessions
36193887
3888 - `user: BetaAnalyticsUser or null`
3889
3890 The user this row describes. Null on rows aggregated across users.
3891
3892 - `type: "user"`
3893
3894 Object type. Always `user`.
3895
3896 default: user
3897
3898 - `id: string`
3899
3900 Tagged user identifier (e.g. `user_...`)
3901
3902 - `email_address: string`
3903
3904 Email address of the user
3905
36203906 - `web_search_count: number`
36213907
36223908 Number of web searches performed
36233909
3624 - `chat_cowork_unified_metrics: optional object or null`
3910 - `chat_cowork_unified_metrics: optional BetaAnalyticsChatCoworkUnifiedMetrics or null`
36253911
36263912 Activity recorded while the member had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into `chat` (chat activity) and `sessions` (Cowork activity). Omitted from the response on deployments that do not offer Chat and Cowork unified.
36273913
from line 4037
37514037
37524038 Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
37534039
3754 - `distinct_user_count: optional number or null`
3755
3756 Number of distinct active users represented by this row. Only set for grouped rollups (`group_by[]`); null for per-user rows. In date-range mode, recomputed as an exact distinct count of the group's active members over the requested window, never a sum of per-day values.
3757
37584040 - `last_activity_date: optional string or null`
37594041
37604042 Most recent UTC day (YYYY-MM-DD) on which the user had any counted activity, within the requested window: equal to the requested `date` in single-day mode, and to the latest active day from `starting_date` (inclusive) to `ending_date` (exclusive) in date-range rollup mode — never a day earlier than the window start. On filtered requests (`filter[]`) only days matching the filter count: with `filter[]=rbac_group_id:{id}` it is the last day the user was active while a member of that group, consistent with the row's other metrics. On grouped (`group_by[]`) rows it is the latest day any member of the group was active (the requested `date` in single-day mode). Omitted from the response while last-activity reporting is not enabled for this organization.
from line 4050
37684050 - `rbac_group_name: optional string or null`
37694051
37704052 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
3771
3772 - `user: optional BetaAnalyticsUser or null`
3773
3774 The user this row describes. Null on rows aggregated across users.
3775
3776 - `type: "user"`
3777
3778 Object type. Always `user`.
3779
3780 default: user
3781
3782 - `id: string`
3783
3784 Tagged user identifier (e.g. `user_...`)
3785
3786 - `email_address: string`
3787
3788 Email address of the user
37894053
37904054- `next_page: string or null`
37914055
from line 4119
38554119 "connectors_used_count": 0,
38564120 "dispatch_turn_count": 0,
38574121 "distinct_connectors_used_count": 0,
4122 "distinct_plugins_used_count": 0,
38584123 "distinct_session_count": 0,
38594124 "distinct_skills_used_count": 0,
3860 "message_count": 0,
3861 "skills_used_count": 0,
3862 "distinct_plugins_used_count": 0,
38634125 "edit_tool_count": 0,
38644126 "file_edit_count": 0,
4127 "message_count": 0,
38654128 "multi_edit_tool_count": 0,
38664129 "notebook_edit_tool_count": 0,
38674130 "plugins_used_count": 0,
38684131 "sessions_with_file_edits_count": 0,
4132 "skills_used_count": 0,
38694133 "write_tool_count": 0
38704134 },
38714135 "design_metrics": {
from line 4138
38744138 "distinct_session_count": 0,
38754139 "message_count": 0
38764140 },
4141 "distinct_user_count": 0,
38774142 "office_metrics": {
38784143 "excel": {
38794144 "connectors_used_count": 0,
from line 4180
39154180 "remote_compute_job_count": 0,
39164181 "skills_used_count": 0
39174182 },
4183 "user": {
4184 "id": "id",
4185 "email_address": "email_address",
4186 "type": "user"
4187 },
39184188 "web_search_count": 0,
39194189 "chat_cowork_unified_metrics": {
39204190 "chat": {
from line 4221
39514221 "write_tool_count": 0
39524222 }
39534223 },
3954 "distinct_user_count": 0,
39554224 "last_activity_date": "2019-12-27",
39564225 "rbac_group_id": "rbac_group_id",
3957 "rbac_group_name": "rbac_group_name",
3958 "user": {
3959 "id": "id",
3960 "email_address": "email_address",
3961 "type": "user"
3962 }
4226 "rbac_group_name": "rbac_group_name"
39634227 }
39644228 ],
39654229 "next_page": "next_page"
from line 4264
40004264
40014265 maxItems: 100
40024266
4003- `group_by: optional array of "rbac_group_id" or "user_id"`
4267- `group_by: optional array of BetaAnalyticsProjectGroupBy`
40044268
40054269 Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries.
40064270
from line 4280
40164280
40174281 minimum: 1, maximum: 1000
40184282
4019- `order: optional "asc" or "desc"`
4283- `order: optional BetaAnalyticsOrder`
40204284
40214285 Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted.
40224286
from line 4314
40504314
40514315- `data: array of BetaAnalyticsProjectActivity`
40524316
4317 - `created_at: string or null`
4318
4319 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
4320
4321 format: date-time
4322
4323 - `created_by: BetaAnalyticsUser or null`
4324
4325 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
4326
4327 - `type: "user"`
4328
4329 Object type. Always `user`.
4330
4331 default: user
4332
4333 - `id: string`
4334
4335 Tagged user identifier (e.g. `user_...`)
4336
4337 - `email_address: string`
4338
4339 Email address of the user
4340
4341 - `distinct_conversation_count: number or null`
4342
4343 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
4344
40534345 - `distinct_user_count: number`
40544346
40554347 Number of distinct users who used the project on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values.
from line 4357
40654357 - `project_name: string`
40664358
40674359 Name of the project
4068
4069 - `created_at: optional string or null`
4070
4071 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
4072
4073 format: date-time
4074
4075 - `created_by: optional BetaAnalyticsUser or null`
4076
4077 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
4078
4079 - `type: "user"`
4080
4081 Object type. Always `user`.
4082
4083 default: user
4084
4085 - `id: string`
4086
4087 Tagged user identifier (e.g. `user_...`)
4088
4089 - `email_address: string`
4090
4091 Email address of the user
4092
4093 - `distinct_conversation_count: optional number or null`
4094
4095 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
4096
4097 - `product: optional string or null`
4098
4099 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
41004360
41014361 - `rbac_group_id: optional string or null`
41024362
from line 4388
41284388{
41294389 "data": [
41304390 {
4131 "distinct_user_count": 0,
4132 "message_count": 0,
4133 "project_id": "project_id",
4134 "project_name": "project_name",
41354391 "created_at": "2019-12-27T18:11:19.117Z",
41364392 "created_by": {
41374393 "id": "id",
from line 4395
41394395 "type": "user"
41404396 },
41414397 "distinct_conversation_count": 0,
4142 "product": "product",
4398 "distinct_user_count": 0,
4399 "message_count": 0,
4400 "project_id": "project_id",
4401 "project_name": "project_name",
41434402 "rbac_group_id": "rbac_group_id",
41444403 "rbac_group_name": "rbac_group_name",
41454404 "user_id": "user_id"
from line 4445
41864445
41874446 maxItems: 100
41884447
4189- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
4448- `group_by: optional array of BetaAnalyticsConnectorGroupBy`
41904449
41914450 Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries.
41924451
from line 4463
42044463
42054464 minimum: 1, maximum: 1000
42064465
4207- `order: optional "asc" or "desc"`
4466- `order: optional BetaAnalyticsOrder`
42084467
42094468 Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted.
42104469
from line 4513
42544513
42554514 Number of distinct Claude Code sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
42564515
4516 - `connector_display_name: string or null`
4517
4518 Human-readable display name for rows whose `connector_name` is an opaque connector id rather than a readable name, resolved at request time from the organization's connectors (including connectors that have since been removed). `connector_name` remains the row's stable key for sorting and pagination, and `filter[]=connector_name:{value}` also matches these rows by display name. Display names are not unique, and the same connector's claude.ai usage can appear under a separate row with a readable `connector_name`. Null when `connector_name` is already a readable name, when the id cannot be resolved to one of the organization's connectors, or when display-name resolution is not enabled for this organization.
4519
42574520 - `connector_name: string`
42584521
42594522 Name of the connector. Some rows carry an opaque connector id here instead of a readable name; `connector_display_name` holds the resolved name for those rows.
from line 4533
42704533
42714534 Number of distinct users who used the connector on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values.
42724535
4536 - `individual_auth_distinct_user_count: number or null`
4537
4538 Number of distinct users whose use of this connector on the requested day ran on their own individual credential, connected through their own consent flow. Companion bucket to `managed_auth_distinct_user_count`, which carries the measurement, attribution, and null rules. Users whose requests used no stored credential count in neither bucket.
4539
4540 - `managed_auth_distinct_user_count: number or null`
4541
4542 Number of distinct users whose use of this connector on the requested day ran on Enterprise Managed Auth (an organization-managed credential provisioned through the organization's identity provider), read from the token record each request used. Null, never 0, when managed-auth reporting is not enabled for the organization, the value cannot be attributed to the row, no credentialed requests and no managed-token mint events (a managed credential being provisioned for a user's use of the connector) were observed that day, or the day predates 2026-07-01, the first day the backing data exists (forward-only data, no backfill). When credentialed requests or mint events were observed and attributed, both managed-auth fields populate, reporting 0 for a bucket with no users; the two counts are independent, not a partition — a user whose requests that day used both kinds of credential counts in both. Mint events carry user but not surface attribution, so they count as observed auth activity on `user_id` and `rbac_group_id` cuts — attributed to the user the credential was provisioned for — but never on a cut that references `product` (group or filter). Date-range rollup mode (`starting_date`/`ending_date`) computes both fields exactly over the window — distinct users with at least one qualifying day — when the whole window starts on or after 2026-07-01, with the null-versus-0 and mint-event rules applying with the window in place of the day; a range starting earlier reports every managed-auth field as null, never a partial-window value.
4543
42734544 - `office_metrics: BetaAnalyticsConnectorOfficeMetrics`
42744545
42754546 Office Agent activity metrics for a single connector on a given day, broken out by Office product.
from line 4565
42944565
42954566 Office Agent activity metrics for a single connector on a given day within one Office product.
42964567
4297 - `chat_cowork_unified_metrics: optional object or null`
4568 - `read_call_count: number or null`
4569
4570 Number of connector tool calls on the requested day whose trusted read-only annotation marked them read-only. Call count, not distinct users. Every call recorded on a classified surface lands in exactly one of `read_call_count`, `write_call_count`, or `unclassified_call_count`, so the three sum to the day's classified calls. Classification is forward-only per surface: claude.ai from 2026-06-01, Claude Code from 2026-05-30, Claude in Office from 2026-05-29, Cowork from 2026-06-02 (Cowork clients predating annotation forwarding land in `unclassified_call_count`). Null, never 0, when the value cannot be stated: the read/write split is not enabled for this organization, or the day predates 2026-05-29. For a date-range total, sum the per-day values, but treat a window that extends before 2026-05-29 as null rather than summing only its covered days — date-range rollup mode (`starting_date`/`ending_date`) applies both rules server-side.
4571
4572 - `unclassified_call_count: number or null`
4573
4574 Number of connector tool calls on the requested day with no trusted read-only annotation — the annotation is optional in the MCP spec and is discarded when connector access controls are active, so unclassified calls are common. This field shows how much of the day's classified activity the read/write split actually covers. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
4575
4576 - `write_call_count: number or null`
4577
4578 Number of connector tool calls on the requested day whose trusted read-only annotation marked them not read-only. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
4579
4580 - `chat_cowork_unified_metrics: optional BetaAnalyticsConnectorChatCoworkUnifiedMetrics or null`
42984581
42994582 Connector use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified.
43004583
from line 4599
43164599
43174600 Same measure as `cowork_metrics.distinct_session_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
43184601
4319 - `connector_display_name: optional string or null`
4320
4321 Human-readable display name for rows whose `connector_name` is an opaque connector id rather than a readable name, resolved at request time from the organization's connectors (including connectors that have since been removed). `connector_name` remains the row's stable key for sorting and pagination, and `filter[]=connector_name:{value}` also matches these rows by display name. Display names are not unique, and the same connector's claude.ai usage can appear under a separate row with a readable `connector_name`. Null when `connector_name` is already a readable name, when the id cannot be resolved to one of the organization's connectors, or when display-name resolution is not enabled for this organization.
4322
4323 - `individual_auth_distinct_user_count: optional number or null`
4324
4325 Number of distinct users whose use of this connector on the requested day ran on their own individual credential, connected through their own consent flow. Companion bucket to `managed_auth_distinct_user_count`, which carries the measurement, attribution, and null rules. Users whose requests used no stored credential count in neither bucket.
4326
4327 - `managed_auth_distinct_user_count: optional number or null`
4328
4329 Number of distinct users whose use of this connector on the requested day ran on Enterprise Managed Auth (an organization-managed credential provisioned through the organization's identity provider), read from the token record each request used. Null, never 0, when managed-auth reporting is not enabled for the organization, the value cannot be attributed to the row, no credentialed requests and no managed-token mint events (a managed credential being provisioned for a user's use of the connector) were observed that day, or the day predates 2026-07-01, the first day the backing data exists (forward-only data, no backfill). When credentialed requests or mint events were observed and attributed, both managed-auth fields populate, reporting 0 for a bucket with no users; the two counts are independent, not a partition — a user whose requests that day used both kinds of credential counts in both. Mint events carry user but not surface attribution, so they count as observed auth activity on `user_id` and `rbac_group_id` cuts — attributed to the user the credential was provisioned for — but never on a cut that references `product` (group or filter). Date-range rollup mode (`starting_date`/`ending_date`) computes both fields exactly over the window — distinct users with at least one qualifying day — when the whole window starts on or after 2026-07-01, with the null-versus-0 and mint-event rules applying with the window in place of the day; a range starting earlier reports every managed-auth field as null, never a partial-window value.
4330
43314602 - `product: optional string or null`
43324603
43334604 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
from line 4611
43404611
43414612 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
43424613
4343 - `read_call_count: optional number or null`
4344
4345 Number of connector tool calls on the requested day whose trusted read-only annotation marked them read-only. Call count, not distinct users. Every call recorded on a classified surface lands in exactly one of `read_call_count`, `write_call_count`, or `unclassified_call_count`, so the three sum to the day's classified calls. Classification is forward-only per surface: claude.ai from 2026-06-01, Claude Code from 2026-05-30, Claude in Office from 2026-05-29, Cowork from 2026-06-02 (Cowork clients predating annotation forwarding land in `unclassified_call_count`). Null, never 0, when the value cannot be stated: the read/write split is not enabled for this organization, or the day predates 2026-05-29. For a date-range total, sum the per-day values, but treat a window that extends before 2026-05-29 as null rather than summing only its covered days — date-range rollup mode (`starting_date`/`ending_date`) applies both rules server-side.
4346
4347 - `unclassified_call_count: optional number or null`
4348
4349 Number of connector tool calls on the requested day with no trusted read-only annotation — the annotation is optional in the MCP spec and is discarded when connector access controls are active, so unclassified calls are common. This field shows how much of the day's classified activity the read/write split actually covers. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
4350
43514614 - `user_id: optional string or null`
43524615
43534616 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
4354
4355 - `write_call_count: optional number or null`
4356
4357 Number of connector tool calls on the requested day whose trusted read-only annotation marked them not read-only. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance.
43584617
43594618- `next_page: string or null`
43604619
from line 4639
43804639 "claude_code_metrics": {
43814640 "distinct_session_connector_used_count": 0
43824641 },
4642 "connector_display_name": "connector_display_name",
43834643 "connector_name": "connector_name",
43844644 "cowork_metrics": {
43854645 "distinct_session_connector_used_count": 0
43864646 },
43874647 "distinct_user_count": 0,
4648 "individual_auth_distinct_user_count": 0,
4649 "managed_auth_distinct_user_count": 0,
43884650 "office_metrics": {
43894651 "excel": {
43904652 "distinct_session_connector_used_count": 0
from line 4661
43994661 "distinct_session_connector_used_count": 0
44004662 }
44014663 },
4664 "read_call_count": 0,
4665 "unclassified_call_count": 0,
4666 "write_call_count": 0,
44024667 "chat_cowork_unified_metrics": {
44034668 "chat": {
44044669 "distinct_conversation_connector_used_count": 0
from line 4672
44074672 "distinct_session_connector_used_count": 0
44084673 }
44094674 },
4410 "connector_display_name": "connector_display_name",
4411 "individual_auth_distinct_user_count": 0,
4412 "managed_auth_distinct_user_count": 0,
44134675 "product": "product",
44144676 "rbac_group_id": "rbac_group_id",
44154677 "rbac_group_name": "rbac_group_name",
4416 "read_call_count": 0,
4417 "unclassified_call_count": 0,
4418 "user_id": "user_id",
4419 "write_call_count": 0
4678 "user_id": "user_id"
44204679 }
44214680 ],
44224681 "next_page": "next_page"
from line 4722
44634722
44644723 maxItems: 100
44654724
4466- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
4725- `group_by: optional array of BetaAnalyticsPluginGroupBy`
44674726
44684727 Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. On this endpoint `product` takes the values `chat_cowork_unified`, `claude_code`, or `cowork` only (the surfaces with plugin attribution). Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries.
44694728
from line 4740
44814740
44824741 minimum: 1, maximum: 1000
44834742
4484- `order: optional "asc" or "desc"`
4743- `order: optional BetaAnalyticsOrder`
44854744
44864745 Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted.
44874746
from line 4802
45434802
45444803 Number of plugin invocations on the requested day
45454804
4805 - `plugin_id: string or null`
4806
4807 Stable plugin identifier when available (e.g. `serena@claude-plugins-official`). Null for third-party Claude Code plugins (redacted at the source) and Cowork slash commands that carry only a hashed id.
4808
45464809 - `plugin_name: string`
45474810
45484811 Name of the plugin
45494812
4550 - `chat_cowork_unified_metrics: optional object or null`
4813 - `chat_cowork_unified_metrics: optional BetaAnalyticsPluginChatCoworkUnifiedMetrics or null`
45514814
45524815 Plugin use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified.
45534816
45544817 - `distinct_session_plugin_used_count: number or null`
45554818
45564819 Same measure as `cowork_metrics.distinct_session_plugin_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Null on aggregated rows where a distinct count cannot be computed.
4557
4558 - `plugin_id: optional string or null`
4559
4560 Stable plugin identifier when available (e.g. `serena@claude-plugins-official`). Null for third-party Claude Code plugins (redacted at the source) and Cowork slash commands that carry only a hashed id.
45614820
45624821 - `product: optional string or null`
45634822
from line 4861
46024861 "distinct_user_count": 0,
46034862 "install_count": 0,
46044863 "invocation_count": 0,
4864 "plugin_id": "plugin_id",
46054865 "plugin_name": "plugin_name",
46064866 "chat_cowork_unified_metrics": {
46074867 "distinct_session_plugin_used_count": 0
46084868 },
4609 "plugin_id": "plugin_id",
46104869 "product": "product",
46114870 "rbac_group_id": "rbac_group_id",
46124871 "rbac_group_name": "rbac_group_name",
from line 4911
46524911
46534912 maxItems: 100
46544913
4655- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
4914- `group_by: optional array of BetaAnalyticsSkillGroupBy`
46564915
46574916 Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries.
46584917
from line 4929
46704929
46714930 minimum: 1, maximum: 1000
46724931
4673- `order: optional "asc" or "desc"`
4932- `order: optional BetaAnalyticsOrder`
46744933
46754934 Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted.
46764935
from line 4963
47044963
47054964- `data: array of BetaAnalyticsSkillActivity`
47064965
4966 - `attributed_list_price: string or null`
4967
4968 List-price (rate-card) value of the member requests attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD), from Claude Code, Cowork, and Office Agent request-level attribution — the value of requests that involved the skill, not the skill's incremental cost. Unlike `estimated_overage_spend` this reflects usage value regardless of how it was funded — seat-covered usage counts — but it is undiscounted and does not tie to billed spend or the organization's spend reporting. claude.ai chat usage carries no request-level attribution and contributes nothing: the field is null on `chat` product rows and on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start), and on ungrouped rows it covers the Claude Code + Cowork + Office Agent share only (null when no attributable usage exists). Also null under the same conditions as `estimated_overage_spend` (spend reporting not enabled for this organization, `office_agent` product cuts before the 2026-06-18 data-start). "0" means attributable usage existed but none was attributed to this skill. Addable across days: date-range rollup mode returns the window's sum. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
4969
47074970 - `chat_metrics: BetaAnalyticsSkillChatMetrics`
47084971
47094972 Claude.ai activity metrics for a single skill on a given day.
from line 4991
47284991
47294992 Number of distinct Cowork 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.
47304993
4994 - `currency: string or null`
4995
4996 Currency for this row's monetary fields (`estimated_overage_spend` and `attributed_list_price`), as an uppercase ISO-4217 code. Always "USD" when either amount is populated; null whenever both amounts are null.
4997
47314998 - `distinct_user_count: number`
47324999
47335000 Number of distinct users who used the skill on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. 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.
47345001
5002 - `enable_count: number or null`
5003
5004 Distinct accounts that enabled this skill on the requested day (claude.ai only — the skill analog of plugin `install_count`). The count is org-wide: null when enable reporting is not enabled for this organization, or when the request scopes to `user_id` / `rbac_group_id` / `product` via `group_by[]` or `filter[]` (an org-wide count would be misleading on per-cut rows). A distinct count, not an event count: summing across days double-counts members who enable the skill on more than one day, so it is also null in date-range rollup mode (`starting_date`/`ending_date`).
5005
5006 - `estimated_overage_spend: string or null`
5007
5008 Estimated overage spend attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD; "1250" is $12.50, fractional cents possible) — an allocation of each member's daily post-discount, pre-credit metered overage spend (the same cost basis as the organization's spend reporting and the Cost & Usage API, so per-skill figures are directly comparable; spend with no skill attribution — including any member-day without skill invocations — is not represented, so skill rows sum to at most those totals) across the skills the member used. Overage only: usage covered by included seat allowances bills nothing and allocates $0 here — see `attributed_list_price` for the funding-independent usage-value companion. Claude Code, Cowork, and Office Agent spend use request-level skill attribution; claude.ai chat spend is approximated proportionally to skill-invoking messages. An estimate, not a billing number — and the cost of the requests/messages that involved the skill, not the skill's incremental cost (the same request would still have cost something without the skill active). "0" means no overage spend was attributed; null when spend reporting is not enabled for this organization, on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start). Addable across days: date-range rollup mode (`starting_date`/`ending_date`) returns the window's sum. With `group_by[]=user_id` each row carries the user's own attributed spend. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
5009
5010 - `invocation_count: number or null`
5011
5012 Total number of times this skill was invoked on the requested day (the skill analog of plugin `invocation_count`). Unlike `distinct_user_count` — which answers '\# of users' — this is the true '# of uses'. 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. Null when invocation reporting is not enabled for this organization. Sum across a date range for total uses in the window — date-range rollup mode (`starting_date`/`ending_date`) returns this sum directly.
5013
47355014 - `office_metrics: BetaAnalyticsSkillOfficeMetrics`
47365015
47375016 Office Agent activity metrics for a single skill on a given day, broken out by Office product.
from line 5035
47565035
47575036 Office Agent activity metrics for a single skill on a given day within one Office product.
47585037
5038 - `share_status: "organization" or "private" or "public" or null`
5039
5040 Skill share status (claude.ai only): one of `private`, `organization`, or `public`. Null for skills used only in Claude Code or Office (no per-skill share-status concept) and when share-status reporting is not yet available for the organization. Filterable via `filter[]=share_status:{value}`.
5041
5042 - `"organization"`
5043
5044 - `"private"`
5045
5046 - `"public"`
5047
5048 - `skill_display_name: string or null`
5049
5050 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills, whose user-defined names usage reports generally withhold). 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. For a member's own skill (private or personal-plugin) it is null, except when the skill's owner used it from Claude Code or Cowork in the requested period: then it shows the name that client reported at the time. Apart from that, the names of members' own skills are not disclosed to analytics-key holders. Also null for Anthropic-provided plugin skills (not resolved), for an organization skill or plugin whose name can no longer be found (for example, one since deleted), when `skill_name` is already a display name, or when display-name resolution is not enabled for this organization.
5051
47595052 - `skill_name: string`
47605053
47615054 Name of the skill
47625055
4763 - `attributed_list_price: optional string or null`
4764
4765 List-price (rate-card) value of the member requests attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD), from Claude Code, Cowork, and Office Agent request-level attribution — the value of requests that involved the skill, not the skill's incremental cost. Unlike `estimated_overage_spend` this reflects usage value regardless of how it was funded — seat-covered usage counts — but it is undiscounted and does not tie to billed spend or the organization's spend reporting. claude.ai chat usage carries no request-level attribution and contributes nothing: the field is null on `chat` product rows and on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start), and on ungrouped rows it covers the Claude Code + Cowork + Office Agent share only (null when no attributable usage exists). Also null under the same conditions as `estimated_overage_spend` (spend reporting not enabled for this organization, `office_agent` product cuts before the 2026-06-18 data-start). "0" means attributable usage existed but none was attributed to this skill. Addable across days: date-range rollup mode returns the window's sum. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
4766
4767 - `chat_cowork_unified_metrics: optional object or null`
5056 - `chat_cowork_unified_metrics: optional BetaAnalyticsSkillChatCoworkUnifiedMetrics or null`
47685057
47695058 Skill use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified.
47705059
from line 5075
47865075
47875076 Same measure as `cowork_metrics.distinct_session_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed.
47885077
4789 - `currency: optional string or null`
4790
4791 Currency for this row's monetary fields (`estimated_overage_spend` and `attributed_list_price`), as an uppercase ISO-4217 code. Always "USD" when either amount is populated; null whenever both amounts are null.
4792
4793 - `enable_count: optional number or null`
4794
4795 Distinct accounts that enabled this skill on the requested day (claude.ai only — the skill analog of plugin `install_count`). The count is org-wide: null when enable reporting is not enabled for this organization, or when the request scopes to `user_id` / `rbac_group_id` / `product` via `group_by[]` or `filter[]` (an org-wide count would be misleading on per-cut rows). A distinct count, not an event count: summing across days double-counts members who enable the skill on more than one day, so it is also null in date-range rollup mode (`starting_date`/`ending_date`).
4796
4797 - `estimated_overage_spend: optional string or null`
4798
4799 Estimated overage spend attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD; "1250" is $12.50, fractional cents possible) — an allocation of each member's daily post-discount, pre-credit metered overage spend (the same cost basis as the organization's spend reporting and the Cost & Usage API, so per-skill figures are directly comparable; spend with no skill attribution — including any member-day without skill invocations — is not represented, so skill rows sum to at most those totals) across the skills the member used. Overage only: usage covered by included seat allowances bills nothing and allocates $0 here — see `attributed_list_price` for the funding-independent usage-value companion. Claude Code, Cowork, and Office Agent spend use request-level skill attribution; claude.ai chat spend is approximated proportionally to skill-invoking messages. An estimate, not a billing number — and the cost of the requests/messages that involved the skill, not the skill's incremental cost (the same request would still have cost something without the skill active). "0" means no overage spend was attributed; null when spend reporting is not enabled for this organization, on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start). Addable across days: date-range rollup mode (`starting_date`/`ending_date`) returns the window's sum. With `group_by[]=user_id` each row carries the user's own attributed spend. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts.
4800
4801 - `invocation_count: optional number or null`
4802
4803 Total number of times this skill was invoked on the requested day (the skill analog of plugin `invocation_count`). Unlike `distinct_user_count` — which answers '\# of users' — this is the true '# of uses'. 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. Null when invocation reporting is not enabled for this organization. Sum across a date range for total uses in the window — date-range rollup mode (`starting_date`/`ending_date`) returns this sum directly.
4804
48055078 - `product: optional string or null`
48065079
48075080 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`.
from line 5086
48135086 - `rbac_group_name: optional string or null`
48145087
48155088 Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key.
4816
4817 - `share_status: optional "organization" or "private" or "public" or null`
4818
4819 Skill share status (claude.ai only): one of `private`, `organization`, or `public`. Null for skills used only in Claude Code or Office (no per-skill share-status concept) and when share-status reporting is not yet available for the organization. Filterable via `filter[]=share_status:{value}`.
4820
4821 - `"organization"`
4822
4823 - `"private"`
4824
4825 - `"public"`
4826
4827 - `skill_display_name: optional string or null`
4828
4829 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills, whose user-defined names usage reports generally withhold). 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. For a member's own skill (private or personal-plugin) it is null, except when the skill's owner used it from Claude Code or Cowork in the requested period: then it shows the name that client reported at the time. Apart from that, the names of members' own skills are not disclosed to analytics-key holders. Also null for Anthropic-provided plugin skills (not resolved), for an organization skill or plugin whose name can no longer be found (for example, one since deleted), when `skill_name` is already a display name, or when display-name resolution is not enabled for this organization.
48305089
48315090 - `user_id: optional string or null`
48325091
from line 5109
48505109{
48515110 "data": [
48525111 {
5112 "attributed_list_price": "attributed_list_price",
48535113 "chat_metrics": {
48545114 "distinct_conversation_skill_used_count": 0
48555115 },
from line 5119
48595119 "cowork_metrics": {
48605120 "distinct_session_skill_used_count": 0
48615121 },
5122 "currency": "currency",
48625123 "distinct_user_count": 0,
5124 "enable_count": 0,
5125 "estimated_overage_spend": "estimated_overage_spend",
5126 "invocation_count": 0,
48635127 "office_metrics": {
48645128 "excel": {
48655129 "distinct_session_skill_used_count": 0
from line 5138
48745138 "distinct_session_skill_used_count": 0
48755139 }
48765140 },
5141 "share_status": "organization",
5142 "skill_display_name": "skill_display_name",
48775143 "skill_name": "skill_name",
4878 "attributed_list_price": "attributed_list_price",
48795144 "chat_cowork_unified_metrics": {
48805145 "chat": {
48815146 "distinct_conversation_skill_used_count": 0
from line 5149
48845149 "distinct_session_skill_used_count": 0
48855150 }
48865151 },
4887 "currency": "currency",
4888 "enable_count": 0,
4889 "estimated_overage_spend": "estimated_overage_spend",
4890 "invocation_count": 0,
48915152 "product": "product",
48925153 "rbac_group_id": "rbac_group_id",
48935154 "rbac_group_name": "rbac_group_name",
4894 "share_status": "organization",
4895 "skill_display_name": "skill_display_name",
48965155 "user_id": "user_id"
48975156 }
48985157 ],
from line 5187
49285187
49295188 maxItems: 100
49305189
4931- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
5190- `group_by: optional array of BetaAnalyticsArtifactGroupBy`
49325191
49335192 Dimensions to break results out by: `product`, `user_id` and/or `rbac_group_id`. The ungrouped artifact-type cube is finite and returned in full; grouped queries multiply the cube and paginate via `next_page`. `product` takes the values `chat_cowork_unified`, `chat`, `claude_code`, or `cowork` (the surfaces that create artifacts). `rbac_group_id` attributes a user to every group they held at any point during the requested UTC day, so grouped rows are not an exclusive partition. At most 100 entries.
49345193
49355194
No line in this hunk matches that.