---
title: "Deprecated: use POST /plugins (multipart, as before). Create a skill (uploads revision 1) [write]"
method: POST
path: "/skills"
deprecated: true
---

# Deprecated: use POST /plugins (multipart, as before). Create a skill (uploads revision 1) \[write\]

`POST /skills`

## Request

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

> **Deprecated.**

Deprecated: use `POST /plugins (multipart, as before)`. Still served exactly as before; every answer carries a `Deprecation` header. A skill is a universe-scoped, immutably-revisioned file bundle agents load on demand (RFC-0073). Attach it to agents via the `skills` array on create/patch.

## Request body `multipart/form-data`

- object
  - `files` string[], required: One zip archive or individual files. SKILL.md with `name` + `description` frontmatter must sit at the root of the single top-level directory. ≤30 MB uncompressed; zip entries keep their unix exec bit.
  - `displayName` string
  - `executablePaths` string: Optional JSON array of executable file paths within a revision upload. Preserves Unix mode when editing loose files; omit to keep legacy loose-file behavior.
  - `expectedLatestRevision` string: Optional revision precondition when uploading a revision; 409 revision_conflict if latest changed. Omit to preserve unconditional upload behavior.

## Response `201`

Created

- object
  - `skill` Skill, required
    - `id` string, required
    - `displayName` string, required
    - `latestRevisionId` string, nullable, required: What `latest` references resolve to.
    - `attachByDefault` boolean, required: Whether every new session in the workspace starts with this skill's latest revision.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `revision` SkillRevision, required
    - `id` string, required
    - `skillId` string, required
    - `name` string, required: Frontmatter name — the skill's identity name.
    - `description` string, required
    - `files` object[], required
      - `path` string, required
      - `size` integer, required
      - `sha256` string, required
      - `executable` boolean, required
    - `createdAt` string, date-time, required

## Other responses

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

## Changes

- **2026-11-02** `e5e8f0229a99`: 7 info
  - endpoint deprecated
  - added the new optional request property `executablePaths`
  - added the new optional request property `expectedLatestRevision`
  - added the optional property `error/request_id` to the response with the `default` status
  - …3 more

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/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)
