---
title: "Create a skill (LLM or API runtime)"
method: POST
path: "/skills"
tags: ["Skills"]
---

# Create a skill (LLM or API runtime)

`POST /skills`

## Request

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

Create a new skill. Pins ``org_id`` server-side and rejects any
runtime_type other than ``llm`` or ``api``.

Body must include ``name``, ``runtime_type`` (``llm`` or ``api``),
and the matching ``llm_config`` or ``api_config`` block.

This is the SAME endpoint that ``g8_skill_create_from_node`` (lift)
routes through, so lifted skills are byte-identical to authored ones.

## Headers

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

## Request body

- object: Skill create payload (voice ActionCreateRequest).

## Response `201`

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)
