---
title: "Extract {variable} placeholders from a skill's templates"
method: GET
path: "/skills/{action_id}/variables"
tags: ["Skills"]
---

# Extract {variable} placeholders from a skill's templates

`GET /skills/{action_id}/variables`

## Request

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

Return the deduplicated, first-seen-order list of ``{variable}``
placeholders extracted from the skill's templates.

For LLM skills we scan ``llm_config.prompt_template``.
For API skills we scan ``api_config.endpoint``, ``api_config.body_template``,
every header value, and every query param value.

Single-brace regex only — ``{{double_brace}}`` patterns are ignored
to avoid pulling Jinja control structures out as variables.

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