API for organization-level skill management (CRUD)
Problem
There's no programmatic way to manage organization-level skills in Claude Teams/Enterprise. The only path today is the admin UI at claude.ai/admin-settings/skills. This blocks CI/CD workflows where teams want to version-control skills in Git and auto-deploy on merge to main.
What we need
A public API (or extension of the existing /v1/skills beta) that supports:
- Create/update/delete skills scoped to an organization (not just a workspace)
- Skills deployed this way should be visible across all surfaces: chat, Cowork, and Claude Code
- Support for required skills that are enabled for all org members by default (not opt-in)
- Authentication via API key (not browser session), suitable for CI/CD automation
Use case
Our marketing team maintains brand voice skills in a GitHub repo. On PR merge to main, a GitHub Action should deploy updated skills to our entire org — no admin clicking required. Multiple teams across our company want this same pattern for their domain-specific skills.
The workflow we want:
- Team edits
skills/<name>/SKILL.mdin a GitHub repo - PR review + CI validation on structure/frontmatter
- Merge to main triggers a GitHub Action
- Action calls the Skills API to create or update org-level skills
- All org members see the updated skills immediately across chat, Cowork, and Code
Current state
- The public
/v1/skillsAPI (beta:skills-2025-10-02) is workspace-scoped and does not surface skills in the Claude UI for end users — only usable programmatically via the Messages API. - The admin UI at
/admin-settings/skillshas internal endpoints (upload-org-skill,delete-org-skill) but they use session cookie auth, making automation fragile and unsuitable for CI/CD. - There is no Admin API endpoint under
/v1/organizations/for skills.
Proposed API surface
At minimum:
POST /v1/organizations/{org_id}/skills — create an org skill (multipart, accepts .md or .zip)
GET /v1/organizations/{org_id}/skills — list org skills
GET /v1/organizations/{org_id}/skills/{id} — get a single skill
PUT /v1/organizations/{org_id}/skills/{id} — replace/update a skill
DELETE /v1/organizations/{org_id}/skills/{id} — delete a skill
Authenticated via Admin API key (sk-ant-admin-...) or a standard API key with appropriate scopes.
Related
- #25771 (closed as NOT_PLANNED — focused on CLI push rather than org-level API)
- Provision and manage Skills for your organization — documents the UI-only flow
- Skills API docs — workspace-scoped only today
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗