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 capture · api

One read of Claude Developer Platformapi-20261105T050710Z

156 pages moved out of 885 read.

Pages moved 156 significant first
Pages read 885 in this capture
Captured 05:07 UTC
Corpus hash 3705f4897ac4 corpus-hash

What this read moved

1-25 of 156, page 1 of 7

This capture is too large to show at once. Changes 1-25 of 156 are below, significant first; the rest are on the following screens.

api/beta Changed · +585 / -254 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.

from line 397
397397 
398398 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
399399 
400 pattern: ^(0|[1-9]\d*)$
401 
400402 - `currency: BetaCurrency`
401403 
402404 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 7615
76137615 - `BetaComputerToolset20260801 object`
76147616 
76157617 The computer toolset: a single `tools[]` entry (carrying no
7616 `name`) that declares the computer tool f
7618 `name`) that

api/beta/agents Changed · +4535 / -4501 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.

from line 293
293293 
294294 - `speed: optional "standard" or "fast" or null`
295295 
296 Inference speed mode. Defaults to `standard`.
296 Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time.
297297 
298298 - `"standard"`
299299 
from line 325
325325 
326326 The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters.
327327 
328 maxLength: 2048
328 maxLength: 2048, pattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:role/[\w+=,.@/-]+$
329329 
330330 - `BetaManagedAgentsServiceAccountExecutionIdentityParams object`
331331 
from line 957
957957 
958958 Two-letter ISO 3166-1 country code, uppercase.
959959 
960 pattern: ^[A-Z]{2}$
961 
960962 - `region: optional string or null`
961963 
962964 Region or state name.
from line 1087
10851087 
10861088 Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens.
10871089 
1088 minLength: 1, maxLength: 128
1090 minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$
10891091 
10901092### Returns
10911093 
from line 1761
17591761 
17601762 Two-letter ISO 3166-1 country code, uppercase.
17611763 
1764 pattern: ^[A-Z]{2}$
1765 
17621766 - `region: optional string or null`
17631767 
17641768 Region or state name.
from line 2841
28372841 
28382842 Two-letter ISO 3166-1 country code, uppercase.
28392843 
2844 pattern: ^[A-Z]{2}$
2845 
28402846 - `region: optional string or null`
28412847 
28422848 Region or state name.
from line 3901
38953901 
38963902 Two-letter ISO 3166-1 country code, uppercase.
38973903 
3904 pattern: ^[A-Z]{2}$
3905 
38983906 - `region: optional string or null`
38993907 
39003908 Region or state name.
from line 4294
42864294 
42874295 The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters.
42884296 
4289 maxLength: 2048
4297 maxLength: 2048, pattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:role/[\w+=,.@/-]+$
42904298 
42914299 - `BetaManagedAgentsServiceAccountExecutionIdentityParams object`
42924300 
from line 4474
44664474 
44674475 - `speed: optional "standard" or "fast" or null`
44684476 
4469 Inference speed mode. Defaults to `standard`.
4477 Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time.
44704478 
44714479 - `"standard"`
44724480 
from line 5088
50805088 
50815089 Two-letter ISO 3166-1 country code, uppercase.
50825090 
5091 pattern: ^[A-Z]{2}$
5092 
50835093 - `region: optional string or null`
50845094 
50855095 Region or state name.
from line 5218
52085218 
52095219 Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens.
52105220 
5211 minLength: 1, maxLength: 128
5221 minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$
52125222 
52135223- `version: optional number`
52145224 
from line 5898
58885898 
58895899 Two-letter ISO 3166-1 country code, uppercase.
58905900 
5901 pattern: ^[A-Z]{2}$
5902 
58915903 - `region: optional string or null`
58925904 
58935905 Region or state name.
from line 6947
69356947 
69366948 Two-letter ISO 3166-1 country code, uppercase.
69376949 
6950 pattern: ^[A-Z]{2}$
6951 
69386952 - `region: optional string or null`
69396953 
69406954 Region or state name.
from line 7863
78497863 
78507864 Two-letter ISO 3166-1 country code, uppercase.
78517865 
7866 pattern: ^[A-Z]{2}$
7867 
78527868 - `region: optional string or null`
78537869 
78547870 Region or state name.
from line 8221
82058221 
82068222 - `type: "tool_reference"`
82078223 
8208 Must be "tool_reference".
8209 
8210 - `name: string`
8211 
8212 Name of the tool. Compared exactly, so upper and lower case letters are different.
8213 
8214 minLength: 1, maxLength: 128
8215 
8216 - `BetaManagedAgentsWebFetchURLSourceExcept object`
8217 
8218 Every tool's results contribute URLs that may be fetched, except the named tools' results.
8219 
8220 - `type: "except"`
8221 
8222 - `tools: array of BetaManagedAgentsWebFetchURLSourceToolReference`
8223 
8224 The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results.
8225 
8226 - `type: "tool_reference"`
8227 
8228 Must be "tool_reference".
8229 
8230 - `name: string`
8231 
8232 Name of the tool. Compared exactly, so u
8224 Must be "tool_reference"

api/beta/agents/create Changed · +7 / -3 lines

from line 291
291291 
292292 - `speed: optional "standard" or "fast" or null`
293293 
294 Inference speed mode. Defaults to `standard`.
294 Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time.
295295 
296296 - `"standard"`
297297 
from line 323
323323 
324324 The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters.
325325 
326 maxLength: 2048
326 maxLength: 2048, pattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:role/[\w+=,.@/-]+$
327327 
328328 - `BetaManagedAgentsServiceAccountExecutionIdentityParams object`
329329 
from line 955
955955 
956956 Two-letter ISO 3166-1 country code, uppercase.
957957 
958 pattern: ^[A-Z]{2}$
959 
958960 - `region: optional string or null`
959961 
960962 Region or state name.
from line 1085
10831085 
10841086 Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens.
10851087 
1086 minLength: 1, maxLength: 128
1088 minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$
10871089 
10881090## Returns
10891091 
from line 1758
17561758 - `country: optional string or null`
17571759 
17581760 Two-letter ISO 3166-1 country code, uppercase.
1761 
1762 pattern: ^[A-Z]{2}$
17591763 
17601764 - `region: optional string or null`
17611765 

api/beta/agents/update Changed · +7 / -3 lines

from line 167
167167 
168168 The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters.
169169 
170 maxLength: 2048
170 maxLength: 2048, pattern: ^arn:aws(-[a-z]+)*:iam::[0-9]{12}:role/[\w+=,.@/-]+$
171171 
172172 - `BetaManagedAgentsServiceAccountExecutionIdentityParams object`
173173 
from line 347
347347 
348348 - `speed: optional "standard" or "fast" or null`
349349 
350 Inference speed mode. Defaults to `standard`.
350 Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time.
351351 
352352 - `"standard"`
353353 
from line 961
961961 
962962 Two-letter ISO 3166-1 country code, uppercase.
963963 
964 pattern: ^[A-Z]{2}$
965 
964966 - `region: optional string or null`
965967 
966968 Region or state name.
from line 1091
10891091 
10901092 Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens.
10911093 
1092 minLength: 1, maxLength: 128
1094 minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$
10931095 
10941096- `version: optional number`
10951097 
from line 1770
17681770 - `country: optional string or null`
17691771 
17701772 Two-letter ISO 3166-1 country code, uppercase.
1773 
1774 pattern: ^[A-Z]{2}$
17711775 
17721776 - `region: optional string or null`
17731777 

api/beta/deployments Changed · +36 / -12 lines

from line 413
413413 
414414 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
415415 
416 pattern: ^(0|[1-9]\d*)$
417 
416418 - `currency: BetaCurrency`
417419 
418420 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 473
471473 
472474 Full commit SHA to check out.
473475 
474 minLength: 7, maxLength: 64
476 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
475477 
476478 - `mount_path: optional string or null`
477479 
from line 509
507509 
508510 The memory store ID (memstore_...). Must belong to the caller's organization and workspace.
509511 
512 pattern: ^memstore_[a-zA-Z0-9_]+$
513 
510514 - `access: optional "read_write" or "read_only" or null`
511515 
512516 Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem.
from line 957
953957 
954958 Full commit SHA to check out.
955959 
956 minLength: 7, maxLength: 64
960 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
957961 
958962 - `mount_path: optional string or null`
959963 
from line 1063
10591063 
10601064 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
10611065 
1066 pattern: ^(0|[1-9]\d*)$
1067 
10621068 - `currency: BetaCurrency`
10631069 
10641070 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 1757
17511757 
17521758 Full commit SHA to check out.
17531759 
1754 minLength: 7, maxLength: 64
1760 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
17551761 
17561762 - `mount_path: optional string or null`
17571763 
from line 1863
18571863 
18581864 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
18591865 
1866 pattern: ^(0|[1-9]\d*)$
1867 
18601868 - `currency: BetaCurrency`
18611869 
18621870 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 2506
24982506 
24992507 Full commit SHA to check out.
25002508 
2501 minLength: 7, maxLength: 64
2509 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
25022510 
25032511 - `mount_path: optional string or null`
25042512 
from line 2612
26042612 
26052613 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
26062614 
2615 pattern: ^(0|[1-9]\d*)$
2616 
26072617 - `currency: BetaCurrency`
26082618 
26092619 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 2876
28662876 
28672877 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
28682878 
2879 pattern: ^(0|[1-9]\d*)$
2880 
28692881 - `currency: BetaCurrency`
28702882 
28712883 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 3168
31563168 
31573169 Full commit SHA to check out.
31583170 
3159 minLength: 7, maxLength: 64
3171 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
31603172 
31613173 - `mount_path: optional string or null`
31623174 
from line 3204
31923204 
31933205 The memory store ID (memstore_...). Must belong to the caller's organization and workspace.
31943206 
3207 pattern: ^memstore_[a-zA-Z0-9_]+$
3208 
31953209 - `access: optional "read_write" or "read_only" or null`
31963210 
31973211 Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem.
from line 3652
36383652 
36393653 Full commit SHA to check out.
36403654 
3641 minLength: 7, maxLength: 64
3655 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
36423656 
36433657 - `mount_path: optional string or null`
36443658 
from line 3758
37443758 
37453759 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
37463760 
3761 pattern: ^(0|[1-9]\d*)$
3762 
37473763 - `currency: BetaCurrency`
37483764 
37493765 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 4400
43844400 
43854401 Full commit SHA to check out.
43864402 
4387 minLength: 7, maxLength: 64
4403 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
43884404 
43894405 - `mount_path: optional string or null`
43904406 
from line 4506
44904506 
44914507 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
44924508 
4509 pattern: ^(0|[1-9]\d*)$
4510 
44934511 - `currency: BetaCurrency`
44944512 
44954513 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 5542
55245542 
55255543 Full commit SHA to check out.
55265544 
5527 minLength: 7, maxLength: 64
5545 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
55285546 
55295547 - `mount_path: optional string or null`
55305548 
from line 5648
56305648 
56315649 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
56325650 
5651 pattern: ^(0|[1-9]\d*)$
5652 
56335653 - `currency: BetaCurrency`
56345654 
56355655 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 6283
62636283 
62646284 Full commit SHA to check out.
62656285 
6266 minLength: 7, maxLength: 64
6286 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
62676287 
62686288 - `mount_path: optional string or null`
62696289 
from line 6389
63696389 
63706390 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
63716391 
6392 pattern: ^(0|[1-9]\d*)$
6393 
63726394 - `currency: BetaCurrency`
63736395 
63746396 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 6942
69206942 
69216943 Full commit SHA to check out.
69226944 
6923 minLength: 7, maxLength: 64
6945 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
69246946 
69256947 - `mount_path: optional string or null`
69266948 
from line 7048
70267048 
70277049 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
70287050 
7051 pattern: ^(0|[1-9]\d*)$
7052 
70297053 - `currency: BetaCurrency`
70307054 
70317055 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 8096
80728096 
80738097 Full commit SHA to check out.
80748098 
8075 minLength: 7, maxLength: 64
8099 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
80768100 
80778101 - `mount_path: optional string or null`
80788102 
from line 8254
82308254 
82318255 Full commit SHA to check out.
82328256 
8233 minLength: 7, maxLength: 64
8257 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
82348258 
82358259 - `mount_path: optional string or null`
82368260 

api/beta/deployments/create Changed · +8 / -2 lines

from line 411
411411 
412412 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
413413 
414 pattern: ^(0|[1-9]\d*)$
415 
414416 - `currency: BetaCurrency`
415417 
416418 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 471
469471 
470472 Full commit SHA to check out.
471473 
472 minLength: 7, maxLength: 64
474 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
473475 
474476 - `mount_path: optional string or null`
475477 
from line 507
505507 
506508 The memory store ID (memstore_...). Must belong to the caller's organization and workspace.
507509 
510 pattern: ^memstore_[a-zA-Z0-9_]+$
511 
508512 - `access: optional "read_write" or "read_only" or null`
509513 
510514 Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem.
from line 955
951955 
952956 Full commit SHA to check out.
953957 
954 minLength: 7, maxLength: 64
958 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
955959 
956960 - `mount_path: optional string or null`
957961 
from line 1060
10561060 - `amount: string`
10571061 
10581062 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
1063 
1064 pattern: ^(0|[1-9]\d*)$
10591065 
10601066 - `currency: BetaCurrency`
10611067 

api/beta/deployments/update Changed · +8 / -2 lines

from line 185
185185 
186186 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
187187 
188 pattern: ^(0|[1-9]\d*)$
189 
188190 - `currency: BetaCurrency`
189191 
190192 Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
from line 477
475477 
476478 Full commit SHA to check out.
477479 
478 minLength: 7, maxLength: 64
480 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
479481 
480482 - `mount_path: optional string or null`
481483 
from line 513
511513 
512514 The memory store ID (memstore_...). Must belong to the caller's organization and workspace.
513515 
516 pattern: ^memstore_[a-zA-Z0-9_]+$
517 
514518 - `access: optional "read_write" or "read_only" or null`
515519 
516520 Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem.
from line 961
957961 
958962 Full commit SHA to check out.
959963 
960 minLength: 7, maxLength: 64
964 minLength: 7, maxLength: 64, pattern: ^[0-9a-fA-F]+$
961965 
962966 - `mount_path: optional string or null`
963967 
from line 1066
10621066 - `amount: string`
10631067 
10641068 Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
1069 
1070 pattern: ^(0|[1-9]\d*)$
10651071 
10661072 - `currency: BetaCurrency`
10671073 

api/beta/dreams Changed · +3 / -21 lines

from line 179
179179 
180180 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
181181 
182 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
183 
184182- `model: string or BetaDreamModelConfigParam`
185183 
186184 The model that runs a dream, given as a model ID or as an object with `id` and `speed`.
from line 185
187185 
188186 In the object form, `speed` can only be `standard`.
189187 
190 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists the supported models.
188 The [Availability section of the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#feature-availability) lists the supported models.
191189 
192190 - `string`
193191 
from line 199
201199 
202200 The ID can be 1 to 256 characters long.
203201 
204 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists the supported models.
202 The [Availability section of the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#feature-availability) lists the supported models.
205203 
206204 minLength: 1, maxLength: 256
207205 
from line 331
333331 
334332 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
335333 
336 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
337 
338334 - `instructions: string or null`
339335 
340336 The guidance given when the dream was created, or `null` if none was given.
from line 814
818814 
819815 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
820816 
821 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
822 
823817 - `instructions: string or null`
824818 
825819 The guidance given when the dream was created, or `null` if none was given.
from line 1246
12521246 
12531247 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
12541248 
1255 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
1256 
12571249 - `instructions: string or null`
12581250 
12591251 The guidance given when the dream was created, or `null` if none was given.
from line 1667
16751667 
16761668 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
16771669 
1678 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
1679 
16801670 - `instructions: string or null`
16811671 
16821672 The guidance given when the dream was created, or `null` if none was given.
from line 2089
20992089 
21002090 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
21012091 
2102 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
2103 
21042092 - `instructions: string or null`
21052093 
21062094 The guidance given when the dream was created, or `null` if none was given.
from line 2367
23792367 
23802368 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
23812369 
2382 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
2383 
23842370 - `instructions: string or null`
23852371 
23862372 The guidance given when the dream was created, or `null` if none was given.
from line 2555
25692555 
25702556 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
25712557 
2572 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
2573 
25742558### Beta Dream Memory Store Input
25752559 
25762560- `BetaDreamMemoryStoreInput object`
from line 2621
26372621 
26382622 The ID can be 1 to 256 characters long.
26392623 
2640 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists the supported models.
2624 The [Availability section of the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#feature-availability) lists the supported models.
26412625 
26422626 minLength: 1, maxLength: 256
26432627 
from line 2662
26782662 The IDs of the sessions whose transcripts the dream reads (`sesn_...`).
26792663 
26802664 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
2681 
2682 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
26832665 
26842666### Beta Dream Status
26852667 

api/beta/dreams/create Changed · +2 / -6 lines

from line 177
177177 
178178 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
179179 
180 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
181 
182180- `model: string or BetaDreamModelConfigParam`
183181 
184182 The model that runs a dream, given as a model ID or as an object with `id` and `speed`.
from line 183
185183 
186184 In the object form, `speed` can only be `standard`.
187185 
188 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists the supported models.
186 The [Availability section of the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#feature-availability) lists the supported models.
189187 
190188 - `string`
191189 
from line 197
199197 
200198 The ID can be 1 to 256 characters long.
201199 
202 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists the supported models.
200 The [Availability section of the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#feature-availability) lists the supported models.
203201 
204202 minLength: 1, maxLength: 256
205203 
from line 328
330328 The IDs of the sessions whose transcripts the dream reads (`sesn_...`).
331329 
332330 Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order.
333 
334 The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=http#limits) lists all the limits on a dream.
335331 
336332 - `instructions: string or null`
337333 

api/beta/memory_stores Changed · +5 / -3 lines

from line 1588
15881588 
15891589 A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long.
15901590 
1591 minLength: 2, maxLength: 1024
1591 minLength: 2, maxLength: 1024, pattern: ^(/[^/]+)+$
15921592 
15931593#### Returns
15941594 
from line 1664
16641664 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
16651665 -d '{
16661666 "content": "content",
1667 "path": "xx"
1667 "path": "/P"
16681668 }'
16691669```
16701670 
from line 2410
24102410 
24112411 The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive.
24122412 
2413 minLength: 2, maxLength: 1024
2413 minLength: 2, maxLength: 1024, pattern: ^(/[^/]+)+$
24142414 
24152415- `precondition: optional BetaManagedAgentsPrecondition`
24162416 
from line 2423
24232423 - `content_sha256: optional string`
24242424 
24252425 Expected `content_sha256` of the stored memory (64 lowercase hexadecimal characters). Typically the `content_sha256` returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.
2426 
2427 pattern: ^[a-f0-9]{64}$
24262428 
24272429#### Returns
24282430 

api/beta/memory_stores/memories Changed · +9 / -3 lines

from line 177
177177 
178178 A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long.
179179 
180 minLength: 2, maxLength: 1024
180 minLength: 2, maxLength: 1024, pattern: ^(/[^/]+)+$
181181 
182182### Returns
183183 
from line 253
253253 -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
254254 -d '{
255255 "content": "content",
256 "path": "xx"
256 "path": "/P"
257257 }'
258258```
259259 
from line 999
999999 
10001000 The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive.
10011001 
1002 minLength: 2, maxLength: 1024
1002 minLength: 2, maxLength: 1024, pattern: ^(/[^/]+)+$
10031003 
10041004- `precondition: optional BetaManagedAgentsPrecondition`
10051005 
from line 1013
10131013 
10141014 Expected `content_sha256` of the stored memory (64 lowercase hexadecimal characters). Typically the `content_sha256` returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.
10151015 
1016 pattern: ^[a-f0-9]{64}$
1017 
10161018### Returns
10171019 
10181020- `BetaManagedAgentsMemory object`
from line 1320
13181320 
13191321 Expected `content_sha256` of the stored memory (64 lowercase hexadecimal characters). Typically the `content_sha256` returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.
13201322 
1323 pattern: ^[a-f0-9]{64}$
1324 
13211325### Beta Managed Agents Deleted Memory
13221326 
13231327- `BetaManagedAgentsDeletedMemory object`
from line 1699
16951699 - `content_sha256: optional string`
16961700 
16971701 Expected `content_sha256` of the stored memory (64 lowercase hexadecimal characters). Typically the `content_sha256` returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.
1702 
1703 pattern: ^[a-f0-9]{64}$
16981704 

api/beta/organization Changed · +214 / -199 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.

Nothing in the body moved in this read. What changed is above.

api/beta/organization/analytics Changed · +771 / -512 lines

### 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

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 

api/beta/organization/analytics/apps Changed · +23 / -28 lines

from line 39
3939 
4040 maxItems: 100
4141 
42- `group_by: optional array of "rbac_group_id" or "user_id"`
42- `group_by: optional array of BetaAnalyticsProjectGroupBy`
4343 
4444 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.
4545 
from line 55
5555 
5656 minimum: 1, maximum: 1000
5757 
58- `order: optional "asc" or "desc"`
58- `order: optional BetaAnalyticsOrder`
5959 
6060 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.
6161 
from line 89
8989 
9090- `data: array of BetaAnalyticsProjectActivity`
9191 
92 - `distinct_user_count: number`
92 - `created_at: string or null`
9393 
94 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.
95 
96 - `message_count: number`
97 
98 Number of messages sent in the project on the requested day
99 
100 - `project_id: string`
101 
102 Tagged project identifier (e.g. `claude_proj_...`)
103 
104 - `project_name: string`
105 
106 Name of the project
107 
108 - `created_at: optional string or null`
109 
11094 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
11195 
11296 format: date-time
11397 
114 - `created_by: optional BetaAnalyticsUser or null`
98 - `created_by: BetaAnalyticsUser or null`
11599 
116100 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
117101 
from line 113
129113 
130114 Email address of the user
131115 
132 - `distinct_conversation_count: optional number or null`
116 - `distinct_conversation_count: number or null`
133117 
134118 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
135119 
136 - `product: optional string or null`
120 - `distinct_user_count: number`
137121 
138 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`.
122 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.
139123 
124 - `message_count: number`
125 
126 Number of messages sent in the project on the requested day
127 
128 - `project_id: string`
129 
130 Tagged project identifier (e.g. `claude_proj_...`)
131 
132 - `project_name: string`
133 
134 Name of the project
135 
140136 - `rbac_group_id: optional string or null`
141137 
142138 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.
from line 163
167163{
168164 "data": [
169165 {
170 "distinct_user_count": 0,
171 "message_count": 0,
172 "project_id": "project_id",
173 "project_name": "project_name",
174166 "created_at": "2019-12-27T18:11:19.117Z",
175167 "created_by": {
176168 "id": "id",
from line 170
178170 "type": "user"
179171 },
180172 "distinct_conversation_count": 0,
181 "product": "product",
173 "distinct_user_count": 0,
174 "message_count": 0,
175 "project_id": "project_id",
176 "project_name": "project_name",
182177 "rbac_group_id": "rbac_group_id",
183178 "rbac_group_name": "rbac_group_name",
184179 "user_id": "user_id"

api/beta/organization/analytics/apps/chat Changed · +23 / -28 lines

from line 39
3939 
4040 maxItems: 100
4141 
42- `group_by: optional array of "rbac_group_id" or "user_id"`
42- `group_by: optional array of BetaAnalyticsProjectGroupBy`
4343 
4444 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.
4545 
from line 55
5555 
5656 minimum: 1, maximum: 1000
5757 
58- `order: optional "asc" or "desc"`
58- `order: optional BetaAnalyticsOrder`
5959 
6060 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.
6161 
from line 89
8989 
9090- `data: array of BetaAnalyticsProjectActivity`
9191 
92 - `distinct_user_count: number`
92 - `created_at: string or null`
9393 
94 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.
95 
96 - `message_count: number`
97 
98 Number of messages sent in the project on the requested day
99 
100 - `project_id: string`
101 
102 Tagged project identifier (e.g. `claude_proj_...`)
103 
104 - `project_name: string`
105 
106 Name of the project
107 
108 - `created_at: optional string or null`
109 
11094 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
11195 
11296 format: date-time
11397 
114 - `created_by: optional BetaAnalyticsUser or null`
98 - `created_by: BetaAnalyticsUser or null`
11599 
116100 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
117101 
from line 113
129113 
130114 Email address of the user
131115 
132 - `distinct_conversation_count: optional number or null`
116 - `distinct_conversation_count: number or null`
133117 
134118 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
135119 
136 - `product: optional string or null`
120 - `distinct_user_count: number`
137121 
138 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`.
122 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.
139123 
124 - `message_count: number`
125 
126 Number of messages sent in the project on the requested day
127 
128 - `project_id: string`
129 
130 Tagged project identifier (e.g. `claude_proj_...`)
131 
132 - `project_name: string`
133 
134 Name of the project
135 
140136 - `rbac_group_id: optional string or null`
141137 
142138 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.
from line 163
167163{
168164 "data": [
169165 {
170 "distinct_user_count": 0,
171 "message_count": 0,
172 "project_id": "project_id",
173 "project_name": "project_name",
174166 "created_at": "2019-12-27T18:11:19.117Z",
175167 "created_by": {
176168 "id": "id",
from line 170
178170 "type": "user"
179171 },
180172 "distinct_conversation_count": 0,
181 "product": "product",
173 "distinct_user_count": 0,
174 "message_count": 0,
175 "project_id": "project_id",
176 "project_name": "project_name",
182177 "rbac_group_id": "rbac_group_id",
183178 "rbac_group_name": "rbac_group_name",
184179 "user_id": "user_id"

api/beta/organization/analytics/apps/chat/projects Changed · +23 / -28 lines

from line 37
3737 
3838 maxItems: 100
3939 
40- `group_by: optional array of "rbac_group_id" or "user_id"`
40- `group_by: optional array of BetaAnalyticsProjectGroupBy`
4141 
4242 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.
4343 
from line 53
5353 
5454 minimum: 1, maximum: 1000
5555 
56- `order: optional "asc" or "desc"`
56- `order: optional BetaAnalyticsOrder`
5757 
5858 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.
5959 
from line 87
8787 
8888- `data: array of BetaAnalyticsProjectActivity`
8989 
90 - `distinct_user_count: number`
90 - `created_at: string or null`
9191 
92 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.
93 
94 - `message_count: number`
95 
96 Number of messages sent in the project on the requested day
97 
98 - `project_id: string`
99 
100 Tagged project identifier (e.g. `claude_proj_...`)
101 
102 - `project_name: string`
103 
104 Name of the project
105 
106 - `created_at: optional string or null`
107 
10892 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
10993 
11094 format: date-time
11195 
112 - `created_by: optional BetaAnalyticsUser or null`
96 - `created_by: BetaAnalyticsUser or null`
11397 
11498 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
11599 
from line 111
127111 
128112 Email address of the user
129113 
130 - `distinct_conversation_count: optional number or null`
114 - `distinct_conversation_count: number or null`
131115 
132116 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
133117 
134 - `product: optional string or null`
118 - `distinct_user_count: number`
135119 
136 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`.
120 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.
137121 
122 - `message_count: number`
123 
124 Number of messages sent in the project on the requested day
125 
126 - `project_id: string`
127 
128 Tagged project identifier (e.g. `claude_proj_...`)
129 
130 - `project_name: string`
131 
132 Name of the project
133 
138134 - `rbac_group_id: optional string or null`
139135 
140136 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.
from line 161
165161{
166162 "data": [
167163 {
168 "distinct_user_count": 0,
169 "message_count": 0,
170 "project_id": "project_id",
171 "project_name": "project_name",
172164 "created_at": "2019-12-27T18:11:19.117Z",
173165 "created_by": {
174166 "id": "id",
from line 168
176168 "type": "user"
177169 },
178170 "distinct_conversation_count": 0,
179 "product": "product",
171 "distinct_user_count": 0,
172 "message_count": 0,
173 "project_id": "project_id",
174 "project_name": "project_name",
180175 "rbac_group_id": "rbac_group_id",
181176 "rbac_group_name": "rbac_group_name",
182177 "user_id": "user_id"

api/beta/organization/analytics/apps/chat/projects/list Changed · +23 / -28 lines

from line 35
3535 
3636 maxItems: 100
3737 
38- `group_by: optional array of "rbac_group_id" or "user_id"`
38- `group_by: optional array of BetaAnalyticsProjectGroupBy`
3939 
4040 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.
4141 
from line 51
5151 
5252 minimum: 1, maximum: 1000
5353 
54- `order: optional "asc" or "desc"`
54- `order: optional BetaAnalyticsOrder`
5555 
5656 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.
5757 
from line 85
8585 
8686- `data: array of BetaAnalyticsProjectActivity`
8787 
88 - `distinct_user_count: number`
88 - `created_at: string or null`
8989 
90 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.
91 
92 - `message_count: number`
93 
94 Number of messages sent in the project on the requested day
95 
96 - `project_id: string`
97 
98 Tagged project identifier (e.g. `claude_proj_...`)
99 
100 - `project_name: string`
101 
102 Name of the project
103 
104 - `created_at: optional string or null`
105 
10690 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
10791 
10892 format: date-time
10993 
110 - `created_by: optional BetaAnalyticsUser or null`
94 - `created_by: BetaAnalyticsUser or null`
11195 
11296 User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists.
11397 
from line 109
125109 
126110 Email address of the user
127111 
128 - `distinct_conversation_count: optional number or null`
112 - `distinct_conversation_count: number or null`
129113 
130114 Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed.
131115 
132 - `product: optional string or null`
116 - `distinct_user_count: number`
133117 
134 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`.
118 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.
135119 
120 - `message_count: number`
121 
122 Number of messages sent in the project on the requested day
123 
124 - `project_id: string`
125 
126 Tagged project identifier (e.g. `claude_proj_...`)
127 
128 - `project_name: string`
129 
130 Name of the project
131 
136132 - `rbac_group_id: optional string or null`
137133 
138134 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.
from line 159
163159{
164160 "data": [
165161 {
166 "distinct_user_count": 0,
167 "message_count": 0,
168 "project_id": "project_id",
169 "project_name": "project_name",
170162 "created_at": "2019-12-27T18:11:19.117Z",
171163 "created_by": {
172164 "id": "id",
from line 166
174166 "type": "user"
175167 },
176168 "distinct_conversation_count": 0,
177 "product": "product",
169 "distinct_user_count": 0,
170 "message_count": 0,
171 "project_id": "project_id",
172 "project_name": "project_name",
178173 "rbac_group_id": "rbac_group_id",
179174 "rbac_group_name": "rbac_group_name",
180175 "user_id": "user_id"

api/beta/organization/analytics/connectors Changed · +34 / -34 lines

from line 40
4040 
4141 maxItems: 100
4242 
43- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
43- `group_by: optional array of BetaAnalyticsConnectorGroupBy`
4444 
4545 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.
4646 
from line 58
5858 
5959 minimum: 1, maximum: 1000
6060 
61- `order: optional "asc" or "desc"`
61- `order: optional BetaAnalyticsOrder`
6262 
6363 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.
6464 
from line 108
108108 
109109 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.
110110 
111 - `connector_display_name: string or null`
112 
113 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.
114 
111115 - `connector_name: string`
112116 
113117 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 128
124128 
125129 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.
126130 
131 - `individual_auth_distinct_user_count: number or null`
132 
133 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.
134 
135 - `managed_auth_distinct_user_count: number or null`
136 
137 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.
138 
127139 - `office_metrics: BetaAnalyticsConnectorOfficeMetrics`
128140 
129141 Office Agent activity metrics for a single connector on a given day, broken out by Office product.
from line 160
148160 
149161 Office Agent activity metrics for a single connector on a given day within one Office product.
150162 
151 - `chat_cowork_unified_metrics: optional object or null`
163 - `read_call_count: number or null`
152164 
165 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.
166 
167 - `unclassified_call_count: number or null`
168 
169 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.
170 
171 - `write_call_count: number or null`
172 
173 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.
174 
175 - `chat_cowork_unified_metrics: optional BetaAnalyticsConnectorChatCoworkUnifiedMetrics or null`
176 
153177 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.
154178 
155179 - `chat: BetaAnalyticsConnectorChatCoworkUnifiedChatMetrics`
from line 194
170194 
171195 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.
172196 
173 - `connector_display_name: optional string or null`
174 
175 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.
176 
177 - `individual_auth_distinct_user_count: optional number or null`
178 
179 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.
180 
181 - `managed_auth_distinct_user_count: optional number or null`
182 
183 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.
184 
185197 - `product: optional string or null`
186198 
187199 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 206
194206 
195207 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.
196208 
197 - `read_call_count: optional number or null`
198 
199 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.
200 
201 - `unclassified_call_count: optional number or null`
202 
203 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.
204 
205209 - `user_id: optional string or null`
206210 
207211 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
208212 
209 - `write_call_count: optional number or null`
210 
211 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.
212 
213213- `next_page: string or null`
214214 
215215 Opaque cursor for the next page, or null if no more results
from line 234
234234 "claude_code_metrics": {
235235 "distinct_session_connector_used_count": 0
236236 },
237 "connector_display_name": "connector_display_name",
237238 "connector_name": "connector_name",
238239 "cowork_metrics": {
239240 "distinct_session_connector_used_count": 0
240241 },
241242 "distinct_user_count": 0,
243 "individual_auth_distinct_user_count": 0,
244 "managed_auth_distinct_user_count": 0,
242245 "office_metrics": {
243246 "excel": {
244247 "distinct_session_connector_used_count": 0
from line 256
253256 "distinct_session_connector_used_count": 0
254257 }
255258 },
259 "read_call_count": 0,
260 "unclassified_call_count": 0,
261 "write_call_count": 0,
256262 "chat_cowork_unified_metrics": {
257263 "chat": {
258264 "distinct_conversation_connector_used_count": 0
from line 267
261267 "distinct_session_connector_used_count": 0
262268 }
263269 },
264 "connector_display_name": "connector_display_name",
265 "individual_auth_distinct_user_count": 0,
266 "managed_auth_distinct_user_count": 0,
267270 "product": "product",
268271 "rbac_group_id": "rbac_group_id",
269272 "rbac_group_name": "rbac_group_name",
270 "read_call_count": 0,
271 "unclassified_call_count": 0,
272 "user_id": "user_id",
273 "write_call_count": 0
273 "user_id": "user_id"
274274 }
275275 ],
276276 "next_page": "next_page"

api/beta/organization/analytics/connectors/list Changed · +34 / -34 lines

from line 38
3838 
3939 maxItems: 100
4040 
41- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
41- `group_by: optional array of BetaAnalyticsConnectorGroupBy`
4242 
4343 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.
4444 
from line 56
5656 
5757 minimum: 1, maximum: 1000
5858 
59- `order: optional "asc" or "desc"`
59- `order: optional BetaAnalyticsOrder`
6060 
6161 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.
6262 
from line 106
106106 
107107 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.
108108 
109 - `connector_display_name: string or null`
110 
111 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.
112 
109113 - `connector_name: string`
110114 
111115 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 126
122126 
123127 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.
124128 
129 - `individual_auth_distinct_user_count: number or null`
130 
131 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.
132 
133 - `managed_auth_distinct_user_count: number or null`
134 
135 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.
136 
125137 - `office_metrics: BetaAnalyticsConnectorOfficeMetrics`
126138 
127139 Office Agent activity metrics for a single connector on a given day, broken out by Office product.
from line 158
146158 
147159 Office Agent activity metrics for a single connector on a given day within one Office product.
148160 
149 - `chat_cowork_unified_metrics: optional object or null`
161 - `read_call_count: number or null`
150162 
163 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.
164 
165 - `unclassified_call_count: number or null`
166 
167 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.
168 
169 - `write_call_count: number or null`
170 
171 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.
172 
173 - `chat_cowork_unified_metrics: optional BetaAnalyticsConnectorChatCoworkUnifiedMetrics or null`
174 
151175 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.
152176 
153177 - `chat: BetaAnalyticsConnectorChatCoworkUnifiedChatMetrics`
from line 192
168192 
169193 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.
170194 
171 - `connector_display_name: optional string or null`
172 
173 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.
174 
175 - `individual_auth_distinct_user_count: optional number or null`
176 
177 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.
178 
179 - `managed_auth_distinct_user_count: optional number or null`
180 
181 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.
182 
183195 - `product: optional string or null`
184196 
185197 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 204
192204 
193205 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.
194206 
195 - `read_call_count: optional number or null`
196 
197 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.
198 
199 - `unclassified_call_count: optional number or null`
200 
201 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.
202 
203207 - `user_id: optional string or null`
204208 
205209 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
206210 
207 - `write_call_count: optional number or null`
208 
209 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.
210 
211211- `next_page: string or null`
212212 
213213 Opaque cursor for the next page, or null if no more results
from line 232
232232 "claude_code_metrics": {
233233 "distinct_session_connector_used_count": 0
234234 },
235 "connector_display_name": "connector_display_name",
235236 "connector_name": "connector_name",
236237 "cowork_metrics": {
237238 "distinct_session_connector_used_count": 0
238239 },
239240 "distinct_user_count": 0,
241 "individual_auth_distinct_user_count": 0,
242 "managed_auth_distinct_user_count": 0,
240243 "office_metrics": {
241244 "excel": {
242245 "distinct_session_connector_used_count": 0
from line 254
251254 "distinct_session_connector_used_count": 0
252255 }
253256 },
257 "read_call_count": 0,
258 "unclassified_call_count": 0,
259 "write_call_count": 0,
254260 "chat_cowork_unified_metrics": {
255261 "chat": {
256262 "distinct_conversation_connector_used_count": 0
from line 265
259265 "distinct_session_connector_used_count": 0
260266 }
261267 },
262 "connector_display_name": "connector_display_name",
263 "individual_auth_distinct_user_count": 0,
264 "managed_auth_distinct_user_count": 0,
265268 "product": "product",
266269 "rbac_group_id": "rbac_group_id",
267270 "rbac_group_name": "rbac_group_name",
268 "read_call_count": 0,
269 "unclassified_call_count": 0,
270 "user_id": "user_id",
271 "write_call_count": 0
271 "user_id": "user_id"
272272 }
273273 ],
274274 "next_page": "next_page"

api/beta/organization/analytics/plugins Changed · +8 / -8 lines

from line 43
4343 
4444 maxItems: 100
4545 
46- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
46- `group_by: optional array of BetaAnalyticsPluginGroupBy`
4747 
4848 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.
4949 
from line 61
6161 
6262 minimum: 1, maximum: 1000
6363 
64- `order: optional "asc" or "desc"`
64- `order: optional BetaAnalyticsOrder`
6565 
6666 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.
6767 
from line 123
123123 
124124 Number of plugin invocations on the requested day
125125 
126 - `plugin_id: string or null`
127 
128 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.
129 
126130 - `plugin_name: string`
127131 
128132 Name of the plugin
129133 
130 - `chat_cowork_unified_metrics: optional object or null`
134 - `chat_cowork_unified_metrics: optional BetaAnalyticsPluginChatCoworkUnifiedMetrics or null`
131135 
132136 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.
133137 
from line 139
135139 
136140 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.
137141 
138 - `plugin_id: optional string or null`
139 
140 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.
141 
142142 - `product: optional string or null`
143143 
144144 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 182
182182 "distinct_user_count": 0,
183183 "install_count": 0,
184184 "invocation_count": 0,
185 "plugin_id": "plugin_id",
185186 "plugin_name": "plugin_name",
186187 "chat_cowork_unified_metrics": {
187188 "distinct_session_plugin_used_count": 0
188189 },
189 "plugin_id": "plugin_id",
190190 "product": "product",
191191 "rbac_group_id": "rbac_group_id",
192192 "rbac_group_name": "rbac_group_name",

api/beta/organization/analytics/plugins/list Changed · +8 / -8 lines

from line 41
4141 
4242 maxItems: 100
4343 
44- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
44- `group_by: optional array of BetaAnalyticsPluginGroupBy`
4545 
4646 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.
4747 
from line 59
5959 
6060 minimum: 1, maximum: 1000
6161 
62- `order: optional "asc" or "desc"`
62- `order: optional BetaAnalyticsOrder`
6363 
6464 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.
6565 
from line 121
121121 
122122 Number of plugin invocations on the requested day
123123 
124 - `plugin_id: string or null`
125 
126 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.
127 
124128 - `plugin_name: string`
125129 
126130 Name of the plugin
127131 
128 - `chat_cowork_unified_metrics: optional object or null`
132 - `chat_cowork_unified_metrics: optional BetaAnalyticsPluginChatCoworkUnifiedMetrics or null`
129133 
130134 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.
131135 
from line 137
133137 
134138 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.
135139 
136 - `plugin_id: optional string or null`
137 
138 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.
139 
140140 - `product: optional string or null`
141141 
142142 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 180
180180 "distinct_user_count": 0,
181181 "install_count": 0,
182182 "invocation_count": 0,
183 "plugin_id": "plugin_id",
183184 "plugin_name": "plugin_name",
184185 "chat_cowork_unified_metrics": {
185186 "distinct_session_plugin_used_count": 0
186187 },
187 "plugin_id": "plugin_id",
188188 "product": "product",
189189 "rbac_group_id": "rbac_group_id",
190190 "rbac_group_name": "rbac_group_name",

api/beta/organization/analytics/skills Changed · +44 / -44 lines

from line 38
3838 
3939 maxItems: 100
4040 
41- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
41- `group_by: optional array of BetaAnalyticsSkillGroupBy`
4242 
4343 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.
4444 
from line 56
5656 
5757 minimum: 1, maximum: 1000
5858 
59- `order: optional "asc" or "desc"`
59- `order: optional BetaAnalyticsOrder`
6060 
6161 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.
6262 
from line 90
9090 
9191- `data: array of BetaAnalyticsSkillActivity`
9292 
93 - `attributed_list_price: string or null`
94 
95 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.
96 
9397 - `chat_metrics: BetaAnalyticsSkillChatMetrics`
9498 
9599 Claude.ai activity metrics for a single skill on a given day.
from line 118
114118 
115119 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.
116120 
121 - `currency: string or null`
122 
123 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.
124 
117125 - `distinct_user_count: number`
118126 
119127 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.
120128 
129 - `enable_count: number or null`
130 
131 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`).
132 
133 - `estimated_overage_spend: string or null`
134 
135 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.
136 
137 - `invocation_count: number or null`
138 
139 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.
140 
121141 - `office_metrics: BetaAnalyticsSkillOfficeMetrics`
122142 
123143 Office Agent activity metrics for a single skill on a given day, broken out by Office product.
from line 162
142162 
143163 Office Agent activity metrics for a single skill on a given day within one Office product.
144164 
145 - `skill_name: string`
165 - `share_status: "organization" or "private" or "public" or null`
146166 
147 Name of the skill
167 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}`.
148168 
149 - `attributed_list_price: optional string or null`
169 - `"organization"`
150170 
151 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.
171 - `"private"`
152172 
153 - `chat_cowork_unified_metrics: optional object or null`
173 - `"public"`
154174 
175 - `skill_display_name: string or null`
176 
177 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.
178 
179 - `skill_name: string`
180 
181 Name of the skill
182 
183 - `chat_cowork_unified_metrics: optional BetaAnalyticsSkillChatCoworkUnifiedMetrics or null`
184 
155185 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.
156186 
157187 - `chat: BetaAnalyticsSkillChatCoworkUnifiedChatMetrics`
from line 202
172202 
173203 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.
174204 
175 - `currency: optional string or null`
176 
177 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.
178 
179 - `enable_count: optional number or null`
180 
181 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`).
182 
183 - `estimated_overage_spend: optional string or null`
184 
185 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.
186 
187 - `invocation_count: optional number or null`
188 
189 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.
190 
191205 - `product: optional string or null`
192206 
193207 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 214
200214 
201215 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.
202216 
203 - `share_status: optional "organization" or "private" or "public" or null`
204 
205 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}`.
206 
207 - `"organization"`
208 
209 - `"private"`
210 
211 - `"public"`
212 
213 - `skill_display_name: optional string or null`
214 
215 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.
216 
217217 - `user_id: optional string or null`
218218 
219219 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
from line 236
236236{
237237 "data": [
238238 {
239 "attributed_list_price": "attributed_list_price",
239240 "chat_metrics": {
240241 "distinct_conversation_skill_used_count": 0
241242 },
from line 246
245246 "cowork_metrics": {
246247 "distinct_session_skill_used_count": 0
247248 },
249 "currency": "currency",
248250 "distinct_user_count": 0,
251 "enable_count": 0,
252 "estimated_overage_spend": "estimated_overage_spend",
253 "invocation_count": 0,
249254 "office_metrics": {
250255 "excel": {
251256 "distinct_session_skill_used_count": 0
from line 265
260265 "distinct_session_skill_used_count": 0
261266 }
262267 },
268 "share_status": "organization",
269 "skill_display_name": "skill_display_name",
263270 "skill_name": "skill_name",
264 "attributed_list_price": "attributed_list_price",
265271 "chat_cowork_unified_metrics": {
266272 "chat": {
267273 "distinct_conversation_skill_used_count": 0
from line 276
270276 "distinct_session_skill_used_count": 0
271277 }
272278 },
273 "currency": "currency",
274 "enable_count": 0,
275 "estimated_overage_spend": "estimated_overage_spend",
276 "invocation_count": 0,
277279 "product": "product",
278280 "rbac_group_id": "rbac_group_id",
279281 "rbac_group_name": "rbac_group_name",
280 "share_status": "organization",
281 "skill_display_name": "skill_display_name",
282282 "user_id": "user_id"
283283 }
284284 ],

api/beta/organization/analytics/skills/list Changed · +44 / -44 lines

from line 36
3636 
3737 maxItems: 100
3838 
39- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
39- `group_by: optional array of BetaAnalyticsSkillGroupBy`
4040 
4141 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.
4242 
from line 54
5454 
5555 minimum: 1, maximum: 1000
5656 
57- `order: optional "asc" or "desc"`
57- `order: optional BetaAnalyticsOrder`
5858 
5959 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.
6060 
from line 88
8888 
8989- `data: array of BetaAnalyticsSkillActivity`
9090 
91 - `attributed_list_price: string or null`
92 
93 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.
94 
9195 - `chat_metrics: BetaAnalyticsSkillChatMetrics`
9296 
9397 Claude.ai activity metrics for a single skill on a given day.
from line 116
112116 
113117 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.
114118 
119 - `currency: string or null`
120 
121 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.
122 
115123 - `distinct_user_count: number`
116124 
117125 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.
118126 
127 - `enable_count: number or null`
128 
129 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`).
130 
131 - `estimated_overage_spend: string or null`
132 
133 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.
134 
135 - `invocation_count: number or null`
136 
137 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.
138 
119139 - `office_metrics: BetaAnalyticsSkillOfficeMetrics`
120140 
121141 Office Agent activity metrics for a single skill on a given day, broken out by Office product.
from line 160
140160 
141161 Office Agent activity metrics for a single skill on a given day within one Office product.
142162 
143 - `skill_name: string`
163 - `share_status: "organization" or "private" or "public" or null`
144164 
145 Name of the skill
165 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}`.
146166 
147 - `attributed_list_price: optional string or null`
167 - `"organization"`
148168 
149 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.
169 - `"private"`
150170 
151 - `chat_cowork_unified_metrics: optional object or null`
171 - `"public"`
152172 
173 - `skill_display_name: string or null`
174 
175 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.
176 
177 - `skill_name: string`
178 
179 Name of the skill
180 
181 - `chat_cowork_unified_metrics: optional BetaAnalyticsSkillChatCoworkUnifiedMetrics or null`
182 
153183 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.
154184 
155185 - `chat: BetaAnalyticsSkillChatCoworkUnifiedChatMetrics`
from line 200
170200 
171201 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.
172202 
173 - `currency: optional string or null`
174 
175 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.
176 
177 - `enable_count: optional number or null`
178 
179 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`).
180 
181 - `estimated_overage_spend: optional string or null`
182 
183 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.
184 
185 - `invocation_count: optional number or null`
186 
187 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.
188 
189203 - `product: optional string or null`
190204 
191205 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 212
198212 
199213 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.
200214 
201 - `share_status: optional "organization" or "private" or "public" or null`
202 
203 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}`.
204 
205 - `"organization"`
206 
207 - `"private"`
208 
209 - `"public"`
210 
211 - `skill_display_name: optional string or null`
212 
213 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.
214 
215215 - `user_id: optional string or null`
216216 
217217 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
from line 234
234234{
235235 "data": [
236236 {
237 "attributed_list_price": "attributed_list_price",
237238 "chat_metrics": {
238239 "distinct_conversation_skill_used_count": 0
239240 },
from line 244
243244 "cowork_metrics": {
244245 "distinct_session_skill_used_count": 0
245246 },
247 "currency": "currency",
246248 "distinct_user_count": 0,
249 "enable_count": 0,
250 "estimated_overage_spend": "estimated_overage_spend",
251 "invocation_count": 0,
247252 "office_metrics": {
248253 "excel": {
249254 "distinct_session_skill_used_count": 0
from line 263
258263 "distinct_session_skill_used_count": 0
259264 }
260265 },
266 "share_status": "organization",
267 "skill_display_name": "skill_display_name",
261268 "skill_name": "skill_name",
262 "attributed_list_price": "attributed_list_price",
263269 "chat_cowork_unified_metrics": {
264270 "chat": {
265271 "distinct_conversation_skill_used_count": 0
from line 274
268274 "distinct_session_skill_used_count": 0
269275 }
270276 },
271 "currency": "currency",
272 "enable_count": 0,
273 "estimated_overage_spend": "estimated_overage_spend",
274 "invocation_count": 0,
275277 "product": "product",
276278 "rbac_group_id": "rbac_group_id",
277279 "rbac_group_name": "rbac_group_name",
278 "share_status": "organization",
279 "skill_display_name": "skill_display_name",
280280 "user_id": "user_id"
281281 }
282282 ],

api/beta/organization/analytics/users Changed · +64 / -64 lines

from line 37
3737 
3838 maxItems: 100
3939 
40- `group_by: optional array of "rbac_group_id"`
40- `group_by: optional array of BetaAnalyticsUserGroupBy`
4141 
4242 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.
4343 
from line 49
4949 
5050 minimum: 1, maximum: 1000
5151 
52- `order: optional "asc" or "desc"`
52- `order: optional BetaAnalyticsOrder`
5353 
5454 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.
5555 
from line 223
223223 
224224 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.
225225 
226 - `distinct_plugins_used_count: number or null`
227 
228 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.
229 
226230 - `distinct_session_count: number or null`
227231 
228232 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 235
231235 
232236 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.
233237 
234 - `message_count: number`
238 - `edit_tool_count: number or null`
235239 
236 Number of messages sent in Cowork sessions
237 
238 - `skills_used_count: number`
239 
240 Total number of skill invocations in Cowork sessions
241 
242 - `distinct_plugins_used_count: optional number or null`
243 
244 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.
245 
246 - `edit_tool_count: optional number or null`
247 
248240 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
249241 
250 - `file_edit_count: optional number or null`
242 - `file_edit_count: number or null`
251243 
252244 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.
253245 
254 - `multi_edit_tool_count: optional number or null`
246 - `message_count: number`
255247 
248 Number of messages sent in Cowork sessions
249 
250 - `multi_edit_tool_count: number or null`
251 
256252 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
257253 
258 - `notebook_edit_tool_count: optional number or null`
254 - `notebook_edit_tool_count: number or null`
259255 
260256 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
261257 
262 - `plugins_used_count: optional number or null`
258 - `plugins_used_count: number or null`
263259 
264260 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
265261 
266 - `sessions_with_file_edits_count: optional number or null`
262 - `sessions_with_file_edits_count: number or null`
267263 
268264 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.
269265 
270 - `write_tool_count: optional number or null`
266 - `skills_used_count: number`
271267 
268 Total number of skill invocations in Cowork sessions
269 
270 - `write_tool_count: number or null`
271 
272272 Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
273273 
274274 - `design_metrics: BetaAnalyticsDesignMetrics`
from line 291
291291 
292292 Number of messages sent in Claude Design sessions
293293 
294 - `distinct_user_count: number or null`
295 
296 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.
297 
294298 - `office_metrics: BetaAnalyticsOfficeMetrics`
295299 
296300 Office Agent activity metrics for a single user on a given day, broken out by Office product.
from line 363
359363 
360364 Total number of skill invocations in Claude Science sessions
361365 
366 - `user: BetaAnalyticsUser or null`
367 
368 The user this row describes. Null on rows aggregated across users.
369 
370 - `type: "user"`
371 
372 Object type. Always `user`.
373 
374 default: user
375 
376 - `id: string`
377 
378 Tagged user identifier (e.g. `user_...`)
379 
380 - `email_address: string`
381 
382 Email address of the user
383 
362384 - `web_search_count: number`
363385 
364386 Number of web searches performed
365387 
366 - `chat_cowork_unified_metrics: optional object or null`
388 - `chat_cowork_unified_metrics: optional BetaAnalyticsChatCoworkUnifiedMetrics or null`
367389 
368390 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.
369391 
from line 515
493515 
494516 Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
495517 
496 - `distinct_user_count: optional number or null`
497 
498 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.
499 
500518 - `last_activity_date: optional string or null`
501519 
502520 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 529
511529 
512530 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.
513531 
514 - `user: optional BetaAnalyticsUser or null`
515 
516 The user this row describes. Null on rows aggregated across users.
517 
518 - `type: "user"`
519 
520 Object type. Always `user`.
521 
522 default: user
523 
524 - `id: string`
525 
526 Tagged user identifier (e.g. `user_...`)
527 
528 - `email_address: string`
529 
530 Email address of the user
531 
532532- `next_page: string or null`
533533 
534534 Opaque cursor for the next page, or null if no more results
from line 597
597597 "connectors_used_count": 0,
598598 "dispatch_turn_count": 0,
599599 "distinct_connectors_used_count": 0,
600 "distinct_plugins_used_count": 0,
600601 "distinct_session_count": 0,
601602 "distinct_skills_used_count": 0,
602 "message_count": 0,
603 "skills_used_count": 0,
604 "distinct_plugins_used_count": 0,
605603 "edit_tool_count": 0,
606604 "file_edit_count": 0,
605 "message_count": 0,
607606 "multi_edit_tool_count": 0,
608607 "notebook_edit_tool_count": 0,
609608 "plugins_used_count": 0,
610609 "sessions_with_file_edits_count": 0,
610 "skills_used_count": 0,
611611 "write_tool_count": 0
612612 },
613613 "design_metrics": {
from line 616
616616 "distinct_session_count": 0,
617617 "message_count": 0
618618 },
619 "distinct_user_count": 0,
619620 "office_metrics": {
620621 "excel": {
621622 "connectors_used_count": 0,
from line 658
657658 "remote_compute_job_count": 0,
658659 "skills_used_count": 0
659660 },
661 "user": {
662 "id": "id",
663 "email_address": "email_address",
664 "type": "user"
665 },
660666 "web_search_count": 0,
661667 "chat_cowork_unified_metrics": {
662668 "chat": {
from line 699
693699 "write_tool_count": 0
694700 }
695701 },
696 "distinct_user_count": 0,
697702 "last_activity_date": "2019-12-27",
698703 "rbac_group_id": "rbac_group_id",
699 "rbac_group_name": "rbac_group_name",
700 "user": {
701 "id": "id",
702 "email_address": "email_address",
703 "type": "user"
704 }
704 "rbac_group_name": "rbac_group_name"
705705 }
706706 ],
707707 "next_page": "next_page"

api/beta/organization/analytics/users/list Changed · +64 / -64 lines

from line 35
3535 
3636 maxItems: 100
3737 
38- `group_by: optional array of "rbac_group_id"`
38- `group_by: optional array of BetaAnalyticsUserGroupBy`
3939 
4040 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.
4141 
from line 47
4747 
4848 minimum: 1, maximum: 1000
4949 
50- `order: optional "asc" or "desc"`
50- `order: optional BetaAnalyticsOrder`
5151 
5252 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.
5353 
from line 221
221221 
222222 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.
223223 
224 - `distinct_plugins_used_count: number or null`
225 
226 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.
227 
224228 - `distinct_session_count: number or null`
225229 
226230 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 233
229233 
230234 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.
231235 
232 - `message_count: number`
236 - `edit_tool_count: number or null`
233237 
234 Number of messages sent in Cowork sessions
235 
236 - `skills_used_count: number`
237 
238 Total number of skill invocations in Cowork sessions
239 
240 - `distinct_plugins_used_count: optional number or null`
241 
242 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.
243 
244 - `edit_tool_count: optional number or null`
245 
246238 Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
247239 
248 - `file_edit_count: optional number or null`
240 - `file_edit_count: number or null`
249241 
250242 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.
251243 
252 - `multi_edit_tool_count: optional number or null`
244 - `message_count: number`
253245 
246 Number of messages sent in Cowork sessions
247 
248 - `multi_edit_tool_count: number or null`
249 
254250 Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
255251 
256 - `notebook_edit_tool_count: optional number or null`
252 - `notebook_edit_tool_count: number or null`
257253 
258254 Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
259255 
260 - `plugins_used_count: optional number or null`
256 - `plugins_used_count: number or null`
261257 
262258 Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization.
263259 
264 - `sessions_with_file_edits_count: optional number or null`
260 - `sessions_with_file_edits_count: number or null`
265261 
266262 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.
267263 
268 - `write_tool_count: optional number or null`
264 - `skills_used_count: number`
269265 
266 Total number of skill invocations in Cowork sessions
267 
268 - `write_tool_count: number or null`
269 
270270 Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization.
271271 
272272 - `design_metrics: BetaAnalyticsDesignMetrics`
from line 289
289289 
290290 Number of messages sent in Claude Design sessions
291291 
292 - `distinct_user_count: number or null`
293 
294 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.
295 
292296 - `office_metrics: BetaAnalyticsOfficeMetrics`
293297 
294298 Office Agent activity metrics for a single user on a given day, broken out by Office product.
from line 361
357361 
358362 Total number of skill invocations in Claude Science sessions
359363 
364 - `user: BetaAnalyticsUser or null`
365 
366 The user this row describes. Null on rows aggregated across users.
367 
368 - `type: "user"`
369 
370 Object type. Always `user`.
371 
372 default: user
373 
374 - `id: string`
375 
376 Tagged user identifier (e.g. `user_...`)
377 
378 - `email_address: string`
379 
380 Email address of the user
381 
360382 - `web_search_count: number`
361383 
362384 Number of web searches performed
363385 
364 - `chat_cowork_unified_metrics: optional object or null`
386 - `chat_cowork_unified_metrics: optional BetaAnalyticsChatCoworkUnifiedMetrics or null`
365387 
366388 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.
367389 
from line 513
491513 
492514 Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on.
493515 
494 - `distinct_user_count: optional number or null`
495 
496 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.
497 
498516 - `last_activity_date: optional string or null`
499517 
500518 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 527
509527 
510528 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.
511529 
512 - `user: optional BetaAnalyticsUser or null`
513 
514 The user this row describes. Null on rows aggregated across users.
515 
516 - `type: "user"`
517 
518 Object type. Always `user`.
519 
520 default: user
521 
522 - `id: string`
523 
524 Tagged user identifier (e.g. `user_...`)
525 
526 - `email_address: string`
527 
528 Email address of the user
529 
530530- `next_page: string or null`
531531 
532532 Opaque cursor for the next page, or null if no more results
from line 595
595595 "connectors_used_count": 0,
596596 "dispatch_turn_count": 0,
597597 "distinct_connectors_used_count": 0,
598 "distinct_plugins_used_count": 0,
598599 "distinct_session_count": 0,
599600 "distinct_skills_used_count": 0,
600 "message_count": 0,
601 "skills_used_count": 0,
602 "distinct_plugins_used_count": 0,
603601 "edit_tool_count": 0,
604602 "file_edit_count": 0,
603 "message_count": 0,
605604 "multi_edit_tool_count": 0,
606605 "notebook_edit_tool_count": 0,
607606 "plugins_used_count": 0,
608607 "sessions_with_file_edits_count": 0,
608 "skills_used_count": 0,
609609 "write_tool_count": 0
610610 },
611611 "design_metrics": {
from line 614
614614 "distinct_session_count": 0,
615615 "message_count": 0
616616 },
617 "distinct_user_count": 0,
617618 "office_metrics": {
618619 "excel": {
619620 "connectors_used_count": 0,
from line 656
655656 "remote_compute_job_count": 0,
656657 "skills_used_count": 0
657658 },
659 "user": {
660 "id": "id",
661 "email_address": "email_address",
662 "type": "user"
663 },
658664 "web_search_count": 0,
659665 "chat_cowork_unified_metrics": {
660666 "chat": {
from line 697
691697 "write_tool_count": 0
692698 }
693699 },
694 "distinct_user_count": 0,
695700 "last_activity_date": "2019-12-27",
696701 "rbac_group_id": "rbac_group_id",
697 "rbac_group_name": "rbac_group_name",
698 "user": {
699 "id": "id",
700 "email_address": "email_address",
701 "type": "user"
702 }
702 "rbac_group_name": "rbac_group_name"
703703 }
704704 ],
705705 "next_page": "next_page"
Feedback