curl -X POST "https://api.danubeai.com/v1/skills" \
-H "danube-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "pdf-processing",
"skill_md_content": "---\ndescription: Extract and process PDF documents\n---\n\n# PDF Processing\n\n## Steps\n1. Parse the PDF file\n2. Extract text content\n3. Return structured data",
"scripts": [
{"name": "extract.py", "content": "import fitz\n\ndef extract(path):\n doc = fitz.open(path)\n return [p.get_text() for p in doc]"}
],
"visibility": "private"
}'
{
"id": "skill_abc123",
"name": "pdf-processing",
"description": "Extract and process PDF documents",
"skill_md": "---\ndescription: Extract and process PDF documents\n---\n\n# PDF Processing\n...",
"scripts": [
{"name": "extract.py", "content": "..."}
],
"references": [],
"assets": [],
"visibility": "private",
"created_at": "2026-02-24T12:00:00Z"
}
Skills
Create Skill
Create a new skill
POST
/
v1
/
skills
curl -X POST "https://api.danubeai.com/v1/skills" \
-H "danube-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "pdf-processing",
"skill_md_content": "---\ndescription: Extract and process PDF documents\n---\n\n# PDF Processing\n\n## Steps\n1. Parse the PDF file\n2. Extract text content\n3. Return structured data",
"scripts": [
{"name": "extract.py", "content": "import fitz\n\ndef extract(path):\n doc = fitz.open(path)\n return [p.get_text() for p in doc]"}
],
"visibility": "private"
}'
{
"id": "skill_abc123",
"name": "pdf-processing",
"description": "Extract and process PDF documents",
"skill_md": "---\ndescription: Extract and process PDF documents\n---\n\n# PDF Processing\n...",
"scripts": [
{"name": "extract.py", "content": "..."}
],
"references": [],
"assets": [],
"visibility": "private",
"created_at": "2026-02-24T12:00:00Z"
}
Overview
Creates a new skill with SKILL.md content, optional scripts, reference files, and assets. Private and internal (organization) skills are created immediately. Public skills require the/skill-submissions review flow. To upload a whole skill folder instead, see Organization skills.
Auth: Accepts either JWT or API key (danube-api-key header).
Body Parameters
string
required
Skill name (e.g. “pdf-processing”)
string
required
The SKILL.md markdown content with instructions. Should include YAML frontmatter with a
description field.array
default:[]
array
default:[]
array
default:[]
string
default:"private"
"private" (yours alone) or "internal" (every member of an organization). Public skills require /skill-submissions.string
For
"internal": the organization to share it with. Defaults to the acting organization (the danube-org-id header or an organization API key). An organization can limit publishing to its owners and admins (skills_member_publish); otherwise any member may publish.string
Optional service UUID to associate the skill with
Response
string
Created skill UUID
string
Skill name
string
Description extracted from SKILL.md frontmatter
string
The SKILL.md content
array
Script files
array
Reference files
array
Asset files
Example
curl -X POST "https://api.danubeai.com/v1/skills" \
-H "danube-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "pdf-processing",
"skill_md_content": "---\ndescription: Extract and process PDF documents\n---\n\n# PDF Processing\n\n## Steps\n1. Parse the PDF file\n2. Extract text content\n3. Return structured data",
"scripts": [
{"name": "extract.py", "content": "import fitz\n\ndef extract(path):\n doc = fitz.open(path)\n return [p.get_text() for p in doc]"}
],
"visibility": "private"
}'
{
"id": "skill_abc123",
"name": "pdf-processing",
"description": "Extract and process PDF documents",
"skill_md": "---\ndescription: Extract and process PDF documents\n---\n\n# PDF Processing\n...",
"scripts": [
{"name": "extract.py", "content": "..."}
],
"references": [],
"assets": [],
"visibility": "private",
"created_at": "2026-02-24T12:00:00Z"
}
MCP Tool
This endpoint is also available as thecreate_skill MCP tool:
result = await mcp.call_tool("create_skill", {
"name": "pdf-processing",
"skill_md_content": "---\ndescription: Extract PDFs\n---\n\n# PDF Processing\n...",
"visibility": "private"
})
