---
title: "Create or update a skill"
method: PUT
path: "/skills/{namespace}/{slug}"
tags: ["skills"]
---

# Create or update a skill

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

Idempotent endpoint to create or update a GitHub-backed skill. Send application/json with `gitUrl`.

## Path parameters

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

## Request body

- unknown

## 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 or SKILL.md not found
- `409` — Git URL already claimed by another skill
- `422` — SKILL.md validation error

---

[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/versions/60b8c3d2fecf/schema)
