Skills
api/admin/analytics/skills
Nearest release: v2.1.245, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
api/admin/analytics/skills Changed · +31 / -28 lines
### Query parameters #### Response (200) ## Domain types ### Query Parameters #### Response ## Domain Types
---- -title: Skills -url: https://platform.claude.com/docs/en/api/admin/analytics/skills ---- - # Skills ## Get Skill Usage -**get** `/v1/organizations/analytics/skills` +**GET** `/v1/organizations/analytics/skills` Get per-skill usage for a given day, with cursor-based pagination.
on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope. -### Query Parameters +### Query parameters - `date: optional string` UTC date in YYYY-MM-DD format. The day to get skill usage 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. + format: date + - `ending_date: optional string` 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. + format: date + - `filter: optional array of string` 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. + maxItems: 100 + - `group_by: optional array of "product" or "rbac_group_id" or "user_id"` 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. + maxItems: 100 + - `"product"` - `"rbac_group_id"`
Number of results per page (1-1000, default 100). + minimum: 1, maximum: 1000 + - `order: optional "asc" or "desc"` 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.
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. + format: date + ### Returns -- `SkillUsage object { data, next_page }` +- `SkillUsage object` Response for GET /v1/organizations/analytics/skills. - - `data: array of object { chat_metrics, claude_code_metrics, cowork_metrics, 14 more }` + - `data: array of object` - - `chat_metrics: object { distinct_conversation_skill_used_count }` + - `chat_metrics: object` Claude.ai activity metrics for a single skill on a given day.
Number of distinct conversations in which the skill was used. 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. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - - `claude_code_metrics: object { distinct_session_skill_used_count }` + - `claude_code_metrics: object` Claude Code activity metrics for a single skill on a given day.
Number of distinct Claude Code sessions in which the skill was used. 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. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - - `cowork_metrics: object { distinct_session_skill_used_count }` + - `cowork_metrics: object` Cowork activity metrics for a single skill on a given day.
Number of distinct users who used the skill on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. 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. - - `office_metrics: object { excel, outlook, powerpoint, word }` + - `office_metrics: object` Office Agent activity metrics for a single skill on a given day, broken out by Office product.
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. - - `"USD"` - - `enable_count: optional number or null` 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).
### Example -```http +```bash curl https://api.anthropic.com/v1/organizations/analytics/skills \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_ADMIN_API_KEY" ``` -#### Response +#### Response (200) ```json {
} ``` -## Domain Types +## Domain types ### Skill Usage -- `SkillUsage object { data, next_page }` +- `SkillUsage object` Response for GET /v1/organizations/analytics/skills. - - `data: array of object { chat_metrics, claude_code_metrics, cowork_metrics, 14 more }` + - `data: array of object` - - `chat_metrics: object { distinct_conversation_skill_used_count }` + - `chat_metrics: object` Claude.ai activity metrics for a single skill on a given day.
Number of distinct conversations in which the skill was used. 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. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - - `claude_code_metrics: object { distinct_session_skill_used_count }` + - `claude_code_metrics: object` Claude Code activity metrics for a single skill on a given day.
Number of distinct Claude Code sessions in which the skill was used. 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. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - - `cowork_metrics: object { distinct_session_skill_used_count }` + - `cowork_metrics: object` Cowork activity metrics for a single skill on a given day.
Number of distinct users who used the skill on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. 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. - - `office_metrics: object { excel, outlook, powerpoint, word }` + - `office_metrics: object` Office Agent activity metrics for a single skill on a given day, broken out by Office product.
- `currency: optional "USD" or null` 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. - - - `"USD"` - `enable_count: optional number or null`