---
title: "Create custom skill"
method: POST
path: "/skills"
tags: ["Skills"]
---

# Create custom skill

`POST /skills`

Create an org-scoped custom skill. The skill will be searchable via /skills/resolve alongside curated skills.

## Request body

- object
  - `name` string, required — Skill name
  - `slug` string — URL-safe slug. Auto-generated from name if omitted.
  - `summary` string — Brief description (1-2 sentences)
  - `content` string, required — Full skill content in markdown
  - `tags` string[] — Tags for categorization and search boosting
  - `metadata` object — Arbitrary metadata (author, license, etc.)

## Response `201`

Skill created

- object
  - `slug` string
  - `name` string
  - `summary` string, nullable
  - `content` string
  - `tags` string[]
  - `metadata` object
  - `version` integer
  - `created_at` string, date-time

## Other responses

- `400` — Invalid input
- `401` — Authentication required
- `403` — Insufficient permissions
- `409` — Slug already exists in this org

---

[API](https://skmtc.net/casemark/apis/case-dev-api.md) · [All operations](https://skmtc.net/casemark/apis/case-dev-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/casemark/case-dev-api/revisions/5b7e64e6d6f9/schema)
