---
title: "Upload a skill through the Library owner [write]"
method: POST
path: "/library/skills"
---

# Upload a skill through the Library owner \[write\]

`POST /library/skills`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/library/skills`
- Auth: HTTP bearer

Uploads a skill, updates the consumer workspace fingerprint record and makes it available by default. Same owner as the Mac Library. JSON file paths and decoded bundles pass the existing platform bundle validator; multipart files use their relative paths as filenames. If Library setup fails after platform creation, the successful status and original skill/revision receipt are preserved with warning.code=library_skill_setup_pending and recovery GET /library/skills. Retry only that catalog settlement; do not re-upload the saved skill.

## Request body

- object
  - `files` object[], required
    - `path` string, required
    - `content` string, required
    - `encoding` 'utf8' | 'base64'
  - `displayName` string
  - `expectedLatestRevision` string: Optional revision CAS token for a new version.

## Response `201`

Platform skill and revision receipt, with optional warning {code: library_skill_setup_pending, message, recovery: {method: GET, path: /library/skills}} when saved but Library setup is pending

## Other responses

- `default`: Error — { error: { code, message } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/library/skills/post.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/8280a065ef6a?raw)
