---
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

---

[API](https://skmtc.net/smithery-ai/apis/smithery-platform-api.md) · [All operations](https://skmtc.net/smithery-ai/apis/smithery-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smithery-ai/smithery-platform-api/revisions/60b8c3d2fecf/schema)
