SkillHub

API Overview

A typed REST API generated from the same contract the CLI and dashboard use.

SkillHub is built on one typed contract. That contract is served two ways: as a native RPC endpoint for first-party clients, and as a REST + OpenAPI façade for everyone else. The CLI and the web dashboard both talk to it — so the REST API documented here is not a second-class surface bolted on afterwards, it is the very same implementation exposed over HTTP.

The shape of it

  • One contract, two transports. Every REST endpoint mirrors exactly one contract procedure. There is no separate REST codebase to drift out of sync.
  • Typed end to end. Request and response schemas are generated from the contract, so the OpenAPI document always matches what the server actually accepts and returns.
  • OpenAPI 3.1. The Reference section in the sidebar is generated from that document — one interactive page per endpoint, with parameters, request and response schemas, code samples, and a "Try it" playground.

Base URL

REST endpoints are mounted under /api/v1. A full request path is that prefix plus the endpoint's path — for example:

GET /api/v1/registries/{ownerHandle}/{slug}

Reads use GET; mutations use POST / PUT / PATCH / DELETE. Query parameters bind to an endpoint's non-path inputs.

No hosted API yet

SkillHub is pre-release: there is no public, hosted API endpoint. The reference renders every endpoint completely offline, and the "Try it" playground is pre-configured to target a local development server at http://127.0.0.1:3000. Start one by running the web app (pnpm --filter @skillhub/web dev) against a local database and storage — it hosts the API at /api/v1. When a hosted API lands, that server URL will be updated.

Read on

On this page