Registry API
Public index and item payloads; Pro items behind a Bearer key. Base URL: https://api.lumioui.com.
On this page
Endpoints
| route | auth | returns |
|---|---|---|
| GET /health | — | { ok: true } |
| GET /index.json | — | { items: [...] } — metadata only, no file contents |
| GET /r/button.json | — | free item, includes files[].content |
| GET /r/pro/<name>.json | Bearer KEY | Pro item |
| GET /schema.json | — | lumioui.json JSON schema |
Pro auth: 401 missing/invalid, 402 expired/canceled, 404 unknown name. Names are validated ([a-z0-9-]) against path traversal.
Build payloads with pnpm build:registry — source of truth is packages/ui|pro|screens plus sibling meta.json.
Self-hosted
Point the registry field in lumioui.json at any static host that serves /index.json + /r/<name>.json:
{ "registry": "https://registry.example.com" }
The same tree the CLI fetches is generated into apps/registry-server/registry/ — serve it as static assets (the included Cloudflare Worker adds the Pro Bearer gate), or run the dev server locally.
// ask an llm