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

# Validate a skill

`POST /api/v1beta/skills/validate`

Validate a skill definition

## Request body

- union
  - object
  - PkgApiV1ValidateSkillRequest — Request to validate a skill definition
    - `path` string — Path to the skill definition directory

## Response `200`

OK

- GithubComStacklokToolhivePkgSkillsValidationResult
  - `errors` string[] — Errors is a list of validation errors, if any.
  - `valid` boolean — Valid indicates whether the skill definition is valid.
  - `warnings` string[] — Warnings is a list of non-blocking validation warnings, if any.

## Other responses

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

## Changes

- **2026-03-17** `8ab2f5690c97` — 1 breaking, 1 info
  - removed `#/components/schemas/v1.validateSkillRequest` from the request body `oneOf` list
  - added `#/components/schemas/pkg_api_v1.validateSkillRequest` 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-10** `5e68e4ab4eaa` — 1 info
  - added the optional property `warnings` to the response with the `200` status
- **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/validate/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)
