--- title: Skills url: https://platform.claude.com/docs/en/api/skills --- # Skills ## Create Skill **POST** `/v1/skills` Create Skill ### Headers - `"anthropic-workspace-id": optional string` ### Body parameters (form-data) - `files: array of string` Files to upload for the skill. All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory. - `display_name: optional string or null` Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter `name` when omitted at creation. Not unique. ### Returns - `Skill object` - `type: "skill"` Object type. For Skills, this is always `"skill"`. default: skill - `id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `display_name: string` Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter `name` when omitted at creation. Not unique. - `latest_version_id: string` ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. - `source: SkillSource` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `type: "custom" or "anthropic" or "anthropic_example" or "plugin"` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `"custom"` - `"anthropic"` - `"anthropic_example"` - `"plugin"` - `updated_at: string` ISO 8601 timestamp of when the skill was last updated. format: date-time ### Example ```bash curl https://api.anthropic.com/v1/skills \ -H 'Content-Type: multipart/form-data' \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -F 'files[]=@/path/to/file' ``` #### Response (200) ```json { "id": "skill_01JAbcdefghijklmnopqrstuvw", "created_at": "2024-10-30T23:58:27.427722Z", "display_name": "display_name", "latest_version_id": "latest_version_id", "source": { "type": "custom" }, "type": "skill", "updated_at": "2024-10-30T23:58:27.427722Z" } ``` ## List Skills **GET** `/v1/skills` List Skills ### Query parameters - `limit: optional number` Number of results to return per page. Ranges from `1` to `1000`. Defaults to `20`. default: 20, minimum: 1, maximum: 1000 - `page: optional string` Pagination token for fetching a specific page of results. Pass the value from a previous response's `next_page` field to get the next page of results. - `source: optional string` Filter skills by source. If provided, only skills from the specified source will be returned: * `"custom"`: only return user-created skills * `"anthropic"`: only return Anthropic-created skills ### Headers - `"anthropic-workspace-id": optional string` ### Returns - `data: array of Skill` List of skills. - `type: "skill"` Object type. For Skills, this is always `"skill"`. default: skill - `id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `display_name: string` Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter `name` when omitted at creation. Not unique. - `latest_version_id: string` ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. - `source: SkillSource` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `type: "custom" or "anthropic" or "anthropic_example" or "plugin"` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `"custom"` - `"anthropic"` - `"anthropic_example"` - `"plugin"` - `updated_at: string` ISO 8601 timestamp of when the skill was last updated. format: date-time - `next_page: string or null` Token for fetching the next page of results. If `null`, there are no more results available. Pass this value to the `page` parameter in the next request to get the next page. ### Example ```bash curl https://api.anthropic.com/v1/skills \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` #### Response (200) ```json { "data": [ { "id": "skill_01JAbcdefghijklmnopqrstuvw", "created_at": "2024-10-30T23:58:27.427722Z", "display_name": "display_name", "latest_version_id": "latest_version_id", "source": { "type": "custom" }, "type": "skill", "updated_at": "2024-10-30T23:58:27.427722Z" } ], "next_page": "next_page" } ``` ## Get Skill **GET** `/v1/skills/{skill_id}` Get Skill ### Path parameters - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. ### Headers - `"anthropic-workspace-id": optional string` ### Returns - `Skill object` - `type: "skill"` Object type. For Skills, this is always `"skill"`. default: skill - `id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `display_name: string` Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter `name` when omitted at creation. Not unique. - `latest_version_id: string` ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. - `source: SkillSource` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `type: "custom" or "anthropic" or "anthropic_example" or "plugin"` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `"custom"` - `"anthropic"` - `"anthropic_example"` - `"plugin"` - `updated_at: string` ISO 8601 timestamp of when the skill was last updated. format: date-time ### Example ```bash curl https://api.anthropic.com/v1/skills/$SKILL_ID \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` #### Response (200) ```json { "id": "skill_01JAbcdefghijklmnopqrstuvw", "created_at": "2024-10-30T23:58:27.427722Z", "display_name": "display_name", "latest_version_id": "latest_version_id", "source": { "type": "custom" }, "type": "skill", "updated_at": "2024-10-30T23:58:27.427722Z" } ``` ## Delete Skill **DELETE** `/v1/skills/{skill_id}` Delete Skill ### Path parameters - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. ### Headers - `"anthropic-workspace-id": optional string` ### Returns - `DeletedSkill object` - `type: "skill_deleted"` Deleted object type. For Skills, this is always `"skill_deleted"`. default: skill_deleted - `id: string` Unique identifier for the skill. The format and length of IDs may change over time. ### Example ```bash curl https://api.anthropic.com/v1/skills/$SKILL_ID \ -X DELETE \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` #### Response (200) ```json { "id": "skill_01JAbcdefghijklmnopqrstuvw", "type": "skill_deleted" } ``` ## Domain types ### Deleted Skill - `DeletedSkill object` - `type: "skill_deleted"` Deleted object type. For Skills, this is always `"skill_deleted"`. default: skill_deleted - `id: string` Unique identifier for the skill. The format and length of IDs may change over time. ### Skill - `Skill object` - `type: "skill"` Object type. For Skills, this is always `"skill"`. default: skill - `id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `display_name: string` Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter `name` when omitted at creation. Not unique. - `latest_version_id: string` ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. - `source: SkillSource` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `type: "custom" or "anthropic" or "anthropic_example" or "plugin"` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `"custom"` - `"anthropic"` - `"anthropic_example"` - `"plugin"` - `updated_at: string` ISO 8601 timestamp of when the skill was last updated. format: date-time ### Skill Source - `SkillSource object` - `type: "custom" or "anthropic" or "anthropic_example" or "plugin"` Where the Skill comes from. Possible values: * `"custom"`: authored by the platform user; private to their workspace * `"anthropic"`: published by Anthropic; shared and read-only * `"anthropic_example"`: Anthropic-published sample Skill * `"plugin"`: resolved from an installed plugin - `"custom"` - `"anthropic"` - `"anthropic_example"` - `"plugin"` ## Skills › Versions ### Create Skill Version **POST** `/v1/skills/{skill_id}/versions` Create Skill Version #### Path parameters - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. #### Headers - `"anthropic-workspace-id": optional string` #### Body parameters (form-data) - `files: array of string` Files to upload for the skill. All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory. #### Returns - `SkillVersion object` - `type: "skill_version"` Object type. For Skill Versions, this is always `"skill_version"`. default: skill_version - `id: string` Unique identifier for this Skill Version. The id addresses the version in paths and pins it in references. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `description: string` Description of the skill version. This is extracted from the SKILL.md file in the skill upload. - `name: string` The Skill's immutable kebab-case slug, set at creation from the first upload's SKILL.md frontmatter `name` (or its enclosing directory). Every later upload must resolve to the same value. Also the top-level directory of the Skill's mounted files and the base name of a downloaded archive. - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. #### Example ```bash curl https://api.anthropic.com/v1/skills/$SKILL_ID/versions \ -H 'Content-Type: multipart/form-data' \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -F 'files[]=@/path/to/file' ``` ##### Response (200) ```json { "id": "id", "created_at": "2024-10-30T23:58:27.427722Z", "description": "description", "name": "name", "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", "type": "skill_version" } ``` ### List Skill Versions **GET** `/v1/skills/{skill_id}/versions` List Skill Versions #### Path parameters - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. #### Query parameters - `limit: optional number` Number of results to return per page. Ranges from `1` to `1000`. Defaults to `20`. default: 20, minimum: 1, maximum: 1000 - `page: optional string` Optionally set to the `next_page` token from the previous response. #### Headers - `"anthropic-workspace-id": optional string` #### Returns - `data: array of SkillVersion` List of skills. - `type: "skill_version"` Object type. For Skill Versions, this is always `"skill_version"`. default: skill_version - `id: string` Unique identifier for this Skill Version. The id addresses the version in paths and pins it in references. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `description: string` Description of the skill version. This is extracted from the SKILL.md file in the skill upload. - `name: string` The Skill's immutable kebab-case slug, set at creation from the first upload's SKILL.md frontmatter `name` (or its enclosing directory). Every later upload must resolve to the same value. Also the top-level directory of the Skill's mounted files and the base name of a downloaded archive. - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `next_page: string or null` Token for fetching the next page of results. If `null`, there are no more results available. Pass this value to the `page` parameter in the next request to get the next page. #### Example ```bash curl https://api.anthropic.com/v1/skills/$SKILL_ID/versions \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` ##### Response (200) ```json { "data": [ { "id": "id", "created_at": "2024-10-30T23:58:27.427722Z", "description": "description", "name": "name", "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", "type": "skill_version" } ], "next_page": "next_page" } ``` ### Get Skill Version **GET** `/v1/skills/{skill_id}/versions/{version}` Get Skill Version #### Path parameters - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `version: string` Identifies the skill version: a version ID, or the literal `latest` for the skill's most recent version. Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). #### Headers - `"anthropic-workspace-id": optional string` #### Returns - `SkillVersion object` - `type: "skill_version"` Object type. For Skill Versions, this is always `"skill_version"`. default: skill_version - `id: string` Unique identifier for this Skill Version. The id addresses the version in paths and pins it in references. - `created_at: string` ISO 8601 timestamp of when the skill was created. format: date-time - `description: string` Description of the skill version. This is extracted from the SKILL.md file in the skill upload. - `name: string` The Skill's immutable kebab-case slug, set at creation from the first upload's SKILL.md frontmatter `name` (or its enclosing directory). Every later upload must resolve to the same value. Also the top-level directory of the Skill's mounted files and the base name of a downloaded archive. - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. #### Example ```bash curl https://api.anthropic.com/v1/skills/$SKILL_ID/versions/$VERSION \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` ##### Response (200) ```json { "id": "id", "created_at": "2024-10-30T23:58:27.427722Z", "description": "description", "name": "name", "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", "type": "skill_version" } ``` ### Delete Skill Version **DELETE** `/v1/skills/{skill_id}/versions/{version}` Delete Skill Version #### Path parameters - `skill_id: string` Unique identifier for the skill. The format and length of IDs may change over time. - `version: string` Identifies the skill version by its version ID. Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). #### Headers - `"anthropic-workspace-id": optional string` #### Returns - `DeletedSkillVersion object` - `type: "skill_version_deleted"` Deleted object type. For Skill Versions, this is always `"skill_version_deleted"`. default: skill_version_deleted - `id: string` Unique identifier for this Skill Version. The id addresses the version in paths and pins it in references. #### Example ```bash curl https://api.anthropic.com/v1/skills/$SKILL_ID/versions/$VERSION \ -X DELETE \ -H 'anthropic-version: 2023-06-01' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` ##### Response (200) ```json { "id": "id", "type": "skill_version_deleted" } ```