---
title: "Create a skill"
method: POST
path: "/v1/fleet/skills"
tags: ["skills"]
---

# Create a skill

`POST /v1/fleet/skills`

Creates a workspace skill with the supplied file tree.
Skills support file entries only — linked agent/skill entries
are rejected.

Cleanup is best-effort: if the initial commit fails the empty
repo is deleted, but a transport failure during rollback can
leave an orphan repo with no commits. Subsequent creates with
the same name will then 409; delete the orphan and retry.

## Request body

- SkillsCreateSkillRequest
  - `files` object, required
  - `name` string, required

## Response `201`

Created

- SkillsSkill
  - `commit_hash` string
  - `commit_id` string
  - `created_at` string
  - `files` object
  - `id` string
  - `name` string
  - `owners` SkillsSkillOwner[]
    - `created_at` string
    - `email` string
    - `full_name` string
    - `identity_id` string
    - `ls_user_id` string
  - `updated_at` string
  - `visibility` string

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `409` — Conflict
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/langchain-ai/apis/langsmith.md) · [All operations](https://skmtc.net/langchain-ai/apis/langsmith/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/langchain-ai/langsmith/revisions/a0acb3a6a101/schema)
