Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/org-quicko/skillset/llms.txt

Use this file to discover all available pages before exploring further.

The Submissions API supports a community workflow for getting Resources into the Registry without requiring a Writer account. Any signed-in user — including Readers — can submit a Resource sourced from a public repository. An Admin then reviews the pending Submissions and either approves (converting the Submission into a live Resource) or rejects it. Submitting puts nothing in the public catalog. Only approval makes a Resource discoverable and installable.

Lifecycle

1

Install from a URL

A user installs a Skill directly from a Git repository URL with skillset install --url. The CLI downloads the files and stores them locally.
2

Submit

The user submits the Skill to the Registry via skillset submit or PUT /api/submissions/:kind/:name. The Skill’s files are uploaded to object storage, but the record is held in a pending state — invisible to catalog readers.
3

Admin reviews

An Admin lists pending Submissions via GET /api/submissions, reviews the content, and either approves or rejects each one.
4

Approved → Resource

On approval, the Submission becomes a full Resource under the same (kind, namespace, name). It is now discoverable, searchable, and installable from the catalog.
A Submission must include a source field — the repository URL where the files came from. This is enforced at submission time: a Submission with no source is rejected with 400 source_required.

Endpoints at a glance

MethodPathAuthDescription
GET/api/submissionsAdmin+List pending Submissions
PUT/api/submissions/:kind/:nameAny signed-inSubmit a Resource
POST/api/submissions/:id/approveAdmin+Approve and publish
DELETE/api/submissions/:idAdmin+Reject and delete

List pending Submissions

GET /api/submissions
Returns all Submissions that are waiting for Admin review, ordered newest first. Requires Admin role.

Response fields

items
array
Pending Submission records. Each entry has:
curl https://registry.example.com/api/submissions \
  -H "Authorization: Bearer <token>"

Submit a Resource

PUT /api/submissions/:kind/:name
Creates or replaces a pending Submission. Open to any signed-in user — Reader role is sufficient. Returns the Submission record and presigned upload destinations for the Artifact files. This endpoint accepts the same body as PUT /api/resources/:kind/:name (the publish endpoint), but the source field is required — a Submission must record where it came from.

Path parameters

kind
string
required
Resource Kind. Currently skill.
name
string
required
Resource name.

Request body

description
string
required
Short description.
body
string
required
Full SKILL.md content.
source
string
required
Repository URL where these files came from. Required for Submissions — rejected with 400 source_required if absent.
files
array
required
Artifact manifest — path and byte size for each file to upload.
license
string
SPDX license identifier.
compatibility
string
Compatible agents or environments.
metadata
object
Free-form string-to-string key/value pairs.
allowed_tools
string
Comma-separated list of tools the Skill may invoke.

Response fields

submission
object
The Submission as stored — full ResourceSubmissionSchema shape.
upload
object
Presigned upload destinations for the Artifact files (same shape as the publish response).

Error codes

CodeStatusWhen
source_required400The source field was absent.
already_published409A Resource with the same (kind, namespace, name) already exists in the Registry.
validation_failed400A field failed validation rules.
curl -X PUT https://registry.example.com/api/submissions/skill/build-react-app \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "A Skill for scaffolding React applications.",
    "body": "# Build React App\n\n...",
    "source": "https://github.com/community/skills",
    "files": [
      { "path": "SKILL.md", "size": 1024 }
    ]
  }'

Approve a Submission

POST /api/submissions/:id/approve
Converts a pending Submission into a live Resource in the Registry. Requires Admin role. Returns the newly created Resource record (full SkillSchema shape).
Approval is refused with 409 already_published if a Resource with the same (kind, namespace, name) was published while the Submission was pending. Approval is also refused with 409 submission_incomplete if the submitter’s Artifact upload never completed.

Path parameters

id
string
required
UUID of the Submission to approve.

Error codes

CodeStatusWhen
not_found404No Submission with that id.
already_published409The target (kind, namespace, name) is already in the Registry.
submission_incomplete409The Submission’s Artifact files were never uploaded.
curl -X POST https://registry.example.com/api/submissions/018f1234-abcd-7000-8000-000000000001/approve \
  -H "Authorization: Bearer <token>"

Reject a Submission

DELETE /api/submissions/:id
Permanently removes a pending Submission without publishing anything. Requires Admin role. Returns 204 No Content.

Path parameters

id
string
required
UUID of the Submission to reject.

Error codes

CodeStatusWhen
not_found404No Submission with that id.
curl -X DELETE https://registry.example.com/api/submissions/018f1234-abcd-7000-8000-000000000001 \
  -H "Authorization: Bearer <token>"

Build docs developers (and LLMs) love