Artifacts changedapi/admin/analytics/artifacts
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+27added
Lines−24removed
From line
6
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits5to this page, all time
The whole hunk
from line 6, old and new numbered
/
from line 6
66
77Get artifact-creation activity for a given day, broken out by MIME type.
88
9Returns the full (artifact_type, is_shared) cube for the organization;
9Returns the full (`artifact_type`, `is_shared`) cube for the organization;
1010`next_page` is null except for grouped queries, which paginate. The cube
11can be broken out per member or per RBAC group via group_by[], and scoped
12via filter[]. Requires an API key with the `read:analytics` scope.
11can be broken out per product, per member, or per RBAC group via
12`group_by[]`, and scoped via `filter[]`. Requires an API key with the
13`read:analytics` scope.
1314
1415### Query parameters
1516
from line 22
2122
2223- `filter: optional array of string`
2324
24 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.
25 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.
2526
2627 maxItems: 100
2728
28- `group_by: optional array of "rbac_group_id" or "user_id"`
29- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
2930
30 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.
31 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.
3132
3233 maxItems: 100
3334
35 - `"product"`
36
3437 - `"rbac_group_id"`
3538
3639 - `"user_id"`
from line 40
3740
3841- `limit: optional number`
3942
40 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.
43 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.
4144
4245 minimum: 1, maximum: 1000
4346
4447- `page: optional string`
4548
46 Opaque cursor from a previous response's next_page field. Only valid with group_by[] — the ungrouped cube is never paginated.
49 Opaque cursor from a previous response's `next_page` field. Only valid with `group_by[]` — the ungrouped cube is never paginated.
4750
4851### Returns
4952
from line 55
5255 Response for GET /v1/organizations/analytics/artifacts.
5356
5457 `next_page` is null on ungrouped queries — the artifact-type cube is
55 finite and returned in full. Grouped queries (`group_by[]` on `user_id` /
56 `rbac_group_id`) multiply the cube and paginate like the other analytics
57 list endpoints.
58 finite and returned in full. Grouped queries (`group_by[]` on `product` /
59 `user_id` / `rbac_group_id`) multiply the cube and paginate like the other
60 analytics list endpoints.
5861
5962 - `data: array of object`
6063
6164 - `artifact_type: string`
6265
63 Canonical artifact MIME type (e.g. text/markdown, application/vnd.ant.react, image/svg+xml), or 'other'.
66 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`.
6467
6568 - `artifacts_created_count: number`
6669
from line 75
7275
7376 - `is_shared: boolean`
7477
75 Whether the artifacts in this bucket have ever been shared.
78 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).
7679
7780 - `published_artifacts_created_count: number`
7881
79 Number of those artifacts that have been published
82 Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count`
8083
8184 - `product: optional string or null`
8285
83 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.
86 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`.
8487
8588 - `rbac_group_id: optional string or null`
8689
from line 97
9497
9598 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
9699
97 - `next_page: optional string or null`
100 - `next_page: string or null`
98101
99102 Cursor for the next page of a grouped query; always null for the ungrouped artifact-type cube, which is returned in full.
100103
from line 139
136139 Response for GET /v1/organizations/analytics/artifacts.
137140
138141 `next_page` is null on ungrouped queries — the artifact-type cube is
139 finite and returned in full. Grouped queries (`group_by[]` on `user_id` /
140 `rbac_group_id`) multiply the cube and paginate like the other analytics
141 list endpoints.
142 finite and returned in full. Grouped queries (`group_by[]` on `product` /
143 `user_id` / `rbac_group_id`) multiply the cube and paginate like the other
144 analytics list endpoints.
142145
143146 - `data: array of object`
144147
145148 - `artifact_type: string`
146149
147 Canonical artifact MIME type (e.g. text/markdown, application/vnd.ant.react, image/svg+xml), or 'other'.
150 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`.
148151
149152 - `artifacts_created_count: number`
150153
from line 159
156159
157160 - `is_shared: boolean`
158161
159 Whether the artifacts in this bucket have ever been shared.
162 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).
160163
161164 - `published_artifacts_created_count: number`
162165
163 Number of those artifacts that have been published
166 Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count`
164167
165168 - `product: optional string or null`
166169
167 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.
170 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`.
168171
169172 - `rbac_group_id: optional string or null`
170173
from line 181
178181
179182 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
180183
181 - `next_page: optional string or null`
184 - `next_page: string or null`
182185
183186 Cursor for the next page of a grouped query; always null for the ungrouped artifact-type cube, which is returned in full.
184187
No line in this hunk matches that.