---
title: "Execute a skill once"
method: POST
path: "/skills/{action_id}/execute"
tags: ["Skills"]
---

# Execute a skill once

`POST /skills/{action_id}/execute`

## Request

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

Run a skill once and return the execution result.

Pre-flight GET enforces the action is a skill (not a workflow) so
the skill execute surface stays sealed. ``org_id`` is pinned;
``triggered_by`` defaults to the caller's user id.

## Path parameters

- `action_id` string, required: Skill action_id.

## Headers

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

## Request body

- object: ExecutionCreateRequest body.

## Response `200`

Successful Response

- object

## Other responses

- `202`: The run request reached the skill service but no reply came back in time. ``outcome`` is ``started`` (the run was found; ``execution_id`` is set) or ``unknown`` (check ``possible_executions`` before retrying). Never a failure.
- `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)
