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

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