Before you start
- API key: All endpoints require a Bearer token. Admins can create API keys in the workspace settings under the API Keys section.
- Space scope: Skills always belong to a space, so all endpoints are nested under the space path (
/api/v1/spaces/{spaceId}/skills). The caller’s role in that space must grant read permission for the Skills feature to list or read skills, and write permission to create, update, or delete them. - User-created skills only: Built-in nuwacom skills and skill templates are not exposed through this API. The API returns and manages only user-created skills (created manually, via upload, GitHub import, or AI generation).
- No draft state: Unlike agents, skills have no draft/published distinction — changes are live immediately.
Base URL
{customer-tenant} with your workspace’s tenant name.
Available endpoints
Instructions and SKILL.md
Under the hood a skill is stored as aSKILL.md file: a YAML frontmatter block with the skill’s name and description, followed by the markdown instructions. The API abstracts this away:
- The
instructionsfield on Create and Update is the body of theSKILL.md— write plain markdown, without frontmatter. - The frontmatter is generated automatically from
nameanddescriptionand kept in sync when you change them. - Get a skill returns the current body as
instructions. The list endpoint omits it for performance; fetch a single skill to read it.
On update,
instructions fully replaces the current body. Read the current value first via Get a skill if you want to append rather than replace. Omitting instructions keeps the current body (a pure rename only updates the frontmatter).Activation
Every skill carries anenabled flag in its API responses: the space-wide activation state. Enabled skills are loaded by the AI whenever their description matches the task; disabled skills are ignored. Skills start out enabled.
- Disable a skill switches a skill off for the whole space without deleting it — the skill and its files stay untouched.
- Enable a skill switches it back on.
409 — disable another skill first.
The API manages the space-wide state (admin semantics — API keys have no personal user context). Individual users can still override it for themselves in the nuwacom app; those personal preferences are not visible through this API.
Skill files
Besides itsSKILL.md, a skill can carry additional files — reference documents, scripts, or templates the AI reads on demand when the instructions point to them. The file endpoints manage these files:
- List skill files returns every file with its
path,size(bytes), andmimeType. - Get a skill file returns a file’s text content. Reference files by their relative
pathwithin the skill folder — nested paths likereference/format.mdgo directly into the URL. - Create or replace a skill file writes a text file. Parent folders are created implicitly by the path; the provided
contentfully replaces any existing file. - Delete a skill file removes a file.
SKILL.mdcannot be deleted — every skill needs one.
You can write
SKILL.md through the file endpoints, which replaces the whole file including its frontmatter (a valid frontmatter description is synced back into the skill’s metadata). Prefer Update a skill with instructions instead — it keeps the frontmatter consistent automatically.Pagination
List skills is paginated. Control the page with two optional query parameters:
The response is an envelope: the skills are in
data, alongside pagination metadata (total, limit, offset, hasMore). Page through the full list by increasing offset by limit until hasMore is false.
Example: create a skill
id. The skill is active immediately and the AI can load it whenever its description matches the task.
Field limits
Use skills with agents
Agents can have specific skills attached: pass the skillids returned by this API in the skillIds array when creating or updating an agent. See the Agents API overview for the full semantics (exclusive loading, full replace, draft/publish).