---
title: "Upload a skill bundle"
method: PUT
path: "/skills/{namespace}/{slug}/upload"
tags: ["skills"]
---

# Upload a skill bundle

`PUT /skills/{namespace}/{slug}/upload`

Upload or replace a skill bundle via multipart/form-data with an `archive` file.

## Path parameters

- `namespace` string, required
- `slug` string, required

## Response `200`

Skill updated successfully

- object
  - `id` string, required
  - `namespace` string, required
  - `slug` string, required
  - `displayName` string, required
  - `description` string, required
  - `gitUrl` string, nullable, required
  - `externalStars` number, required
  - `listed` boolean, required
  - `createdAt` string, required
  - `updatedAt` string, required

## Other responses

- `201` — Skill created successfully
- `400` — Invalid request
- `403` — Forbidden - user does not own the namespace
- `404` — Namespace not found
- `422` — SKILL.md validation error
- `502` — Failed to store uploaded skill bundle

## Changes

- **2026-03-13** `43d4f1082544` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/smithery-ai/apis/smithery-platform-api/changes/skills/:namespace/:slug/upload/put.md)

---

[API](https://skmtc.dev/smithery-ai/apis/smithery-platform-api.md) · [All operations](https://skmtc.dev/smithery-ai/apis/smithery-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/smithery-ai/apis/smithery-platform-api/revisions/01f97a60fd96?raw)
