Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

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
/
lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.

from line 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 
Feedback