---
title: "Update Skill"
method: POST
path: "/v1/skills/{skill_id}/update"
tags: ["skills"]
---

# Update Skill

`POST /v1/skills/{skill_id}/update`

## Request

- Base URL: `https://api.vlm.run` (the document declares no server; this is the origin it was published from)
- URL: `https://api.vlm.run/v1/skills/{skill_id}/update`
- Auth: HTTP bearer

Create a new version of an existing skill.

This creates a NEW database record with:
- A new unique ID
- The same name as the original skill
- A new auto-generated version (format: YYYYMMDD-<8-char-sha256>)

Workflow:
1. Upload new skill zip via POST /v1/files -> get file_id
2. Call this endpoint with the original skill_id and new file_id to create a new version

## Path parameters

- `skill_id` string, required

## Request body

- SkillUpdateRequest: Request to update a skill.
  - `file_id` string, required: File ID from file upload API (the new skill zip)
  - `description` string, nullable: Updated description of the skill
  - `is_public` boolean, nullable: Updated public accessibility

## Response `200`

Successful Response

- SkillCreateResponse: Response for skill creation.
  - `id` string, required: ID of the created skill
  - `name` string, required: Name of the skill (may differ from request if LLM-generated)
  - `description` string, required: Description of the skill (may differ from request if LLM-generated)
  - `skill_version` string, required: Auto-generated version of the skill (e.g. '20260512-abc12345')
  - `status` string: Status of the skill creation
  - `created_at` string, date-time, required: Date and time when the skill was created
  - `updated_at` string, date-time, required: Date and time when the skill was updated

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/vlm/apis/vlm-run-unified-server.md) · [All operations](https://skmtc.dev/vlm/apis/vlm-run-unified-server/llms.txt) · [OpenAPI document](https://skmtc.dev/vlm/apis/vlm-run-unified-server/revisions/4a68ab36546b?raw)
