---
title: "Build a skill"
method: POST
path: "/api/v1beta/skills/build"
tags: ["skills"]
---

# Build a skill

`POST /api/v1beta/skills/build`

Build a skill from a local directory

## Request body

- union
  - object
  - PkgApiV1BuildSkillRequest — Request to build a skill from a local directory
    - `path` string — Path to the skill definition directory
    - `tag` string — OCI tag for the built artifact

## Response `200`

OK

- GithubComStacklokToolhivePkgSkillsBuildResult
  - `reference` string — Reference is the OCI reference of the built skill artifact.

## Other responses

- `400` — Bad Request
- `500` — Internal Server Error

## Changes

> 49 revisions in range; 6 could not be searched.

- **2026-03-17** `8ab2f5690c97` — 1 breaking, 1 info
  - removed `#/components/schemas/v1.buildSkillRequest` from the request body `oneOf` list
  - added `#/components/schemas/pkg_api_v1.buildSkillRequest` to the request body `oneOf` list
- **2026-03-03** `3e1a5843166a` — 3 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `500`
  - removed the non-success response with the status `501`
- **2026-02-09** `a00c1abcef71` — 1 info
  - endpoint added
- **2026-01-29** `ff6ce8dd8f3a` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/stacklok/apis/toolhive-api/changes/api/v1beta/skills/build/post.md)

---

[API](https://skmtc.dev/stacklok/apis/toolhive-api.md) · [All operations](https://skmtc.dev/stacklok/apis/toolhive-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stacklok/toolhive-api/revisions/e9f942effcda/schema)
