Admin changedapi/admin
Nearest release: v2.1.250, published an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+795added
Lines−367removed
From line
54
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits6to this page, all time
The whole hunk
from line 54, old and new numbered
/
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 54
5454
5555**POST** `/v1/organizations/invites`
5656
57For Claude Enterprise organizations, this endpoint's availability is in beta.
57Invite a user to join the organization by email.
5858
5959On plans that draw members from a finite pool of purchased seats, the invite automatically consumes a seat from the lowest tier with availability; there is no seat-tier parameter. When no seat is free the request fails with a 400 error rather than purchasing a seat.
6060
from line 70
7070
7171 Role for the invited User.
7272
73 The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations (beta) accept `user` and `managed`.
73 The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`.
7474
7575 - `"billing"`
7676
from line 84
8484
8585- `rbac_group_ids: optional array of string`
8686
87 RBAC group IDs to assign to the User when the Invite is accepted. A non-empty array is accepted only for a Claude Enterprise organization with RBAC groups (beta), and requires the key to carry the `write:rbac_groups` scope.
87 RBAC group IDs to assign to the User when the Invite is accepted. A non-empty array is accepted only for a Claude Enterprise organization with RBAC groups, and requires the key to carry the `write:rbac_groups` scope.
8888
8989 maxItems: 100
9090
from line 120
120120
121121 - `rbac_group_ids: array of string`
122122
123 RBAC group IDs recorded on the Invite (beta, Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none.
123 RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none.
124124
125125 - `role: "admin" or "billing" or "claude_code_user" or 6 more`
126126
from line 199
199199
200200**GET** `/v1/organizations/invites/{invite_id}`
201201
202For Claude Enterprise organizations, this endpoint's availability is in beta.
202Retrieve an invite by ID.
203203
204204#### Path parameters
205205
from line 239
239239
240240 - `rbac_group_ids: array of string`
241241
242 RBAC group IDs recorded on the Invite (beta, Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none.
242 RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none.
243243
244244 - `role: "admin" or "billing" or "claude_code_user" or 6 more`
245245
from line 313
313313
314314**GET** `/v1/organizations/invites`
315315
316For Claude Enterprise organizations, this endpoint's availability is in beta.
316List the organization's invites.
317317
318318#### Query parameters
319319
from line 343
343343
344344 Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together.
345345
346 Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations (beta) accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`.
346 Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`.
347347
348348- `statuses: optional array of "accepted" or "expired" or "pending"`
349349
from line 387
387387
388388 - `rbac_group_ids: array of string`
389389
390 RBAC group IDs recorded on the Invite (beta, Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none.
390 RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none.
391391
392392 - `role: "admin" or "billing" or "claude_code_user" or 6 more`
393393
from line 480
480480
481481**DELETE** `/v1/organizations/invites/{invite_id}`
482482
483For Claude Enterprise organizations, this endpoint's availability is in beta.
483Delete a pending invite.
484484
485485#### Path parameters
486486
from line 526
526526
527527**GET** `/v1/organizations/users/{user_id}`
528528
529For Claude Enterprise organizations, this endpoint's availability is in beta.
529Retrieve a member of the organization by user ID.
530530
531531#### Path parameters
532532
from line 611
611611
612612**GET** `/v1/organizations/users`
613613
614For Claude Enterprise organizations, this endpoint's availability is in beta.
614List the organization's members.
615615
616616#### Query parameters
617617
from line 641
641641
642642 Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together.
643643
644 Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations (beta) accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`.
644 Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`.
645645
646646#### Returns
647647
from line 739
739739
740740**POST** `/v1/organizations/users/{user_id}`
741741
742For Claude Enterprise organizations, this endpoint's availability is in beta.
742Update a member's organization role.
743743
744744#### Path parameters
745745
from line 753
753753
754754 New role for the User.
755755
756 The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations (beta) accept `user` and `managed`.
756 The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`.
757757
758758 - `"billing"`
759759
from line 846
846846
847847**DELETE** `/v1/organizations/users/{user_id}`
848848
849For Claude Enterprise organizations, this endpoint's availability is in beta.
849Remove a member from the organization.
850850
851851#### Path parameters
852852
from line 894
894894
895895List RBAC Groups in the Claude Enterprise tenant.
896896
897The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
897The RBAC Groups API is available to Claude Enterprise organizations only.
898898
899899#### Query parameters
900900
from line 909
909909- `page: optional string`
910910
911911 Optionally set to the `next_page` token from the previous response.
912
913#### Headers
914
915- `"anthropic-beta": optional array of string`
916
917 Optional header to specify the beta version(s) you want to use.
918
919 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
920912
921913#### Returns
922914
from line 998
1006998
1007999Retrieve an RBAC Group by ID.
10081000
1009The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1001The RBAC Groups API is available to Claude Enterprise organizations only.
10101002
10111003#### Path parameters
10121004
10131005- `group_id: string`
10141006
10151007 ID of the RBAC Group.
1016
1017#### Headers
1018
1019- `"anthropic-beta": optional array of string`
1020
1021 Optional header to specify the beta version(s) you want to use.
1022
1023 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
10241008
10251009#### Returns
10261010
from line 1080
10961080
10971081Create an RBAC Group in the Claude Enterprise tenant. Groups created via the API have source type `"direct"`.
10981082
1099The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1100
1101#### Headers
1102
1103- `"anthropic-beta": optional array of string`
1104
1105 Optional header to specify the beta version(s) you want to use.
1106
1107 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
1083The RBAC Groups API is available to Claude Enterprise organizations only.
11081084
11091085#### Body parameters
11101086
from line 1168
11921168
11931169Update an RBAC Group's name. Groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API.
11941170
1195The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1171The RBAC Groups API is available to Claude Enterprise organizations only.
11961172
11971173#### Path parameters
11981174
11991175- `group_id: string`
12001176
12011177 ID of the RBAC Group.
1202
1203#### Headers
1204
1205- `"anthropic-beta": optional array of string`
1206
1207 Optional header to specify the beta version(s) you want to use.
1208
1209 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
12101178
12111179#### Body parameters
12121180
from line 1262
12941262
12951263Delete an RBAC Group. Groups provisioned by an identity provider (source type `"scim"`) cannot be deleted via the API.
12961264
1297The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1265The RBAC Groups API is available to Claude Enterprise organizations only.
12981266
12991267#### Path parameters
13001268
13011269- `group_id: string`
13021270
13031271 ID of the RBAC Group.
1304
1305#### Headers
1306
1307- `"anthropic-beta": optional array of string`
1308
1309 Optional header to specify the beta version(s) you want to use.
1310
1311 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
13121272
13131273#### Returns
13141274
from line 1312
13521312
13531313List members of an RBAC Group.
13541314
1355The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1315The RBAC Groups API is available to Claude Enterprise organizations only.
13561316
13571317#### Path parameters
13581318
from line 1333
13731333- `page: optional string`
13741334
13751335 Optionally set to the `next_page` token from the previous response.
1376
1377#### Headers
1378
1379- `"anthropic-beta": optional array of string`
1380
1381 Optional header to specify the beta version(s) you want to use.
1382
1383 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
13841336
13851337#### Returns
13861338
from line 1404
14521404
14531405Add a User to an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API.
14541406
1455The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1407The RBAC Groups API is available to Claude Enterprise organizations only.
14561408
14571409#### Path parameters
14581410
14591411- `group_id: string`
14601412
14611413 ID of the RBAC Group.
1462
1463#### Headers
1464
1465- `"anthropic-beta": optional array of string`
1466
1467 Optional header to specify the beta version(s) you want to use.
1468
1469 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
14701414
14711415#### Body parameters
14721416
from line 1478
15341478
15351479Remove a User from an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API.
15361480
1537The RBAC Groups API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1481The RBAC Groups API is available to Claude Enterprise organizations only.
15381482
15391483#### Path parameters
15401484
from line 1489
15451489- `user_id: string`
15461490
15471491 ID of the User.
1548
1549#### Headers
1550
1551- `"anthropic-beta": optional array of string`
1552
1553 Optional header to specify the beta version(s) you want to use.
1554
1555 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
15561492
15571493#### Returns
15581494
from line 1535
15991535
16001536List RBAC Roles in the organization.
16011537
1602The RBAC Roles API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1538The RBAC Roles API is available to Claude Enterprise organizations only.
16031539
16041540#### Query parameters
16051541
from line 1550
16141550- `page: optional string`
16151551
16161552 Optionally set to the `next_page` token from the previous response.
1617
1618#### Headers
1619
1620- `"anthropic-beta": optional array of string`
1621
1622 Optional header to specify the beta version(s) you want to use.
1623
1624 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
16251553
16261554#### Returns
16271555
from line 1624
16961624
16971625Retrieve an RBAC Role by ID.
16981626
1699The RBAC Roles API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1627The RBAC Roles API is available to Claude Enterprise organizations only.
17001628
17011629#### Path parameters
17021630
17031631- `role_id: string`
17041632
17051633 ID of the RBAC Role.
1706
1707#### Headers
1708
1709- `"anthropic-beta": optional array of string`
1710
1711 Optional header to specify the beta version(s) you want to use.
1712
1713 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
17141634
17151635#### Returns
17161636
from line 1692
17721692
17731693List the permissions an RBAC Role grants.
17741694
1775The RBAC Roles API is in beta and available to Claude Enterprise organizations only. Requests must send the `ce-user-management-2026-07-13` value in the `anthropic-beta` header.
1695The RBAC Roles API is available to Claude Enterprise organizations only.
17761696
17771697#### Path parameters
17781698
from line 1713
17931713- `page: optional string`
17941714
17951715 Optionally set to the `next_page` token from the previous response.
1796
1797#### Headers
1798
1799- `"anthropic-beta": optional array of string`
1800
1801 Optional header to specify the beta version(s) you want to use.
1802
1803 To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
18041716
18051717#### Returns
18061718
from line 1889
19771889
19781890- `data_residency: optional object or null`
19791891
1980 Data residency configuration for the workspace. If omitted, defaults to workspace_geo=`"us"`, allowed_inference_geos=`"unrestricted"`, and default_inference_geo=`"global"`.
1892 Data residency configuration for the workspace. If omitted, defaults to `workspace_geo: "us"`, `allowed_inference_geos: "unrestricted"`, and `default_inference_geo: "global"`.
19811893
19821894 - `allowed_inference_geos: optional array of "global" or "us" or "unrestricted" or null`
19831895
from line 1905
19931905
19941906 - `default_inference_geo: optional "global" or "us" or null`
19951907
1996 Default inference geo applied when requests omit the parameter. Defaults to 'global' if omitted. Must be a member of allowed_inference_geos unless allowed_inference_geos is `"unrestricted"`.
1908 Default inference geo applied when requests omit the parameter. Defaults to 'global' if omitted. Must be a member of `allowed_inference_geos` unless `allowed_inference_geos` is `"unrestricted"`.
19971909
19981910 - `"global"`
19991911
from line 2362
24502362
24512363 - `default_inference_geo: optional "global" or "us" or null`
24522364
2453 Default inference geo applied when requests omit the parameter. Must be a member of allowed_inference_geos unless allowed_inference_geos is `"unrestricted"`.
2365 Default inference geo applied when requests omit the parameter. Must be a member of `allowed_inference_geos` unless `allowed_inference_geos` is `"unrestricted"`.
24542366
24552367 - `"global"`
24562368
from line 2651
27392651
27402652- `workspace_role: "workspace_admin" or "workspace_developer" or "workspace_restricted_developer" or "workspace_user"`
27412653
2742 Role of the new Workspace Member. Cannot be "workspace_billing".
2654 Role of the new Workspace Member. Cannot be `workspace_billing`.
27432655
27442656 - `"workspace_admin"`
27452657
from line 3224
33123224
33133225- `implicit: boolean or null`
33143226
3315 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role workspace_user and cannot be removed.
3227 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed.
33163228
33173229- `service_account_id: string`
33183230
from line 3317
34053317
34063318- `implicit: boolean or null`
34073319
3408 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role workspace_user and cannot be removed.
3320 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed.
34093321
34103322- `service_account_id: string`
34113323
from line 3415
35033415
35043416 - `implicit: boolean or null`
35053417
3506 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role workspace_user and cannot be removed.
3418 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed.
35073419
35083420 - `service_account_id: string`
35093421
from line 3527
36153527
36163528- `implicit: boolean or null`
36173529
3618 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role workspace_user and cannot be removed.
3530 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed.
36193531
36203532- `service_account_id: string`
36213533
from line 3682
37703682
37713683 ID of the actor that created the object.
37723684
3773 - `type: string`
3685 - `type: "service_account" or "user"`
37743686
37753687 Type of the actor that created the object.
37763688
3689 - `"service_account"`
3690
3691 - `"user"`
3692
37773693 - `expires_at: string or null`
37783694
37793695 RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires.
from line 3704
37883704
37893705 Partially redacted hint for the API key.
37903706
3791 - `principal: object or null`
3792
3793 The ID and type of the principal the API key acts as, or `null` if the key is not bound to a principal.
3794
3795 - `id: string`
3796
3797 ID of the principal the API key acts as: a User ID (`user_...`) when the type is `user`, or a Service Account ID (`svac_...`) when the type is `service_account`.
3798
3799 - `type: "service_account" or "user"`
3800
3801 Type of the principal the API key acts as.
3802
3803 - `"service_account"`
3804
3805 - `"user"`
3707 - `principal: object or object or null`
3708
3709 The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal.
3710
3711 - `UserActor object`
3712
3713 - `type: "user_actor"`
3714
3715 Principal type. Always `"user_actor"` for a User.
3716
3717 default: user_actor
3718
3719 - `user_id: string`
3720
3721 ID of the User the API key acts as.
3722
3723 - `ServiceAccountActor object`
3724
3725 - `service_account_id: string`
3726
3727 ID of the Service Account the API key acts as.
3728
3729 - `type: "service_account_actor"`
3730
3731 Principal type. Always `"service_account_actor"` for a Service Account.
3732
3733 default: service_account_actor
3734
3735 - `scope: object or object`
3736
3737 Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace.
3738
3739 - `Organization object`
3740
3741 - `type: "organization"`
3742
3743 Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope.
3744
3745 default: organization
3746
3747 - `Workspace object`
3748
3749 - `type: "workspace"`
3750
3751 Scope type. Always `"workspace"`: the API key belongs to one Workspace.
3752
3753 default: workspace
3754
3755 - `workspace_id: string`
3756
3757 ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace.
38063758
38073759 - `status: "active" or "archived" or "expired" or "inactive"`
38083760
from line 3778
38263778
38273779 - `workspace_id: string or null`
38283780
3829 ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace.
3781 **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace.
3782
3783 Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart.
38303784
38313785#### Example
38323786
from line 3804
38503804 "name": "Developer Key",
38513805 "partial_key_hint": "sk-ant-api03-R2D...igAA",
38523806 "principal": {
3853 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
3854 "type": "user"
3807 "type": "user_actor",
3808 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
3809 },
3810 "scope": {
3811 "type": "workspace",
3812 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
38553813 },
38563814 "status": "active",
38573815 "type": "api_key",
from line 3885
39273885
39283886 ID of the actor that created the object.
39293887
3930 - `type: string`
3888 - `type: "service_account" or "user"`
39313889
39323890 Type of the actor that created the object.
39333891
3892 - `"service_account"`
3893
3894 - `"user"`
3895
39343896 - `expires_at: string or null`
39353897
39363898 RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires.
from line 3907
39453907
39463908 Partially redacted hint for the API key.
39473909
3948 - `principal: object or null`
3949
3950 The ID and type of the principal the API key acts as, or `null` if the key is not bound to a principal.
3951
3952 - `id: string`
3953
3954 ID of the principal the API key acts as: a User ID (`user_...`) when the type is `user`, or a Service Account ID (`svac_...`) when the type is `service_account`.
3955
3956 - `type: "service_account" or "user"`
3957
3958 Type of the principal the API key acts as.
3959
3960 - `"service_account"`
3961
3962 - `"user"`
3910 - `principal: object or object or null`
3911
3912 The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal.
3913
3914 - `UserActor object`
3915
3916 - `type: "user_actor"`
3917
3918 Principal type. Always `"user_actor"` for a User.
3919
3920 default: user_actor
3921
3922 - `user_id: string`
3923
3924 ID of the User the API key acts as.
3925
3926 - `ServiceAccountActor object`
3927
3928 - `service_account_id: string`
3929
3930 ID of the Service Account the API key acts as.
3931
3932 - `type: "service_account_actor"`
3933
3934 Principal type. Always `"service_account_actor"` for a Service Account.
3935
3936 default: service_account_actor
3937
3938 - `scope: object or object`
3939
3940 Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace.
3941
3942 - `Organization object`
3943
3944 - `type: "organization"`
3945
3946 Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope.
3947
3948 default: organization
3949
3950 - `Workspace object`
3951
3952 - `type: "workspace"`
3953
3954 Scope type. Always `"workspace"`: the API key belongs to one Workspace.
3955
3956 default: workspace
3957
3958 - `workspace_id: string`
3959
3960 ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace.
39633961
39643962 - `status: "active" or "archived" or "expired" or "inactive"`
39653963
from line 3981
39833981
39843982 - `workspace_id: string or null`
39853983
3986 ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace.
3984 **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace.
3985
3986 Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart.
39873987
39883988- `first_id: string or null`
39893989
from line 4021
40214021 "name": "Developer Key",
40224022 "partial_key_hint": "sk-ant-api03-R2D...igAA",
40234023 "principal": {
4024 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
4025 "type": "user"
4024 "type": "user_actor",
4025 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
4026 },
4027 "scope": {
4028 "type": "workspace",
4029 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
40264030 },
40274031 "status": "active",
40284032 "type": "api_key",
from line 4093
40894093
40904094 ID of the actor that created the object.
40914095
4092 - `type: string`
4096 - `type: "service_account" or "user"`
40934097
40944098 Type of the actor that created the object.
40954099
4100 - `"service_account"`
4101
4102 - `"user"`
4103
40964104 - `expires_at: string or null`
40974105
40984106 RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires.
from line 4115
41074115
41084116 Partially redacted hint for the API key.
41094117
4110 - `principal: object or null`
4111
4112 The ID and type of the principal the API key acts as, or `null` if the key is not bound to a principal.
4113
4114 - `id: string`
4115
4116 ID of the principal the API key acts as: a User ID (`user_...`) when the type is `user`, or a Service Account ID (`svac_...`) when the type is `service_account`.
4117
4118 - `type: "service_account" or "user"`
4119
4120 Type of the principal the API key acts as.
4121
4122 - `"service_account"`
4123
4124 - `"user"`
4118 - `principal: object or object or null`
4119
4120 The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal.
4121
4122 - `UserActor object`
4123
4124 - `type: "user_actor"`
4125
4126 Principal type. Always `"user_actor"` for a User.
4127
4128 default: user_actor
4129
4130 - `user_id: string`
4131
4132 ID of the User the API key acts as.
4133
4134 - `ServiceAccountActor object`
4135
4136 - `service_account_id: string`
4137
4138 ID of the Service Account the API key acts as.
4139
4140 - `type: "service_account_actor"`
4141
4142 Principal type. Always `"service_account_actor"` for a Service Account.
4143
4144 default: service_account_actor
4145
4146 - `scope: object or object`
4147
4148 Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace.
4149
4150 - `Organization object`
4151
4152 - `type: "organization"`
4153
4154 Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope.
4155
4156 default: organization
4157
4158 - `Workspace object`
4159
4160 - `type: "workspace"`
4161
4162 Scope type. Always `"workspace"`: the API key belongs to one Workspace.
4163
4164 default: workspace
4165
4166 - `workspace_id: string`
4167
4168 ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace.
41254169
41264170 - `status: "active" or "archived" or "expired" or "inactive"`
41274171
from line 4189
41454189
41464190 - `workspace_id: string or null`
41474191
4148 ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace.
4192 **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace.
4193
4194 Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart.
41494195
41504196#### Example
41514197
from line 4217
41714217 "name": "Developer Key",
41724218 "partial_key_hint": "sk-ant-api03-R2D...igAA",
41734219 "principal": {
4174 "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
4175 "type": "user"
4220 "type": "user_actor",
4221 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
4222 },
4223 "scope": {
4224 "type": "workspace",
4225 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
41764226 },
41774227 "status": "active",
41784228 "type": "api_key",
from line 4256
42064256
42074257 - `region: optional string or null`
42084258
4209 AWS region. Derived from kms_arn if omitted.
4259 AWS region. Derived from `kms_arn` if omitted.
42104260
42114261 - `role_arn: optional string or null`
42124262
from line 4288
42384288
42394289 - `vault_uri: string`
42404290
4241 Key Vault data-plane URI — https://<vault-name>.vault.azure.net or https://<hsm-name>.managedhsm.azure.net.
4291 Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`.
42424292
42434293 - `client_id: optional string or null`
42444294
from line 4354
43044354
43054355 - `region: optional string or null`
43064356
4307 AWS region. Derived from kms_arn if omitted.
4357 AWS region. Derived from `kms_arn` if omitted.
43084358
43094359 - `role_arn: optional string or null`
43104360
from line 4384
43344384
43354385 - `vault_uri: string`
43364386
4337 Key Vault data-plane URI — https://<vault-name>.vault.azure.net or https://<hsm-name>.managedhsm.azure.net.
4387 Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`.
43384388
43394389 - `client_id: optional string or null`
43404390
from line 4508
44584508
44594509 - `region: optional string or null`
44604510
4461 AWS region. Derived from kms_arn if omitted.
4511 AWS region. Derived from `kms_arn` if omitted.
44624512
44634513 - `role_arn: optional string or null`
44644514
from line 4538
44884538
44894539 - `vault_uri: string`
44904540
4491 Key Vault data-plane URI — https://<vault-name>.vault.azure.net or https://<hsm-name>.managedhsm.azure.net.
4541 Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`.
44924542
44934543 - `client_id: optional string or null`
44944544
from line 4655
46054655
46064656 - `region: optional string or null`
46074657
4608 AWS region. Derived from kms_arn if omitted.
4658 AWS region. Derived from `kms_arn` if omitted.
46094659
46104660 - `role_arn: optional string or null`
46114661
from line 4685
46354685
46364686 - `vault_uri: string`
46374687
4638 Key Vault data-plane URI — https://<vault-name>.vault.azure.net or https://<hsm-name>.managedhsm.azure.net.
4688 Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`.
46394689
46404690 - `client_id: optional string or null`
46414691
from line 4775
47254775
47264776 - `region: optional string or null`
47274777
4728 AWS region. Derived from kms_arn if omitted.
4778 AWS region. Derived from `kms_arn` if omitted.
47294779
47304780 - `role_arn: optional string or null`
47314781
from line 4807
47574807
47584808 - `vault_uri: string`
47594809
4760 Key Vault data-plane URI — https://<vault-name>.vault.azure.net or https://<hsm-name>.managedhsm.azure.net.
4810 Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`.
47614811
47624812 - `client_id: optional string or null`
47634813
from line 4863
48134863
48144864 - `region: optional string or null`
48154865
4816 AWS region. Derived from kms_arn if omitted.
4866 AWS region. Derived from `kms_arn` if omitted.
48174867
48184868 - `role_arn: optional string or null`
48194869
from line 4893
48434893
48444894 - `vault_uri: string`
48454895
4846 Key Vault data-plane URI — https://<vault-name>.vault.azure.net or https://<hsm-name>.managedhsm.azure.net.
4896 Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`.
48474897
48484898 - `client_id: optional string or null`
48494899
from line 5325
52755325 "cache_read_input_tokens": 200,
52765326 "context_window": "0-200k",
52775327 "inference_geo": "global",
5278 "model": "claude-opus-4-6",
5328 "model": "claude-opus-5",
52795329 "output_tokens": 500,
52805330 "server_tool_use": {
52815331 "web_search_requests": 10
from line 5357
53075357
53085358 UTC date in YYYY-MM-DD format. Returns metrics for this single day only.
53095359
5310 pattern: ^\d{4}-\d{2}-\d{2}$
5360 pattern: ^\d{4}-\d{2}-\d{2}$, format: date
53115361
53125362- `limit: optional number`
53135363
from line 5561
55115561 "amount": 186,
55125562 "currency": "USD"
55135563 },
5514 "model": "claude-opus-4-8",
5564 "model": "claude-opus-5",
55155565 "tokens": {
55165566 "cache_creation": 2340,
55175567 "cache_read": 8790,
from line 5678
56285678
56295679 End of the time bucket (exclusive) in RFC 3339 format.
56305680
5681 format: date-time
5682
56315683 - `results: array of object`
56325684
56335685 List of cost items for this time bucket. There may be multiple items if one or more `group_by[]` parameters are specified.
from line 5760
57085760 - `starting_at: string`
57095761
57105762 Start of the time bucket (inclusive) in RFC 3339 format.
5763
5764 format: date-time
57115765
57125766 - `has_more: boolean`
57135767
from line 5792
57385792 "context_window": "0-200k",
57395793 "cost_type": "tokens",
57405794 "currency": "USD",
5741 "description": "Claude Sonnet 4 Usage - Input Tokens",
5795 "description": "Claude Opus 5 Usage - Input Tokens",
57425796 "inference_geo": "global",
5743 "model": "claude-opus-4-6",
5797 "model": "claude-opus-5",
57445798 "service_tier": "standard",
57455799 "token_type": "uncached_input_tokens",
57465800 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
from line 5816
57625816
57635817Get organization-wide activity summaries for a date range.
57645818
5765Returns one entry per day in [starting_date, ending_date). Data is
5766typically available with a 1-day lag and may be revised by a few percent
5767over the following days: when ending_date is omitted it defaults to the
5768most recent available day + 1, so the last entry covers the most recent
5769available day. The series can be scoped to an RBAC group via
5770filter[]=rbac_group_id:<id>. Available to organizations on a Claude
5771Enterprise plan. Requires an API key with the `read:analytics` scope.
5819Returns one entry per day from `starting_date` (inclusive) to `ending_date`
5820(exclusive). Data is typically available with a 1-day lag and may be
5821revised by a few percent over the following days: when `ending_date` is
5822omitted it defaults to the most recent available day + 1, so the last
5823entry covers the most recent available day. The series can be scoped to
5824an RBAC group via `filter[]=rbac_group_id:{id}`. Available to
5825organizations on a Claude Enterprise plan. Requires an API key with the
5826`read:analytics` scope.
57725827
57735828#### Query parameters
57745829
from line 5841
57865841
57875842- `filter: optional array of string`
57885843
5789 Filters as 'dimension:value'. Only rbac_group_id is supported (e.g. filter[]=rbac_group_id:<id>); repeat the param to OR across groups. Scopes the whole day series to members of the matching group(s), re-aggregated from member-level activity — org-wide seat/invite fields and the adoption rates derived from them are null on scoped rows. rbac_group_id accepts the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each UTC day (time-of-usage attribution). At most 100 entries.
5844 Filters as `dimension:value`. Only `rbac_group_id` is supported (e.g. `filter[]=rbac_group_id:{id}`); repeat the param to OR across groups. Scopes the whole day series to members of the matching group(s), re-aggregated from member-level activity — org-wide seat/invite fields and the adoption rates derived from them are null on scoped rows. `rbac_group_id` accepts the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each UTC day (time-of-usage attribution). At most 100 entries.
57905845
57915846 maxItems: 100
57925847
from line 5879
58245879
58255880 - `ending_at: string`
58265881
5827 End time in UTC of aggregation period (e.g. 2026-01-16T00:00:00Z)
5882 End of the aggregation period (exclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-16T00:00:00Z`).
5883
5884 format: date-time
58285885
58295886 - `monthly_active_user_count: number`
58305887
from line 5897
58405897
58415898 - `starting_at: string`
58425899
5843 Start time in UTC of aggregation period (e.g. 2026-01-15T00:00:00Z)
5900 Start of the aggregation period (inclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-15T00:00:00Z`).
5901
5902 format: date-time
58445903
58455904 - `weekly_active_user_count: number`
58465905
from line 5993
59345993 "cowork_weekly_active_user_count": 0,
59355994 "daily_active_user_count": 0,
59365995 "daily_adoption_rate": 0,
5937 "ending_at": "ending_at",
5996 "ending_at": "2019-12-27T18:11:19.117Z",
59385997 "monthly_active_user_count": 0,
59395998 "monthly_adoption_rate": 0,
59405999 "pending_invite_count": 0,
5941 "starting_at": "starting_at",
6000 "starting_at": "2019-12-27T18:11:19.117Z",
59426001 "weekly_active_user_count": 0,
59436002 "weekly_adoption_rate": 0,
59446003 "chat_daily_active_user_count": 0,
from line 6104
60456104
60466105- `limit: optional number`
60476106
6048 Maximum number of time buckets per page. Defaults and caps vary by bucket_width (1d: default 7, max 31; 1h: default 24, max 168; 1m: default 60, max 256).
6107 Maximum number of time buckets per page. Defaults and caps vary by `bucket_width` (`1d`: default 7, max 31; `1h`: default 24, max 168; `1m`: default 60, max 256).
60496108
60506109 minimum: 1
60516110
from line 6118
60596118
60606119 Opaque cursor from a previous response's `next_page` field.
60616120
6062- `products: optional array of string`
6063
6064 Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it.
6121- `products: optional array of "chat" or "claude-tag" or "claude_code" or 4 more`
6122
6123 Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values.
60656124
60666125 maxItems: 100
60676126
6127 - `"chat"`
6128
6129 - `"claude-tag"`
6130
6131 - `"claude_code"`
6132
6133 - `"claude_design"`
6134
6135 - `"claude_in_chrome"`
6136
6137 - `"cowork"`
6138
6139 - `"office_agent"`
6140
60686141- `rbac_group_ids: optional array of string`
60696142
60706143 Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.
from line 6218
61456218
61466219 - `model: string or null`
61476220
6148 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-4-6`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
6221 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
61496222
61506223 - `output_tokens: number`
61516224
from line 6226
61536226
61546227 - `product: string or null`
61556228
6156 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it. Some unattributed usage is reported as "other".
6229 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, and `claude-tag`. `claude-tag` is Claude Tag, the Claude product in Slack. Some unattributed usage is reported as "other".
61576230
61586231 - `rbac_group_id: string or null`
61596232
6160 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has ONE id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query with no group_by.
6233 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`.
61616234
61626235 - `requests: number or null`
61636236
from line 6308
62356308 "cache_read_input_tokens": 0,
62366309 "context_window": "0-200k",
62376310 "inference_geo": "global",
6238 "model": "claude-opus-4-6",
6311 "model": "claude-opus-5",
62396312 "output_tokens": 0,
62406313 "product": "chat",
62416314 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
from line 6457
63846457
63856458 Opaque cursor from a previous response's `next_page` field.
63866459
6387- `products: optional array of string`
6388
6389 Product surfaces to include. Defaults to all products. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it.
6460- `products: optional array of "chat" or "claude-tag" or "claude_code" or 4 more`
6461
6462 Product surfaces to include. Defaults to all products.
63906463
63916464 maxItems: 100
63926465
6466 - `"chat"`
6467
6468 - `"claude-tag"`
6469
6470 - `"claude_code"`
6471
6472 - `"claude_design"`
6473
6474 - `"claude_in_chrome"`
6475
6476 - `"cowork"`
6477
6478 - `"office_agent"`
6479
63936480- `rbac_group_ids: optional array of string`
63946481
63956482 Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.
from line 6519
64326519
64336520 - `deleted: boolean`
64346521
6435 True when the user is no longer a member of the organization or its associated organizations: either their membership was removed (for example, deprovisioned via your identity provider) or the account itself has been deleted. The flag reflects organization membership, not account status. `name` and `email` stay populated for removed members; `name` is `"Deleted User"` and `email` null when the account has been deleted. The `user_id` is still populated for reconciliation.
6522 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` 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.
64366523
64376524 - `email: string or null`
64386525
from line 6527
64406527
64416528 - `name: string or null`
64426529
6443 The user's current name, including for users who are no longer members of the organization or its associated organizations. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null.
6530 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null.
64446531
64456532 - `type: "user_actor"`
64466533
from line 6577
64906577
64916578 - `model: string or null`
64926579
6493 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-4-6`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
6580 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
64946581
64956582 - `output_tokens: number`
64966583
from line 6585
64986585
64996586 - `product: string or null`
65006587
6501 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it. Some unattributed usage is reported as "other".
6588 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, and `claude-tag`. `claude-tag` is Claude Tag, the Claude product in Slack. Some unattributed usage is reported as "other".
65026589
65036590 - `rbac_group_id: string or null`
65046591
6505 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has ONE id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query with no group_by.
6592 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`.
65066593
65076594 - `requests: number or null`
65086595
from line 6623
65366623
65376624 - `total_tokens: number`
65386625
6539 Total token count across all token types. This is the value the default order_by='total_tokens' sorts on.
6626 Total token count across all token types. This is the value the default `order_by` (`total_tokens`) sorts on.
65406627
65416628 - `uncached_input_tokens: number`
65426629
from line 6676
65896676 "context_window": "0-200k",
65906677 "ending_at": "2019-12-27T18:11:19.117Z",
65916678 "inference_geo": "global",
6592 "model": "claude-opus-4-6",
6679 "model": "claude-opus-5",
65936680 "output_tokens": 891000,
65946681 "product": "chat",
65956682 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
from line 6785
66986785
66996786- `limit: optional number`
67006787
6701 Maximum number of time buckets per page. Defaults and caps vary by bucket_width (1d: default 7, max 31; 1h: default 24, max 168; 1m: default 60, max 256).
6788 Maximum number of time buckets per page. Defaults and caps vary by `bucket_width` (`1d`: default 7, max 31; `1h`: default 24, max 168; `1m`: default 60, max 256).
67026789
67036790 minimum: 1
67046791
from line 6799
67126799
67136800 Opaque cursor from a previous response's `next_page` field.
67146801
6715- `products: optional array of string`
6716
6717 Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it.
6802- `products: optional array of "chat" or "claude-tag" or "claude_code" or 4 more`
6803
6804 Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values.
67186805
67196806 maxItems: 100
67206807
6808 - `"chat"`
6809
6810 - `"claude-tag"`
6811
6812 - `"claude_code"`
6813
6814 - `"claude_design"`
6815
6816 - `"claude_in_chrome"`
6817
6818 - `"cowork"`
6819
6820 - `"office_agent"`
6821
67216822- `rbac_group_ids: optional array of string`
67226823
67236824 Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.
from line 6907
68066907
68076908 - `model: string or null`
68086909
6809 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-4-6`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
6910 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
68106911
68116912 - `product: string or null`
68126913
6813 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it. Some unattributed usage is reported as "other".
6914 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, and `claude-tag`. `claude-tag` is Claude Tag, the Claude product in Slack. Some unattributed usage is reported as "other".
68146915
68156916 - `rbac_group_id: string or null`
68166917
6817 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has ONE id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query with no group_by.
6918 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`.
68186919
68196920 - `requests: number or null`
68206921
from line 6994
68936994 "currency": "USD",
68946995 "inference_geo": "global",
68956996 "list_amount": "list_amount",
6896 "model": "claude-opus-4-6",
6997 "model": "claude-opus-5",
68976998 "product": "chat",
68986999 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
68997000 "requests": 0,
from line 7139
70387139
70397140 Opaque cursor from a previous response's `next_page` field.
70407141
7041- `products: optional array of string`
7042
7043 Product surfaces to include. Defaults to all products. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it.
7142- `products: optional array of "chat" or "claude-tag" or "claude_code" or 4 more`
7143
7144 Product surfaces to include. Defaults to all products.
70447145
70457146 maxItems: 100
70467147
7148 - `"chat"`
7149
7150 - `"claude-tag"`
7151
7152 - `"claude_code"`
7153
7154 - `"claude_design"`
7155
7156 - `"claude_in_chrome"`
7157
7158 - `"cowork"`
7159
7160 - `"office_agent"`
7161
70477162- `rbac_group_ids: optional array of string`
70487163
70497164 Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.
from line 7201
70867201
70877202 - `deleted: boolean`
70887203
7089 True when the user is no longer a member of the organization or its associated organizations: either their membership was removed (for example, deprovisioned via your identity provider) or the account itself has been deleted. The flag reflects organization membership, not account status. `name` and `email` stay populated for removed members; `name` is `"Deleted User"` and `email` null when the account has been deleted. The `user_id` is still populated for reconciliation.
7204 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` 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.
70907205
70917206 - `email: string or null`
70927207
from line 7209
70947209
70957210 - `name: string or null`
70967211
7097 The user's current name, including for users who are no longer members of the organization or its associated organizations. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null.
7212 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null.
70987213
70997214 - `type: "user_actor"`
71007215
from line 7267
71527267
71537268 - `model: string or null`
71547269
7155 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-4-6`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
7270 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
71567271
71577272 - `product: string or null`
71587273
7159 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include "chat", "claude_code", "cowork", "office_agent", "claude_in_chrome", "claude_design", and "claude-in-slack". "claude-in-slack" (with hyphens) is Claude Tag, the Claude product in Slack. A similarly spelled legacy value (underscores instead of hyphens) identifies the retiring v1 Slack chat bot and appears only for organizations that used it. Some unattributed usage is reported as "other".
7274 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, and `claude-tag`. `claude-tag` is Claude Tag, the Claude product in Slack. Some unattributed usage is reported as "other".
71607275
71617276 - `rbac_group_id: string or null`
71627277
7163 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has ONE id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query with no group_by.
7278 RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`.
71647279
71657280 - `requests: number or null`
71667281
from line 7301
71867301
71877302 - `token_type: "cache_creation.ephemeral_1h_input_tokens" or "cache_creation.ephemeral_5m_input_tokens" or "cache_read_input_tokens" or 2 more or null`
71887303
7189 Token type when cost_type=tokens; null otherwise.
7304 Token type when `cost_type` is `tokens`; null otherwise.
71907305
71917306 - `"cache_creation.ephemeral_1h_input_tokens"`
71927307
from line 7359
72447359 "ending_at": "2019-12-27T18:11:19.117Z",
72457360 "inference_geo": "global",
72467361 "list_amount": "51600.000000",
7247 "model": "claude-opus-4-6",
7362 "model": "claude-opus-5",
72487363 "product": "chat",
72497364 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
72507365 "requests": 128,
from line 7385
72707385Get per-user activity for a given day, with cursor-based pagination.
72717386
72727387Returns activity metrics for each user in the organization, sorted by email
7273address. Use group_by[] for per-RBAC-group aggregates, or filter[] to
7388address. Use `group_by[]` for per-RBAC-group aggregates, or `filter[]` to
72747389scope results to specific members, groups, or a chat project. Available
72757390to organizations on a Claude Enterprise plan. Requires an API key with
72767391the `read:analytics` scope.
from line 7400
72857400
72867401- `ending_date: optional string`
72877402
7288 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with starting_date. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after starting_date.
7403 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`.
72897404
72907405 format: date
72917406
72927407- `filter: optional array of string`
72937408
7294 Filters as 'dimension:value', e.g. filter[]=rbac_group_id:<id>. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: project_id, rbac_group_id, user_id. Value forms: project_id takes a tagged project id (claude_proj_...) and scopes each member's row to their claude.ai chat activity within that project (it cannot be combined with group_by[] or an rbac_group_id filter); rbac_group_id takes the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); user_id takes a tagged user id (user_...), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
7409 Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `project_id`, `rbac_group_id`, `user_id`. Value forms: `project_id` takes a tagged project id (`claude_proj_...`) and scopes each member's row to their claude.ai chat activity within that project (it cannot be combined with `group_by[]` or an `rbac_group_id` filter); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
72957410
72967411 maxItems: 100
72977412
72987413- `group_by: optional array of "rbac_group_id"`
72997414
7300 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.
7415 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.
73017416
73027417 maxItems: 100
73037418
from line 7424
73097424
73107425- `order: optional "asc" or "desc"`
73117426
7312 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.
7427 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.
73137428
73147429 - `"asc"`
73157430
from line 7436
73217436
73227437- `page: optional string`
73237438
7324 Opaque cursor from a previous response's next_page field.
7439 Opaque cursor from a previous response's `next_page` field.
73257440
73267441- `starting_date: optional string`
73277442
7328 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either date or starting_date, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
7443 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
73297444
73307445 format: date
73317446
from line 7512
73977512
73987513 Core Claude Code activity metrics for a single user on a given day.
73997514
7515 - `artifacts_created_count: number`
7516
7517 Number of artifacts created in Claude Code sessions: an artifact counts once, on the day a session first saves it. Counted from 2026-08-17; 0 on earlier days. 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.
7518
74007519 - `commit_count: number`
74017520
74027521 Number of commits made via Claude Code
from line 7576
74577576
74587577 Number of tool actions completed in Cowork sessions
74597578
7579 - `artifacts_created_count: number`
7580
7581 Number of artifacts created in Cowork sessions: an artifact counts once, on the day a session first saves it. Counted from 2026-08-17; 0 on earlier days. 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.
7582
74607583 - `connectors_used_count: number`
74617584
74627585 Total number of connector invocations in Cowork sessions
from line 7738
76157738
76167739 - `last_activity_date: optional string or null`
76177740
7618 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 in [starting_date, ending_date) 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` it is the last day the user was active while a member of that group, consistent with the row's other metrics. Null on grouped (`group_by[]`) rows. Omitted from the response while last-activity reporting is not enabled for this organization.
7741 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.
7742
7743 format: date
76197744
76207745 - `rbac_group_id: optional string or null`
76217746
from line 7752
76277752
76287753 - `user: optional AnalyticsUser or null`
76297754
7630 User identifier.
7755 A user in the organization, identified by tagged id and email address.
76317756
76327757 - `id: string`
76337758
from line 7762
76377762
76387763 Email address of the user
76397764
7640 - `type: optional "user"`
7765 - `type: "user"`
76417766
76427767 Object type. Always `user`.
76437768
from line 7802
76777802 },
76787803 "claude_code_metrics": {
76797804 "core_metrics": {
7805 "artifacts_created_count": 0,
76807806 "commit_count": 0,
76817807 "distinct_session_count": 0,
76827808 "lines_of_code": {
from line 7832
77067832 },
77077833 "cowork_metrics": {
77087834 "action_count": 0,
7835 "artifacts_created_count": 0,
77097836 "connectors_used_count": 0,
77107837 "dispatch_turn_count": 0,
77117838 "distinct_connectors_used_count": 0,
from line 7898
77717898 },
77727899 "web_search_count": 0,
77737900 "distinct_user_count": 0,
7774 "last_activity_date": "last_activity_date",
7901 "last_activity_date": "2019-12-27",
77757902 "rbac_group_id": "rbac_group_id",
77767903 "rbac_group_name": "rbac_group_name",
77777904 "user": {
from line 7921
77947921Get per-skill usage for a given day, with cursor-based pagination.
77957922
77967923Returns skill usage metrics for the organization, sorted by skill name.
7797Use group_by[] to break usage out per member, per RBAC group, or per
7798product surface, and filter[] to scope results; the parameter
7924Use `group_by[]` to break usage out per member, per RBAC group, or per
7925product surface, and `filter[]` to scope results; the parameter
77997926descriptions list the supported dimensions. Available to organizations
78007927on a Claude Enterprise plan. Requires an API key with the
78017928`read:analytics` scope.
from line 7937
78107937
78117938- `ending_date: optional string`
78127939
7813 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with starting_date. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after starting_date.
7940 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`.
78147941
78157942 format: date
78167943
78177944- `filter: optional array of string`
78187945
7819 Filters as 'dimension:value', e.g. filter[]=rbac_group_id:<id>. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: product, rbac_group_id, share_status, skill_name, user_id. Value forms: product is one of chat, claude_code, cowork, or office_agent; rbac_group_id takes the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); share_status is one of organization, private, or public; skill_name matches case-insensitively; user_id takes a tagged user id (user_...), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
7946 Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `product`, `rbac_group_id`, `share_status`, `skill_name`, `user_id`. Value forms: `product` is one of `chat`, `claude_code`, `cowork`, or `office_agent`; `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `share_status` is one of `organization`, `private`, or `public`; `skill_name` matches case-insensitively; `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
78207947
78217948 maxItems: 100
78227949
78237950- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
78247951
7825 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.
7952 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.
78267953
78277954 maxItems: 100
78287955
from line 7967
78407967
78417968- `order: optional "asc" or "desc"`
78427969
7843 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.
7970 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.
78447971
78457972 - `"asc"`
78467973
from line 7979
78527979
78537980- `page: optional string`
78547981
7855 Opaque cursor from a previous response's next_page field.
7982 Opaque cursor from a previous response's `next_page` field.
78567983
78577984- `starting_date: optional string`
78587985
7859 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either date or starting_date, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
7986 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
78607987
78617988 format: date
78627989
from line 8053
79268053
79278054 - `attributed_list_price: optional string or null`
79288055
7929 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.
8056 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.
79308057
79318058 - `currency: optional "USD" or null`
79328059
7933 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.
8060 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.
79348061
79358062 - `enable_count: optional number or null`
79368063
7937 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).
8064 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`).
79388065
79398066 - `estimated_overage_spend: optional string or null`
79408067
7941 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.
8068 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.
79428069
79438070 - `invocation_count: optional number or null`
79448071
7945 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.
8072 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.
79468073
79478074 - `product: optional string or null`
79488075
7949 Product that produced this row's activity: one of chat, claude_code, cowork, or office_agent (the canonical Cost & Usage product naming; an office_agent row's per-surface breakdown is in its office_metrics). On /plugins only cowork and claude_code occur (the only surfaces with plugin attribution); /artifacts and /apps/chat/projects do not support the product dimension (a product `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by product.
8076 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, or `office_agent` (the canonical Cost & Usage product naming; an `office_agent` row's per-surface breakdown is in its `office_metrics`). On `/plugins` only `cowork` and `claude_code` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, and `cowork` 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`.
79508077
79518078 - `rbac_group_id: optional string or null`
79528079
from line 8083
79568083
79578084 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.
79588085
7959 - `share_status: optional string or null`
7960
7961 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>`.
8086 - `share_status: optional "organization" or "private" or "public" or null`
8087
8088 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}`.
8089
8090 - `"organization"`
8091
8092 - `"private"`
8093
8094 - `"public"`
79628095
79638096 - `skill_display_name: optional string or null`
79648097
7965 Human-readable display name for rows whose skill_name is an opaque skill id (user/organization skill types — user-defined names are withheld from the analytics pipeline). Only organization-shared skills resolve; the literal 'unknown' bucket row also gets a fixed 'Unknown skill' label. Null for private (user-defined) skills — their names are not disclosed to analytics-key holders — and null when skill_name is already a display name, when the skill was deleted, or when display-name resolution is not enabled for this organization.
8098 Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types — user-defined names are withheld from the analytics pipeline). Only organization-shared skills resolve; the literal 'unknown' bucket row also gets a fixed 'Unknown skill' label. Null for private (user-defined) skills — their names are not disclosed to analytics-key holders — and null when `skill_name` is already a display name, when the skill was deleted, or when display-name resolution is not enabled for this organization.
79668099
79678100 - `user_id: optional string or null`
79688101
from line 8152
80198152 "product": "product",
80208153 "rbac_group_id": "rbac_group_id",
80218154 "rbac_group_name": "rbac_group_name",
8022 "share_status": "share_status",
8155 "share_status": "organization",
80238156 "skill_display_name": "skill_display_name",
80248157 "user_id": "user_id"
80258158 }
from line 8172
80398172Returns connector usage metrics for the organization, sorted by connector
80408173name. Connector names are normalized from their various sources — for
80418174example, "Atlassian MCP server" and "mcp-atlassian" both appear as
8042"atlassian". Use group_by[] to break usage out per member, per RBAC
8043group, or per product surface, and filter[] to scope results; the
8175"atlassian". Use `group_by[]` to break usage out per member, per RBAC
8176group, or per product surface, and `filter[]` to scope results; the
80448177parameter descriptions list the supported dimensions. Available to
80458178organizations on a Claude Enterprise plan. Requires an API key with the
80468179`read:analytics` scope.
from line 8188
80558188
80568189- `ending_date: optional string`
80578190
8058 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with starting_date. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after starting_date.
8191 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`.
80598192
80608193 format: date
80618194
80628195- `filter: optional array of string`
80638196
8064 Filters as 'dimension:value', e.g. filter[]=rbac_group_id:<id>. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: connector_name, product, rbac_group_id, user_id. Value forms: connector_name matches case-insensitively, a display name such as 'GitHub MCP' also matches its normalized stored form ('github'), and for rows whose connector_name is an opaque connector id the connector's display name (connector_display_name) also matches; product is one of chat, claude_code, cowork, or office_agent; rbac_group_id takes the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); user_id takes a tagged user id (user_...), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
8197 Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `connector_name`, `product`, `rbac_group_id`, `user_id`. Value forms: `connector_name` matches case-insensitively, a display name such as 'GitHub MCP' also matches its normalized stored form ('github'), and for rows whose `connector_name` is an opaque connector id the connector's display name (`connector_display_name`) also matches; `product` is one of `chat`, `claude_code`, `cowork`, or `office_agent`; `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
80658198
80668199 maxItems: 100
80678200
80688201- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
80698202
8070 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.
8203 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.
80718204
80728205 maxItems: 100
80738206
from line 8218
80858218
80868219- `order: optional "asc" or "desc"`
80878220
8088 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.
8221 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.
80898222
80908223 - `"asc"`
80918224
from line 8230
80978230
80988231- `page: optional string`
80998232
8100 Opaque cursor from a previous response's next_page field.
8233 Opaque cursor from a previous response's `next_page` field.
81018234
81028235- `starting_date: optional string`
81038236
8104 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either date or starting_date, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
8237 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
81058238
81068239 format: date
81078240
from line 8264
81318264
81328265 - `connector_name: string`
81338266
8134 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.
8267 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.
81358268
81368269 - `cowork_metrics: object`
81378270
from line 8304
81718304
81728305 - `connector_display_name: optional string or null`
81738306
8174 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.
8307 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.
81758308
81768309 - `individual_auth_distinct_user_count: optional number or null`
81778310
8178 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.
8311 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.
81798312
81808313 - `managed_auth_distinct_user_count: optional number or null`
81818314
8182 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.
8315 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.
81838316
81848317 - `product: optional string or null`
81858318
8186 Product that produced this row's activity: one of chat, claude_code, cowork, or office_agent (the canonical Cost & Usage product naming; an office_agent row's per-surface breakdown is in its office_metrics). On /plugins only cowork and claude_code occur (the only surfaces with plugin attribution); /artifacts and /apps/chat/projects do not support the product dimension (a product `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by product.
8319 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, or `office_agent` (the canonical Cost & Usage product naming; an `office_agent` row's per-surface breakdown is in its `office_metrics`). On `/plugins` only `cowork` and `claude_code` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, and `cowork` 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`.
81878320
81888321 - `rbac_group_id: optional string or null`
81898322
from line 8328
81958328
81968329 - `read_call_count: optional number or null`
81978330
8198 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.
8331 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.
81998332
82008333 - `unclassified_call_count: optional number or null`
82018334
8202 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.
8335 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.
82038336
82048337 - `user_id: optional string or null`
82058338
from line 8340
82078340
82088341 - `write_call_count: optional number or null`
82098342
8210 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.
8343 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.
82118344
82128345 - `next_page: string or null`
82138346
from line 8410
82778410Get per-project activity for a given day, with cursor-based pagination.
82788411
82798412Returns activity metrics for each project in the organization, sorted by
8280project ID. Use group_by[] to break projects out per member or per RBAC
8281group, and filter[] to scope results; the parameter descriptions list the
8413project ID. Use `group_by[]` to break projects out per member or per RBAC
8414group, and `filter[]` to scope results; the parameter descriptions list the
82828415supported dimensions. Available to organizations on a Claude Enterprise
82838416plan. Requires an API key with the `read:analytics` scope.
82848417
from line 8425
82928425
82938426- `ending_date: optional string`
82948427
8295 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with starting_date. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after starting_date.
8428 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`.
82968429
82978430 format: date
82988431
82998432- `filter: optional array of string`
83008433
8301 Filters as 'dimension:value', e.g. filter[]=rbac_group_id:<id>. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: project_id, rbac_group_id, user_id. Value forms: project_id takes a tagged project id (claude_proj_...); rbac_group_id takes the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); user_id takes a tagged user id (user_...), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
8434 Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `project_id`, `rbac_group_id`, `user_id`. Value forms: `project_id` takes a tagged project id (`claude_proj_...`); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
83028435
83038436 maxItems: 100
83048437
83058438- `group_by: optional array of "rbac_group_id" or "user_id"`
83068439
8307 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.
8440 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.
83088441
83098442 maxItems: 100
83108443
from line 8453
83208453
83218454- `order: optional "asc" or "desc"`
83228455
8323 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.
8456 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.
83248457
83258458 - `"asc"`
83268459
from line 8465
83328465
83338466- `page: optional string`
83348467
8335 Opaque cursor from a previous response's next_page field.
8468 Opaque cursor from a previous response's `next_page` field.
83368469
83378470- `starting_date: optional string`
83388471
8339 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either date or starting_date, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
8472 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
83408473
83418474 format: date
83428475
from line 8491
83588491
83598492 - `project_id: string`
83608493
8361 Tagged project identifier (e.g. claude_proj_...)
8494 Tagged project identifier (e.g. `claude_proj_...`)
83628495
83638496 - `project_name: string`
83648497
from line 8499
83668499
83678500 - `created_at: optional string or null`
83688501
8369 Project creation timestamp, RFC 3339. Null if the project was deleted before attribution was recorded.
8502 Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded.
8503
8504 format: date-time
83708505
83718506 - `created_by: optional AnalyticsUser or null`
83728507
8373 User identifier.
8508 A user in the organization, identified by tagged id and email address.
83748509
83758510 - `id: string`
83768511
from line 8515
83808515
83818516 Email address of the user
83828517
8383 - `type: optional "user"`
8518 - `type: "user"`
83848519
83858520 Object type. Always `user`.
83868521
from line 8527
83928527
83938528 - `product: optional string or null`
83948529
8395 Product that produced this row's activity: one of chat, claude_code, cowork, or office_agent (the canonical Cost & Usage product naming; an office_agent row's per-surface breakdown is in its office_metrics). On /plugins only cowork and claude_code occur (the only surfaces with plugin attribution); /artifacts and /apps/chat/projects do not support the product dimension (a product `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by product.
8530 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, or `office_agent` (the canonical Cost & Usage product naming; an `office_agent` row's per-surface breakdown is in its `office_metrics`). On `/plugins` only `cowork` and `claude_code` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, and `cowork` 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`.
83968531
83978532 - `rbac_group_id: optional string or null`
83988533
from line 8563
84288563 "message_count": 0,
84298564 "project_id": "project_id",
84308565 "project_name": "project_name",
8431 "created_at": "created_at",
8566 "created_at": "2019-12-27T18:11:19.117Z",
84328567 "created_by": {
84338568 "id": "id",
84348569 "email_address": "email_address",
from line 8593
84588593an aggregate bucket, not a plugin: it collects plugin activity, from
84598594either surface, for which the reporting client did not provide a plugin
84608595name — so an organization's own plugins can contribute both to their own
8461named rows and to this bucket. Use group_by[] to break usage out per
8596named rows and to this bucket. Use `group_by[]` to break usage out per
84628597member, per RBAC group, or per product surface (Cowork / Claude Code),
8463and filter[] to scope results; the parameter descriptions list the
8598and `filter[]` to scope results; the parameter descriptions list the
84648599supported dimensions. Requires an API key with the
84658600`read:analytics` scope. `starting_date` / `ending_date` select
8466range-rollup mode like /skills.
8601range-rollup mode like `/skills`.
84678602
84688603#### Query parameters
84698604
from line 8610
84758610
84768611- `ending_date: optional string`
84778612
8478 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with starting_date. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after starting_date.
8613 UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`.
84798614
84808615 format: date
84818616
84828617- `filter: optional array of string`
84838618
8484 Filters as 'dimension:value', e.g. filter[]=rbac_group_id:<id>. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: plugin_name, product, rbac_group_id, user_id. Value forms: plugin_name matches case-insensitively; product is claude_code or cowork (the only surfaces with plugin attribution); rbac_group_id takes the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); user_id takes a tagged user id (user_...), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
8619 Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `plugin_name`, `product`, `rbac_group_id`, `user_id`. Value forms: `plugin_name` matches case-insensitively; `product` is `claude_code` or `cowork` (the only surfaces with plugin attribution); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
84858620
84868621 maxItems: 100
84878622
84888623- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
84898624
8490 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 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.
8625 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 `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.
84918626
84928627 maxItems: 100
84938628
from line 8640
85058640
85068641- `order: optional "asc" or "desc"`
85078642
8508 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.
8643 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.
85098644
85108645 - `"asc"`
85118646
from line 8652
85178652
85188653- `page: optional string`
85198654
8520 Opaque cursor from a previous response's next_page field.
8655 Opaque cursor from a previous response's `next_page` field.
85218656
85228657- `starting_date: optional string`
85238658
8524 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either date or starting_date, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
8659 UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01.
85258660
85268661 format: date
85278662
from line 8702
85678702
85688703 - `plugin_id: optional string or null`
85698704
8570 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.
8705 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.
85718706
85728707 - `product: optional string or null`
85738708
8574 Product that produced this row's activity: one of chat, claude_code, cowork, or office_agent (the canonical Cost & Usage product naming; an office_agent row's per-surface breakdown is in its office_metrics). On /plugins only cowork and claude_code occur (the only surfaces with plugin attribution); /artifacts and /apps/chat/projects do not support the product dimension (a product `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by product.
8709 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, or `office_agent` (the canonical Cost & Usage product naming; an `office_agent` row's per-surface breakdown is in its `office_metrics`). On `/plugins` only `cowork` and `claude_code` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, and `cowork` 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`.
85758710
85768711 - `rbac_group_id: optional string or null`
85778712
from line 8767
86328767
86338768Get artifact-creation activity for a given day, broken out by MIME type.
86348769
8635Returns the full (artifact_type, is_shared) cube for the organization;
8770Returns the full (`artifact_type`, `is_shared`) cube for the organization;
86368771`next_page` is null except for grouped queries, which paginate. The cube
8637can be broken out per member or per RBAC group via group_by[], and scoped
8638via filter[]. Requires an API key with the `read:analytics` scope.
8772can be broken out per product, per member, or per RBAC group via
8773`group_by[]`, and scoped via `filter[]`. Requires an API key with the
8774`read:analytics` scope.
86398775
86408776#### Query parameters
86418777
from line 8783
86478783
86488784- `filter: optional array of string`
86498785
8650 Filters as 'dimension:value', e.g. filter[]=rbac_group_id:<id>. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: artifact_type, is_shared, rbac_group_id, user_id. Value forms: artifact_type is a canonical artifact MIME type (e.g. text/markdown) or 'other'; is_shared is 'true' or 'false'; rbac_group_id takes the tagged id (rbac_group_..., as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); user_id takes a tagged user id (user_...), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
8786 Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `artifact_type`, `is_shared`, `product`, `rbac_group_id`, `user_id`. Value forms: `artifact_type` is a canonical artifact MIME type (e.g. `text/markdown`) or `other`; `is_shared` is `true` or `false`; `product` is `chat`, `claude_code`, or `cowork` (the surfaces that create artifacts); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries.
86518787
86528788 maxItems: 100
86538789
8654- `group_by: optional array of "rbac_group_id" or "user_id"`
8655
8656 Dimensions to break results out by: 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. 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.
8790- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
8791
8792 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`, `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.
86578793
86588794 maxItems: 100
86598795
8796 - `"product"`
8797
86608798 - `"rbac_group_id"`
86618799
86628800 - `"user_id"`
86638801
86648802- `limit: optional number`
86658803
8666 Maximum rows to return (1-1000, default 100). The ungrouped artifact-type cube is finite and returned in full; limit is the page size only when group_by[] multiplies the cube.
8804 Maximum rows to return (1-1000, default 100). The ungrouped artifact-type cube is finite and returned in full; `limit` is the page size only when `group_by[]` multiplies the cube.
86678805
86688806 minimum: 1, maximum: 1000
86698807
86708808- `page: optional string`
86718809
8672 Opaque cursor from a previous response's next_page field. Only valid with group_by[] — the ungrouped cube is never paginated.
8810 Opaque cursor from a previous response's `next_page` field. Only valid with `group_by[]` — the ungrouped cube is never paginated.
86738811
86748812#### Returns
86758813
from line 8816
86788816 Response for GET /v1/organizations/analytics/artifacts.
86798817
86808818 `next_page` is null on ungrouped queries — the artifact-type cube is
8681 finite and returned in full. Grouped queries (`group_by[]` on `user_id` /
8682 `rbac_group_id`) multiply the cube and paginate like the other analytics
8683 list endpoints.
8819 finite and returned in full. Grouped queries (`group_by[]` on `product` /
8820 `user_id` / `rbac_group_id`) multiply the cube and paginate like the other
8821 analytics list endpoints.
86848822
86858823 - `data: array of object`
86868824
86878825 - `artifact_type: string`
86888826
8689 Canonical artifact MIME type (e.g. text/markdown, application/vnd.ant.react, image/svg+xml), or 'other'.
8827 Canonical artifact MIME type (e.g. `text/markdown`, `application/vnd.ant.react`, `image/svg+xml`), or `other`. Claude Code and Cowork artifacts report as `text/html`.
86908828
86918829 - `artifacts_created_count: number`
86928830
from line 8836
86988836
86998837 - `is_shared: boolean`
87008838
8701 Whether the artifacts in this bucket have ever been shared.
8839 Whether the artifacts in this bucket have ever been shared (a Claude Code / Cowork artifact is shared once anyone beyond its creator may open it: named members, the whole organization, or anyone with the link).
87028840
87038841 - `published_artifacts_created_count: number`
87048842
8705 Number of those artifacts that have been published
8843 Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count`
87068844
87078845 - `product: optional string or null`
87088846
8709 Product that produced this row's activity: one of chat, claude_code, cowork, or office_agent (the canonical Cost & Usage product naming; an office_agent row's per-surface breakdown is in its office_metrics). On /plugins only cowork and claude_code occur (the only surfaces with plugin attribution); /artifacts and /apps/chat/projects do not support the product dimension (a product `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by product.
8847 Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, or `office_agent` (the canonical Cost & Usage product naming; an `office_agent` row's per-surface breakdown is in its `office_metrics`). On `/plugins` only `cowork` and `claude_code` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, and `cowork` 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`.
87108848
87118849 - `rbac_group_id: optional string or null`
87128850
from line 8858
87208858
87218859 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
87228860
8723 - `next_page: optional string or null`
8861 - `next_page: string or null`
87248862
87258863 Cursor for the next page of a grouped query; always null for the ungrouped artifact-type cube, which is returned in full.
87268864
from line 8911
87738911
87748912- `scope: object`
87758913
8914 Scope selecting a single member of the organization.
8915
87768916 - `type: "user"`
87778917
8918 Scope type. Always `user` for this scope.
8919
87788920 default: user
87798921
87808922 - `user_id: string`
87818923
8924 Tagged ID of the member the spend limit applies to.
8925
87828926- `period: optional "daily" or "monthly" or "weekly"`
87838927
87848928 - `"daily"`
from line 8935
87918935
87928936- `SpendLimit object`
87938937
8938 A configured spend limit: a cap on metered spend for one scope and period.
8939
87948940 - `id: string`
87958941
8942 Unique tagged ID of the spend limit (`spl_...`).
8943
87968944 - `amount: string or null`
87978945
87988946 Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies.
87998947
88008948 - `created_at: string`
88018949
8950 RFC 3339 datetime at which the spend limit was created.
8951
88028952 format: date-time
88038953
88048954 - `currency: string`
from line 8957
88078957
88088958 - `period: "daily" or "monthly" or "weekly"`
88098959
8960 Length of the window the limit resets over. `amount` caps spend within each period.
8961
88108962 - `"daily"`
88118963
88128964 - `"monthly"`
from line 8967
88158967
88168968 - `scope: object or object or object or 2 more`
88178969
8970 What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope.
8971
88188972 - `User object`
88198973
8974 Scope selecting a single member of the organization.
8975
88208976 - `type: "user"`
88218977
8978 Scope type. Always `user` for this scope.
8979
88228980 default: user
88238981
88248982 - `user_id: string`
88258983
8984 Tagged ID of the member the spend limit applies to.
8985
88268986 - `SeatTier object`
88278987
88288988 - `seat_tier: string`
from line 9015
88559015
88569016 - `type: "spend_limit"`
88579017
9018 Object type. Always `spend_limit`.
9019
88589020 default: spend_limit
88599021
88609022 - `updated_at: string`
9023
9024 RFC 3339 datetime at which the spend limit was last modified.
88619025
88629026 format: date-time
88639027
from line 9036
88729036 "amount": "50000",
88739037 "scope": {
88749038 "type": "user",
8875 "user_id": "user_id"
9039 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
88769040 },
88779041 "period": "monthly"
88789042 }'
from line 9053
88899053 "period": "monthly",
88909054 "scope": {
88919055 "type": "user",
8892 "user_id": "user_id"
9056 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
88939057 },
88949058 "type": "spend_limit",
88959059 "updated_at": "2019-12-27T18:11:19.117Z"
from line 9076
89129076
89139077- `SpendLimit object`
89149078
9079 A configured spend limit: a cap on metered spend for one scope and period.
9080
89159081 - `id: string`
89169082
9083 Unique tagged ID of the spend limit (`spl_...`).
9084
89179085 - `amount: string or null`
89189086
89199087 Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies.
89209088
89219089 - `created_at: string`
89229090
9091 RFC 3339 datetime at which the spend limit was created.
9092
89239093 format: date-time
89249094
89259095 - `currency: string`
from line 9098
89289098
89299099 - `period: "daily" or "monthly" or "weekly"`
89309100
9101 Length of the window the limit resets over. `amount` caps spend within each period.
9102
89319103 - `"daily"`
89329104
89339105 - `"monthly"`
from line 9108
89369108
89379109 - `scope: object or object or object or 2 more`
89389110
9111 What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope.
9112
89399113 - `User object`
89409114
9115 Scope selecting a single member of the organization.
9116
89419117 - `type: "user"`
89429118
9119 Scope type. Always `user` for this scope.
9120
89439121 default: user
89449122
89459123 - `user_id: string`
89469124
9125 Tagged ID of the member the spend limit applies to.
9126
89479127 - `SeatTier object`
89489128
89499129 - `seat_tier: string`
from line 9156
89769156
89779157 - `type: "spend_limit"`
89789158
9159 Object type. Always `spend_limit`.
9160
89799161 default: spend_limit
89809162
89819163 - `updated_at: string`
9164
9165 RFC 3339 datetime at which the spend limit was last modified.
89829166
89839167 format: date-time
89849168
from line 9185
90019185 "period": "monthly",
90029186 "scope": {
90039187 "type": "user",
9004 "user_id": "user_id"
9188 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
90059189 },
90069190 "type": "spend_limit",
90079191 "updated_at": "2019-12-27T18:11:19.117Z"
from line 9248
90649248
90659249- `limit: optional number`
90669250
9251 Maximum number of members per page. A member's period rows never split across pages, so a page may carry more rows than this. Defaults to `20`.
9252
90679253 default: 20, maximum: 1000, minimum: 1
90689254
90699255- `page: optional string`
90709256
9071- `period: optional array of string`
9257 Opaque cursor from a previous response's `next_page` field.
9258
9259- `period: optional array of "daily" or "monthly" or "weekly"`
9260
9261 Restrict the report to these limit periods. Omit to return one row per period each member resolves a spend limit for.
90729262
90739263 maxItems: 3
90749264
9265 - `"daily"`
9266
9267 - `"monthly"`
9268
9269 - `"weekly"`
9270
90759271- `user_ids: optional array of string`
9272
9273 Restrict the report to these members, by tagged user ID (`user_...`). At most 100 entries.
90769274
90779275 maxItems: 100
90789276
from line 9286
90889286
90899287 - `deleted: boolean`
90909288
9289 True only when the underlying account has been deleted.
9290
90919291 default: false
90929292
90939293 - `email_address: string or null`
90949294
9295 The user's email address. Null when the account is unavailable or has been deleted.
9296
90959297 - `name: string or null`
90969298
9299 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9300
90979301 - `type: "user_actor"`
90989302
9303 Actor type. Always `user_actor`.
9304
90999305 default: user_actor
91009306
91019307 - `user_id: string`
91029308
9309 Tagged ID of the user.
9310
91039311 - `amount: string or null`
91049312
91059313 Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member.
from line 9318
91109318
91119319 - `period: "daily" or "monthly" or "weekly"`
91129320
9321 Period this row's effective limit and spend are reported for.
9322
91139323 - `"daily"`
91149324
91159325 - `"monthly"`
from line 9332
91229332
91239333 - `scope: object`
91249334
9335 Scope selecting a single member of the organization.
9336
91259337 - `type: "user"`
91269338
9339 Scope type. Always `user` for this scope.
9340
91279341 default: user
91289342
91299343 - `user_id: string`
91309344
9345 Tagged ID of the member the spend limit applies to.
9346
91319347 - `source: object or object or object or 2 more`
91329348
9349 Scope selecting a single member of the organization.
9350
91339351 - `User object`
91349352
9353 Scope selecting a single member of the organization.
9354
91359355 - `type: "user"`
91369356
9357 Scope type. Always `user` for this scope.
9358
91379359 default: user
91389360
91399361 - `user_id: string`
9362
9363 Tagged ID of the member the spend limit applies to.
91409364
91419365 - `SeatTier object`
91429366
from line 9415
91919415 "email_address": "email_address",
91929416 "name": "name",
91939417 "type": "user_actor",
9194 "user_id": "user_id"
9418 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
91959419 },
91969420 "amount": "50000",
91979421 "currency": "USD",
from line 9423
91999423 "period_to_date_spend": "12050.5",
92009424 "scope": {
92019425 "type": "user",
9202 "user_id": "user_id"
9426 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
92039427 },
92049428 "source": {
92059429 "type": "user",
9206 "user_id": "user_id"
9430 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
92079431 },
92089432 "spend_limit_id": "spend_limit_id"
92099433 }
from line 9485
92619485
92629486 - `deleted: boolean`
92639487
9488 True only when the underlying account has been deleted.
9489
92649490 default: false
92659491
92669492 - `email_address: string or null`
92679493
9494 The user's email address. Null when the account is unavailable or has been deleted.
9495
92689496 - `name: string or null`
92699497
9498 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9499
92709500 - `type: "user_actor"`
92719501
9502 Actor type. Always `user_actor`.
9503
92729504 default: user_actor
92739505
92749506 - `user_id: string`
9507
9508 Tagged ID of the user.
92759509
92769510 - `created_at: string`
92779511
from line 9537
93039537
93049538 - `deleted: boolean`
93059539
9540 True only when the underlying account has been deleted.
9541
93069542 default: false
93079543
93089544 - `email_address: string or null`
93099545
9546 The user's email address. Null when the account is unavailable or has been deleted.
9547
93109548 - `name: string or null`
93119549
9550 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9551
93129552 - `type: "user_actor"`
93139553
9554 Actor type. Always `user_actor`.
9555
93149556 default: user_actor
93159557
93169558 - `user_id: string`
93179559
9560 Tagged ID of the user.
9561
93189562 - `ScopedAPIKeyActor object`
93199563
93209564 A scoped Admin API key acting on behalf of the organization.
from line 9571
93279571
93289572 - `spend_summary: SpendSummary or null`
93299573
9330 Per-member effective-limit report row (GET /spend_limits/effective).
9574 Per-member effective-limit report row (`GET /spend_limits/effective`).
93319575
93329576 - `actor: object`
93339577
from line 9581
93379581
93389582 - `deleted: boolean`
93399583
9584 True only when the underlying account has been deleted.
9585
93409586 default: false
93419587
93429588 - `email_address: string or null`
93439589
9590 The user's email address. Null when the account is unavailable or has been deleted.
9591
93449592 - `name: string or null`
93459593
9594 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9595
93469596 - `type: "user_actor"`
93479597
9598 Actor type. Always `user_actor`.
9599
93489600 default: user_actor
93499601
93509602 - `user_id: string`
93519603
9604 Tagged ID of the user.
9605
93529606 - `amount: string or null`
93539607
93549608 Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member.
from line 9613
93599613
93609614 - `period: "daily" or "monthly" or "weekly"`
93619615
9616 Period this row's effective limit and spend are reported for.
9617
93629618 - `"daily"`
93639619
93649620 - `"monthly"`
from line 9627
93719627
93729628 - `scope: object`
93739629
9630 Scope selecting a single member of the organization.
9631
93749632 - `type: "user"`
93759633
9634 Scope type. Always `user` for this scope.
9635
93769636 default: user
93779637
93789638 - `user_id: string`
93799639
9640 Tagged ID of the member the spend limit applies to.
9641
93809642 - `source: object or object or object or 2 more`
93819643
9644 Scope selecting a single member of the organization.
9645
93829646 - `User object`
93839647
9648 Scope selecting a single member of the organization.
9649
93849650 - `type: "user"`
93859651
9652 Scope type. Always `user` for this scope.
9653
93869654 default: user
93879655
93889656 - `user_id: string`
9657
9658 Tagged ID of the member the spend limit applies to.
93899659
93909660 - `SeatTier object`
93919661
from line 9723
94539723 "email_address": "email_address",
94549724 "name": "name",
94559725 "type": "user_actor",
9456 "user_id": "user_id"
9726 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
94579727 },
94589728 "created_at": "2019-12-27T18:11:19.117Z",
94599729 "period": "monthly",
from line 9733
94639733 "email_address": "email_address",
94649734 "name": "name",
94659735 "type": "user_actor",
9466 "user_id": "user_id"
9736 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
94679737 },
94689738 "spend_summary": {
94699739 "actor": {
from line 9741
94719741 "email_address": "email_address",
94729742 "name": "name",
94739743 "type": "user_actor",
9474 "user_id": "user_id"
9744 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
94759745 },
94769746 "amount": "50000",
94779747 "currency": "USD",
from line 9749
94799749 "period_to_date_spend": "12050.5",
94809750 "scope": {
94819751 "type": "user",
9482 "user_id": "user_id"
9752 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
94839753 },
94849754 "source": {
94859755 "type": "user",
9486 "user_id": "user_id"
9756 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
94879757 },
94889758 "spend_limit_id": "spend_limit_id"
94899759 },
from line 9794
95249794
95259795 - `deleted: boolean`
95269796
9797 True only when the underlying account has been deleted.
9798
95279799 default: false
95289800
95299801 - `email_address: string or null`
95309802
9803 The user's email address. Null when the account is unavailable or has been deleted.
9804
95319805 - `name: string or null`
95329806
9807 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9808
95339809 - `type: "user_actor"`
95349810
9811 Actor type. Always `user_actor`.
9812
95359813 default: user_actor
95369814
95379815 - `user_id: string`
9816
9817 Tagged ID of the user.
95389818
95399819 - `created_at: string`
95409820
from line 9846
95669846
95679847 - `deleted: boolean`
95689848
9849 True only when the underlying account has been deleted.
9850
95699851 default: false
95709852
95719853 - `email_address: string or null`
95729854
9855 The user's email address. Null when the account is unavailable or has been deleted.
9856
95739857 - `name: string or null`
95749858
9859 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9860
95759861 - `type: "user_actor"`
95769862
9863 Actor type. Always `user_actor`.
9864
95779865 default: user_actor
95789866
95799867 - `user_id: string`
95809868
9869 Tagged ID of the user.
9870
95819871 - `ScopedAPIKeyActor object`
95829872
95839873 A scoped Admin API key acting on behalf of the organization.
from line 9880
95909880
95919881 - `spend_summary: SpendSummary or null`
95929882
9593 Per-member effective-limit report row (GET /spend_limits/effective).
9883 Per-member effective-limit report row (`GET /spend_limits/effective`).
95949884
95959885 - `actor: object`
95969886
from line 9890
96009890
96019891 - `deleted: boolean`
96029892
9893 True only when the underlying account has been deleted.
9894
96039895 default: false
96049896
96059897 - `email_address: string or null`
96069898
9899 The user's email address. Null when the account is unavailable or has been deleted.
9900
96079901 - `name: string or null`
96089902
9903 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
9904
96099905 - `type: "user_actor"`
96109906
9907 Actor type. Always `user_actor`.
9908
96119909 default: user_actor
96129910
96139911 - `user_id: string`
96149912
9913 Tagged ID of the user.
9914
96159915 - `amount: string or null`
96169916
96179917 Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member.
from line 9922
96229922
96239923 - `period: "daily" or "monthly" or "weekly"`
96249924
9925 Period this row's effective limit and spend are reported for.
9926
96259927 - `"daily"`
96269928
96279929 - `"monthly"`
from line 9936
96349936
96359937 - `scope: object`
96369938
9939 Scope selecting a single member of the organization.
9940
96379941 - `type: "user"`
96389942
9943 Scope type. Always `user` for this scope.
9944
96399945 default: user
96409946
96419947 - `user_id: string`
96429948
9949 Tagged ID of the member the spend limit applies to.
9950
96439951 - `source: object or object or object or 2 more`
96449952
9953 Scope selecting a single member of the organization.
9954
96459955 - `User object`
96469956
9957 Scope selecting a single member of the organization.
9958
96479959 - `type: "user"`
96489960
9961 Scope type. Always `user` for this scope.
9962
96499963 default: user
96509964
96519965 - `user_id: string`
9966
9967 Tagged ID of the member the spend limit applies to.
96529968
96539969 - `SeatTier object`
96549970
from line 10028
971210028 "email_address": "email_address",
971310029 "name": "name",
971410030 "type": "user_actor",
9715 "user_id": "user_id"
10031 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
971610032 },
971710033 "created_at": "2019-12-27T18:11:19.117Z",
971810034 "period": "monthly",
from line 10038
972210038 "email_address": "email_address",
972310039 "name": "name",
972410040 "type": "user_actor",
9725 "user_id": "user_id"
10041 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
972610042 },
972710043 "spend_summary": {
972810044 "actor": {
from line 10046
973010046 "email_address": "email_address",
973110047 "name": "name",
973210048 "type": "user_actor",
9733 "user_id": "user_id"
10049 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
973410050 },
973510051 "amount": "50000",
973610052 "currency": "USD",
from line 10054
973810054 "period_to_date_spend": "12050.5",
973910055 "scope": {
974010056 "type": "user",
9741 "user_id": "user_id"
10057 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
974210058 },
974310059 "source": {
974410060 "type": "user",
9745 "user_id": "user_id"
10061 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
974610062 },
974710063 "spend_limit_id": "spend_limit_id"
974810064 },
from line 10112
979610112
979710113 - `deleted: boolean`
979810114
10115 True only when the underlying account has been deleted.
10116
979910117 default: false
980010118
980110119 - `email_address: string or null`
980210120
10121 The user's email address. Null when the account is unavailable or has been deleted.
10122
980310123 - `name: string or null`
980410124
10125 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
10126
980510127 - `type: "user_actor"`
980610128
10129 Actor type. Always `user_actor`.
10130
980710131 default: user_actor
980810132
980910133 - `user_id: string`
10134
10135 Tagged ID of the user.
981010136
981110137- `created_at: string`
981210138
from line 10164
983810164
983910165 - `deleted: boolean`
984010166
10167 True only when the underlying account has been deleted.
10168
984110169 default: false
984210170
984310171 - `email_address: string or null`
984410172
10173 The user's email address. Null when the account is unavailable or has been deleted.
10174
984510175 - `name: string or null`
984610176
10177 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
10178
984710179 - `type: "user_actor"`
984810180
10181 Actor type. Always `user_actor`.
10182
984910183 default: user_actor
985010184
985110185 - `user_id: string`
985210186
10187 Tagged ID of the user.
10188
985310189 - `ScopedAPIKeyActor object`
985410190
985510191 A scoped Admin API key acting on behalf of the organization.
from line 10198
986210198
986310199- `spend_limit: SpendLimit`
986410200
10201 A configured spend limit: a cap on metered spend for one scope and period.
10202
986510203 - `id: string`
986610204
10205 Unique tagged ID of the spend limit (`spl_...`).
10206
986710207 - `amount: string or null`
986810208
986910209 Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies.
987010210
987110211 - `created_at: string`
987210212
10213 RFC 3339 datetime at which the spend limit was created.
10214
987310215 format: date-time
987410216
987510217 - `currency: string`
from line 10220
987810220
987910221 - `period: "daily" or "monthly" or "weekly"`
988010222
10223 Length of the window the limit resets over. `amount` caps spend within each period.
10224
988110225 - `"daily"`
988210226
988310227 - `"monthly"`
from line 10230
988610230
988710231 - `scope: object or object or object or 2 more`
988810232
10233 What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope.
10234
988910235 - `User object`
989010236
10237 Scope selecting a single member of the organization.
10238
989110239 - `type: "user"`
989210240
10241 Scope type. Always `user` for this scope.
10242
989310243 default: user
989410244
989510245 - `user_id: string`
989610246
10247 Tagged ID of the member the spend limit applies to.
10248
989710249 - `SeatTier object`
989810250
989910251 - `seat_tier: string`
from line 10278
992610278
992710279 - `type: "spend_limit"`
992810280
10281 Object type. Always `spend_limit`.
10282
992910283 default: spend_limit
993010284
993110285 - `updated_at: string`
993210286
10287 RFC 3339 datetime at which the spend limit was last modified.
10288
993310289 format: date-time
993410290
993510291- `spend_summary: SpendSummary or null`
993610292
9937 Per-member effective-limit report row (GET /spend_limits/effective).
10293 Per-member effective-limit report row (`GET /spend_limits/effective`).
993810294
993910295 - `actor: object`
994010296
from line 10300
994410300
994510301 - `deleted: boolean`
994610302
10303 True only when the underlying account has been deleted.
10304
994710305 default: false
994810306
994910307 - `email_address: string or null`
995010308
10309 The user's email address. Null when the account is unavailable or has been deleted.
10310
995110311 - `name: string or null`
995210312
10313 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
10314
995310315 - `type: "user_actor"`
995410316
10317 Actor type. Always `user_actor`.
10318
995510319 default: user_actor
995610320
995710321 - `user_id: string`
995810322
10323 Tagged ID of the user.
10324
995910325 - `amount: string or null`
996010326
996110327 Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member.
from line 10332
996610332
996710333 - `period: "daily" or "monthly" or "weekly"`
996810334
10335 Period this row's effective limit and spend are reported for.
10336
996910337 - `"daily"`
997010338
997110339 - `"monthly"`
from line 10346
997810346
997910347 - `scope: object`
998010348
10349 Scope selecting a single member of the organization.
10350
998110351 - `type: "user"`
998210352
10353 Scope type. Always `user` for this scope.
10354
998310355 default: user
998410356
998510357 - `user_id: string`
998610358
10359 Tagged ID of the member the spend limit applies to.
10360
998710361 - `source: object or object or object or 2 more`
998810362
10363 Scope selecting a single member of the organization.
10364
998910365 - `User object`
999010366
10367 Scope selecting a single member of the organization.
10368
999110369 - `type: "user"`
999210370
10371 Scope type. Always `user` for this scope.
10372
999310373 default: user
999410374
999510375 - `user_id: string`
10376
10377 Tagged ID of the member the spend limit applies to.
999610378
999710379 - `SeatTier object`
999810380
from line 10443
1006110443 "email_address": "email_address",
1006210444 "name": "name",
1006310445 "type": "user_actor",
10064 "user_id": "user_id"
10446 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1006510447 },
1006610448 "created_at": "2019-12-27T18:11:19.117Z",
1006710449 "period": "monthly",
from line 10453
1007110453 "email_address": "email_address",
1007210454 "name": "name",
1007310455 "type": "user_actor",
10074 "user_id": "user_id"
10456 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1007510457 },
1007610458 "spend_limit": {
1007710459 "id": "id",
from line 10463
1008110463 "period": "monthly",
1008210464 "scope": {
1008310465 "type": "user",
10084 "user_id": "user_id"
10466 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1008510467 },
1008610468 "type": "spend_limit",
1008710469 "updated_at": "2019-12-27T18:11:19.117Z"
from line 10474
1009210474 "email_address": "email_address",
1009310475 "name": "name",
1009410476 "type": "user_actor",
10095 "user_id": "user_id"
10477 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1009610478 },
1009710479 "amount": "50000",
1009810480 "currency": "USD",
from line 10482
1010010482 "period_to_date_spend": "12050.5",
1010110483 "scope": {
1010210484 "type": "user",
10103 "user_id": "user_id"
10485 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1010410486 },
1010510487 "source": {
1010610488 "type": "user",
10107 "user_id": "user_id"
10489 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1010810490 },
1010910491 "spend_limit_id": "spend_limit_id"
1011010492 },
from line 10528
1014610528
1014710529 - `deleted: boolean`
1014810530
10531 True only when the underlying account has been deleted.
10532
1014910533 default: false
1015010534
1015110535 - `email_address: string or null`
1015210536
10537 The user's email address. Null when the account is unavailable or has been deleted.
10538
1015310539 - `name: string or null`
1015410540
10541 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
10542
1015510543 - `type: "user_actor"`
1015610544
10545 Actor type. Always `user_actor`.
10546
1015710547 default: user_actor
1015810548
1015910549 - `user_id: string`
10550
10551 Tagged ID of the user.
1016010552
1016110553 - `created_at: string`
1016210554
from line 10580
1018810580
1018910581 - `deleted: boolean`
1019010582
10583 True only when the underlying account has been deleted.
10584
1019110585 default: false
1019210586
1019310587 - `email_address: string or null`
1019410588
10589 The user's email address. Null when the account is unavailable or has been deleted.
10590
1019510591 - `name: string or null`
1019610592
10593 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
10594
1019710595 - `type: "user_actor"`
1019810596
10597 Actor type. Always `user_actor`.
10598
1019910599 default: user_actor
1020010600
1020110601 - `user_id: string`
1020210602
10603 Tagged ID of the user.
10604
1020310605 - `ScopedAPIKeyActor object`
1020410606
1020510607 A scoped Admin API key acting on behalf of the organization.
from line 10614
1021210614
1021310615 - `spend_summary: SpendSummary or null`
1021410616
10215 Per-member effective-limit report row (GET /spend_limits/effective).
10617 Per-member effective-limit report row (`GET /spend_limits/effective`).
1021610618
1021710619 - `actor: object`
1021810620
from line 10624
1022210624
1022310625 - `deleted: boolean`
1022410626
10627 True only when the underlying account has been deleted.
10628
1022510629 default: false
1022610630
1022710631 - `email_address: string or null`
1022810632
10633 The user's email address. Null when the account is unavailable or has been deleted.
10634
1022910635 - `name: string or null`
1023010636
10637 The user's current display name. Null when the account is unavailable, has been deleted, or has no name set.
10638
1023110639 - `type: "user_actor"`
1023210640
10641 Actor type. Always `user_actor`.
10642
1023310643 default: user_actor
1023410644
1023510645 - `user_id: string`
1023610646
10647 Tagged ID of the user.
10648
1023710649 - `amount: string or null`
1023810650
1023910651 Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member.
from line 10656
1024410656
1024510657 - `period: "daily" or "monthly" or "weekly"`
1024610658
10659 Period this row's effective limit and spend are reported for.
10660
1024710661 - `"daily"`
1024810662
1024910663 - `"monthly"`
from line 10670
1025610670
1025710671 - `scope: object`
1025810672
10673 Scope selecting a single member of the organization.
10674
1025910675 - `type: "user"`
1026010676
10677 Scope type. Always `user` for this scope.
10678
1026110679 default: user
1026210680
1026310681 - `user_id: string`
1026410682
10683 Tagged ID of the member the spend limit applies to.
10684
1026510685 - `source: object or object or object or 2 more`
1026610686
10687 Scope selecting a single member of the organization.
10688
1026710689 - `User object`
1026810690
10691 Scope selecting a single member of the organization.
10692
1026910693 - `type: "user"`
1027010694
10695 Scope type. Always `user` for this scope.
10696
1027110697 default: user
1027210698
1027310699 - `user_id: string`
10700
10701 Tagged ID of the member the spend limit applies to.
1027410702
1027510703 - `SeatTier object`
1027610704
from line 10764
1033610764 "email_address": "email_address",
1033710765 "name": "name",
1033810766 "type": "user_actor",
10339 "user_id": "user_id"
10767 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1034010768 },
1034110769 "created_at": "2019-12-27T18:11:19.117Z",
1034210770 "period": "monthly",
from line 10774
1034610774 "email_address": "email_address",
1034710775 "name": "name",
1034810776 "type": "user_actor",
10349 "user_id": "user_id"
10777 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1035010778 },
1035110779 "spend_summary": {
1035210780 "actor": {
from line 10782
1035410782 "email_address": "email_address",
1035510783 "name": "name",
1035610784 "type": "user_actor",
10357 "user_id": "user_id"
10785 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1035810786 },
1035910787 "amount": "50000",
1036010788 "currency": "USD",
from line 10790
1036210790 "period_to_date_spend": "12050.5",
1036310791 "scope": {
1036410792 "type": "user",
10365 "user_id": "user_id"
10793 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1036610794 },
1036710795 "source": {
1036810796 "type": "user",
10369 "user_id": "user_id"
10797 "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
1037010798 },
1037110799 "spend_limit_id": "spend_limit_id"
1037210800 },
from line 11610
1118211610
1118311611- `implicit: boolean or null`
1118411612
11185 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role workspace_user and cannot be removed.
11613 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed.
1118611614
1118711615- `service_account_id: string`
1118811616
from line 11716
1128811716
1128911717 - `implicit: boolean or null`
1129011718
11291 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role workspace_user and cannot be removed.
11719 True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed.
1129211720
1129311721 - `service_account_id: string`
1129411722
1129511723
No line in this hunk matches that.