> ## Documentation Index
> Fetch the complete documentation index at: https://docs.danubeai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Skill for Review

> Submit a skill for public review

## Overview

Submits a skill for review before it can be published publicly. The skill content is validated before the submission is created. Once approved by an admin, the skill is created as a public skill.

**Auth:** Requires JWT authentication.

## Body Parameters

<ParamField body="name" type="string" required>
  Skill name (e.g. "pdf-processing")
</ParamField>

<ParamField body="skill_md_content" type="string" required>
  The SKILL.md markdown content with instructions. Should include YAML frontmatter with a `description` field.
</ParamField>

<ParamField body="scripts" type="array" default={[]}>
  Executable script files

  <Expandable title="Script file object">
    <ParamField body="name" type="string" required>
      File name (e.g. "process.py")
    </ParamField>

    <ParamField body="content" type="string" required>
      File content
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="reference_files" type="array" default={[]}>
  Reference documentation files

  <Expandable title="Reference file object">
    <ParamField body="name" type="string" required>
      File name
    </ParamField>

    <ParamField body="content" type="string" required>
      File content
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="assets" type="array" default={[]}>
  Asset files (templates, resources)

  <Expandable title="Asset file object">
    <ParamField body="name" type="string" required>
      File name
    </ParamField>

    <ParamField body="content" type="string" required>
      File content
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="service_id" type="string">
  Optional service UUID to associate the skill with
</ParamField>

<ParamField body="license" type="string">
  License identifier (e.g. "MIT", "Apache-2.0")
</ParamField>

<ParamField body="compatibility" type="string">
  Compatibility notes
</ParamField>

## Response

<ResponseField name="id" type="string">
  Submission UUID
</ResponseField>

<ResponseField name="skill_name" type="string">
  Skill name
</ResponseField>

<ResponseField name="status" type="string">
  Submission status: `"pending"`, `"approved"`, or `"rejected"`
</ResponseField>

<ResponseField name="submitted_at" type="string">
  ISO 8601 timestamp
</ResponseField>

## Example

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.danubeai.com/v1/skill-submissions" \
    -H "Authorization: Bearer YOUR_JWT" \
    -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]"}
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "id": "sub_abc123",
    "skill_name": "pdf-processing",
    "status": "pending",
    "submitted_at": "2026-02-24T12:00:00Z",
    "reviewed_at": null,
    "reviewer_notes": null,
    "skill_id": null
  }
  ```
</ResponseExample>
