---
title: "Create a new immutable skill version."
method: POST
path: "/skills/{skill_id}/versions"
tags: ["Skills"]
---

# Create a new immutable skill version.

`POST /skills/{skill_id}/versions`

## Path parameters

- `skill_id` string, required

## Request body

- CreateSkillVersionBody — Uploads a new immutable version of a skill.
  - `files` union, required
    - string[] — Skill files to upload (directory upload) or a single zip file.
    - string, binary — Skill zip file to upload.
  - `default` boolean — Whether to set this version as the default.

## Response `200`

Success

- SkillVersionResource
  - `object` 'skill.version', required — The object type, which is `skill.version`.
  - `id` string, required — Unique identifier for the skill version.
  - `skill_id` string, required — Identifier of the skill for this version.
  - `version` string, required — Version number for this skill.
  - `created_at` integer, required — Unix timestamp (seconds) for when the version was created.
  - `name` string, required — Name of the skill version.
  - `description` string, required — Description of the skill version.

## Other responses

- `429` — The request was rejected because a rate limit was exceeded.

## Changes

> 82 revisions in range; 13 could not be searched.

- **2026-08-14** `6ac2618eefd7` — 1 info
  - added the non-success response with the status `429`
- **2026-05-13** `74cbcf73838f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/skills/:skill_id/versions/post.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openai/openapi/revisions/959ef977e135/schema)
