---
title: "Delete a skill"
method: DELETE
path: "/skills/{action_id}"
tags: ["Skills"]
---

# Delete a skill

`DELETE /skills/{action_id}`

## Request

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

Delete a skill. Pre-flight GET enforces the target is a skill
before forwarding the DELETE.

NOTE: this is a hard delete at the voice layer. Per the PRD lock,
the skills surface does NOT do MCP-only soft-delete reference checks
here — that logic lives in the MCP tool layer (where we can read
workflow node references and refuse the delete).

## Path parameters

- `action_id` string, required: Skill action_id.

## Headers

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

## 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)
