HTTP API
Base URL: https://chroma.adammcbride.co.uk/api. The machine-readable description is at /api/openapi.json (OpenAPI 3.1).
Authentication
Create a personal API key on your account page and send it as Authorization: Bearer cj_…. Keys carry scopes (schemes:read, schemes:generate, schemes:write) and only ever see the owner’s schemes.
Endpoints
| Method | Path | Scope | Purpose |
|---|---|---|---|
| POST | /api/schemes/generate | schemes:generate | Generate a paired light/dark scheme from {"concept": "…"}. Optional variation and locks. Uses the semantic cache before Jev. |
| GET | /api/schemes | schemes:read | List your saved schemes (limit, offset). |
| POST | /api/schemes | schemes:write | Save a generated scheme: {"name": "Dynumo", "generationId": "…"}. |
| GET | /api/schemes/{idOrSlug} | schemes:read | Retrieve a saved scheme. |
| PATCH | /api/schemes/{idOrSlug} | schemes:write | Rename or change notes. |
| POST | /api/schemes/{idOrSlug}/duplicate | schemes:write | Duplicate. |
| DELETE | /api/schemes/{idOrSlug} | schemes:write | Delete. |
| GET | /api/schemes/{idOrSlug}/export?format=css|json|tailwind|tailwind-v3 | schemes:read | Export. |
Example
curl -X POST https://chroma.adammcbride.co.uk/api/schemes/generate \
-H "Authorization: Bearer $CHROMAJEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{"concept": "autumn forest"}'