Follow Discord
Sweep 03 Nov 2026 · 22:27Z Build v2.1.318 536 read Stable v2.1.311 Latest v2.1.318 Next v2.1.318 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

Analytics changedapi/beta/organization/analytics

Recorded here
Lines+771added
Lines−512removed
From line 172 where the diff opens
First seen 10 Sep 2026 this site's first read of the page
Recorded edits14to this page, all time

### Beta Analytics Artifact Group By ### Beta Analytics Chat Cowork Unified Metrics ### Beta Analytics Connector Chat Cowork Unified Metrics ### Beta Analytics Connector Group By ### Beta Analytics Order ### Beta Analytics Plugin Chat Cowork Unified Metrics ### Beta Analytics Plugin Group By ### Beta Analytics Project Group By ### Beta Analytics Skill Chat Cowork Unified Metrics ### Beta Analytics Skill Group By ### Beta Analytics User Group By

The whole hunk

from line 172, old and new numbered
/
lines

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 
Feedback