Repository Public
1---2title: Artifacts3url: https://platform.claude.com/docs/en/api/beta/organization/analytics/artifacts4---56# Artifacts78## Get Artifact Activity910**GET** `/v1/organizations/analytics/artifacts`1112Get artifact-creation activity for a given day, broken out by MIME type.1314Returns the full (`artifact_type`, `is_shared`) cube for the organization;15`next_page` is null except for grouped queries, which paginate. The cube16can be broken out per product, per member, or per RBAC group via17`group_by[]`, and scoped via `filter[]`. Requires an API key with the18`read:analytics` scope.1920### Query parameters2122- `date: string`2324 UTC date in YYYY-MM-DD format. The day to get artifact activity for. 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.2526 format: date2728- `filter: optional array of string`2930 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.3132 maxItems: 1003334- `group_by: optional array of "product" or "rbac_group_id" or "user_id"`3536 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.3738 maxItems: 1003940 - `"product"`4142 - `"rbac_group_id"`4344 - `"user_id"`4546- `limit: optional number`4748 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.4950 minimum: 1, maximum: 10005152- `page: optional string`5354 Opaque cursor from a previous response's `next_page` field. Only valid with `group_by[]` — the ungrouped cube is never paginated.5556### Returns5758- `BetaArtifactUsage object`5960 Response for GET /v1/organizations/analytics/artifacts.6162 `next_page` is null on ungrouped queries — the artifact-type cube is63 finite and returned in full. Grouped queries (`group_by[]` on `product` /64 `user_id` / `rbac_group_id`) multiply the cube and paginate like the other65 analytics list endpoints.6667 - `data: array of object`6869 - `artifact_type: string`7071 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`.7273 - `artifacts_created_count: number`7475 Number of artifacts created in this bucket on the requested day7677 - `distinct_user_count: number`7879 Number of distinct users who created artifacts in this bucket on the requested day8081 - `is_shared: boolean`8283 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).8485 - `published_artifacts_created_count: number`8687 Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count`8889 - `product: optional string or null`9091 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`.9293 - `rbac_group_id: optional string or null`9495 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.9697 - `rbac_group_name: optional string or null`9899 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.100101 - `user_id: optional string or null`102103 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.104105 - `next_page: string or null`106107 Cursor for the next page of a grouped query; always null for the ungrouped artifact-type cube, which is returned in full.108109### Example110111```bash112curl https://api.anthropic.com/v1/organizations/analytics/artifacts \113 -H 'anthropic-version: 2023-06-01' \114 -H "X-Api-Key: $ANTHROPIC_API_KEY"115```116117#### Response (200)118119```json120{121 "data": [122 {123 "artifact_type": "artifact_type",124 "artifacts_created_count": 0,125 "distinct_user_count": 0,126 "is_shared": true,127 "published_artifacts_created_count": 0,128 "product": "product",129 "rbac_group_id": "rbac_group_id",130 "rbac_group_name": "rbac_group_name",131 "user_id": "user_id"132 }133 ],134 "next_page": "next_page"135}136```137138## Domain types139140### Beta Artifact Usage141142- `BetaArtifactUsage object`143144 Response for GET /v1/organizations/analytics/artifacts.145146 `next_page` is null on ungrouped queries — the artifact-type cube is147 finite and returned in full. Grouped queries (`group_by[]` on `product` /148 `user_id` / `rbac_group_id`) multiply the cube and paginate like the other149 analytics list endpoints.150151 - `data: array of object`152153 - `artifact_type: string`154155 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`.156157 - `artifacts_created_count: number`158159 Number of artifacts created in this bucket on the requested day160161 - `distinct_user_count: number`162163 Number of distinct users who created artifacts in this bucket on the requested day164165 - `is_shared: boolean`166167 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).168169 - `published_artifacts_created_count: number`170171 Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count`172173 - `product: optional string or null`174175 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`.176177 - `rbac_group_id: optional string or null`178179 Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`.180181 - `rbac_group_name: optional string or null`182183 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.184185 - `user_id: optional string or null`186187 Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`.188189 - `next_page: string or null`190191 Cursor for the next page of a grouped query; always null for the ungrouped artifact-type cube, which is returned in full.192