Platform

Store API Contract (for Agent OS)

Contract that an optional skill store should follow so Agent OS can list and install skills.

Overview

Agent OS expects an optional skill store to expose a registry and skill content endpoints. If you run or use a store, it should follow this contract so the dashboard and POST /api/skills/install work correctly.

Registry

GET <registry_url>

Example: GET https://your-store.example.com/api/sulalahub/registry

Response: JSON with a skills array. Each entry:

FieldDescription
slugUnique id (e.g. weather, news). Used to install: POST /api/skills/install with { "slug": "weather" }.
nameDisplay name.
descriptionShort description.
versionOptional. Semver.
urlRequired. Full URL to fetch the skill content (e.g. Markdown or zip). Agent OS fetches from this URL when installing. Paid skills may require ?license=TOKEN.

Example:

{
  "skills": [
    {
      "slug": "weather",
      "name": "Weather",
      "description": "Current weather and forecast.",
      "version": "1.0.0",
      "url": "https://your-store.example.com/api/sulalahub/skills/weather"
    }
  ]
}

Skill content

GET <skill url from registry>

When Agent OS installs a skill by slug, it fetches the content from the url in the registry. The response can be:

  • Markdown — Raw skill doc (e.g. SKILL.md or README). The loader may also support a zip or multi-file format if the store and loader support it.
  • Paid skills — Store may require ?license=TOKEN and return 401/403 without a valid token.

Agent OS does not define the store’s submission, admin, or payment APIs; those belong to the store app. This page only describes the agent-facing registry and skill URL contract.