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

Get Artifact Activity changedapi/admin/analytics/artifacts/list

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+19added
Lines−16removed
From line 4 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 4, old and new numbered
/
lines
from line 4
44 
55Get artifact-creation activity for a given day, broken out by MIME type.
66 
7Returns the full (artifact_type, is_shared) cube for the organization;
7Returns the full (`artifact_type`, `is_shared`) cube for the organization;
88`next_page` is null except for grouped queries, which paginate. The cube
9can be broken out per member or per RBAC group via group_by[], and scoped
10via filter[]. Requires an API key with the `read:analytics` scope.
9can be broken out per product, per member, or per RBAC group via
10`group_by[]`, and scoped via `filter[]`. Requires an API key with the
11`read:analytics` scope.
1112 
1213## Query parameters
1314 
from line 20
1920 
2021- `filter: optional array of string`
2122 
22 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.
23 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.
2324 
2425 maxItems: 100
2526 
26- `group_by: optional array of "rbac_group_id" or "user_id"`
27- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`
2728 
28 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.
29 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.
2930 
3031 maxItems: 100
3132 
33 - `"product"`
34 
3235 - `"rbac_group_id"`
3336 
3437 - `"user_id"`
from line 38
3538 
3639- `limit: optional number`
3740 
38 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.
41 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.
3942 
4043 minimum: 1, maximum: 1000
4144 
4245- `page: optional string`
4346 
44 Opaque cursor from a previous response's next_page field. Only valid with group_by[] — the ungrouped cube is never paginated.
47 Opaque cursor from a previous response's `next_page` field. Only valid with `group_by[]` — the ungrouped cube is never paginated.
4548 
4649## Returns
4750 
from line 53
5053 Response for GET /v1/organizations/analytics/artifacts.
5154 
5255 `next_page` is null on ungrouped queries — the artifact-type cube is
53 finite and returned in full. Grouped queries (`group_by[]` on `user_id` /
54 `rbac_group_id`) multiply the cube and paginate like the other analytics
55 list endpoints.
56 finite and returned in full. Grouped queries (`group_by[]` on `product` /
57 `user_id` / `rbac_group_id`) multiply the cube and paginate like the other
58 analytics list endpoints.
5659 
5760 - `data: array of object`
5861 
5962 - `artifact_type: string`
6063 
61 Canonical artifact MIME type (e.g. text/markdown, application/vnd.ant.react, image/svg+xml), or 'other'.
64 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`.
6265 
6366 - `artifacts_created_count: number`
6467 
from line 73
7073 
7174 - `is_shared: boolean`
7275 
73 Whether the artifacts in this bucket have ever been shared.
76 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).
7477 
7578 - `published_artifacts_created_count: number`
7679 
77 Number of those artifacts that have been published
80 Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count`
7881 
7982 - `product: optional string or null`
8083 
81 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.
84 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`.
8285 
8386 - `rbac_group_id: optional string or null`
8487 
from line 95
9295 
9396 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.
9497 
95 - `next_page: optional string or null`
98 - `next_page: string or null`
9699 
97100 Cursor for the next page of a grouped query; always null for the ungrouped artifact-type cube, which is returned in full.
98101 
Feedback