---
title: "Validate a skill template (extract + warn on common mistakes)"
method: POST
path: "/skills/validate"
tags: ["Skills"]
---

# Validate a skill template (extract + warn on common mistakes)

`POST /skills/validate`

## Request

- Base URL: `https://be.graph8.com/api/v1`
- URL: `https://be.graph8.com/api/v1/skills/validate`
- Auth: HTTP bearer

Dry-run template validator. Returns extracted variables plus
warnings about common mistakes (double-brace usage, unmatched braces).

Per the PRD lock (Q3): warn-only. We never block creation on warnings
here — the user is the source of truth and a double-brace pattern is
valid Jinja that voice's runtime may handle differently from skills.

Accepts two shapes:
  1) ``{"template": "Hello {name}"}`` — one string in, vars out.
  2) ``{"runtime_type": "llm", "llm_config": {...}}`` — full skill
     shape, scans every template field the matching runtime would use.

## Headers

- `Authorization` string, nullable
- `X-Target-Org-Id` string, nullable

## Request body

- object: Template validation payload. ``{template: str}`` or ``{runtime_type, llm_config|api_config}``.

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/graph8/apis/graph8-developer-api.md) · [All operations](https://skmtc.dev/graph8/apis/graph8-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/graph8/apis/graph8-developer-api/revisions/2e7cfa0ca921?raw)
