---
title: "Validate Skill"
method: POST
path: "/v1/skills/validate"
tags: ["Skills"]
---

# Validate Skill

`POST /v1/skills/validate`

Dry-run validation of skill files and metadata without persisting.

## Response `200`

Validation result.

- SkillValidationResponse — Result of a dry-run skill validation.
  - `valid` boolean, required — Whether the skill payload would be accepted.
  - `name` string, nullable — Parsed skill name from SKILL.md frontmatter (when valid).
  - `description` string, nullable — Parsed skill description from SKILL.md frontmatter (when valid).
  - `errors` SkillValidationError[] — Validation errors (when invalid).
    - `code` string, required — Uppercase error code identifying the failure kind.
    - `message` string, required — Human-readable description of the error.
    - `params` object, nullable — Optional i18n interpolation parameters (e.g. {'size': '10'}).

## Other responses

- `401` — Unauthorized
- `422` — Validation Error

---

[API](https://skmtc.net/zylon-ai/apis/private-gpt-api.md) · [All operations](https://skmtc.net/zylon-ai/apis/private-gpt-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zylon-ai/private-gpt-api/versions/594fa71dfb90/schema)
