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.