Themes API
1000+ curated design-system themes as ready-to-inject LLM context
Fetch one of 1000+ curated design-system themes as a block of markdown you can paste straight into an LLM prompt. Each theme ships with colours, typography, component styles (Tailwind classes), animation rules, and a short design philosophy — enough for a model to generate polished UI instead of generic Bootstrap-alike output.
GET /api/v1/themes
Powered by October
Themes come from October.dev — a free public catalogue of design systems for AI-generated UI. Concurred proxies their API so you can use your existing ck_* key and bill against one invoice. Every response includes an attribution link back to October.
Request
Three ways to call it:
| Query | Returns |
|---|---|
| (no params) | A random theme. |
?platform=desktop-web | A random theme filtered to the chosen platform. |
?id=editorial-serif | A specific theme by slug. |
Valid platform values:
desktop-webmobile-appgame
Response
| Field | Description |
|---|---|
id | Slug you can pass back in ?id= to fetch the same theme again. |
name | Display name. |
platform | "desktop-web", "mobile-app", or "game". |
weight | Internal weighting October uses for random selection. Higher = more likely. |
content | The theme itself — wrapped in <design-system>…</design-system>, ready to drop straight into a system prompt. |
source | Where this came from and the human-readable URL on October's site. |
Using a theme in a prompt
The content field is designed to be concatenated into a system prompt verbatim:
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | BAD_REQUEST | platform was set to something other than desktop-web / mobile-app / game. |
| 401 | UNAUTHORIZED / INVALID_API_KEY | Missing or bad API key. |
| 404 | NOT_FOUND | id=… didn't match any theme. |
| 429 | RATE_LIMIT_EXCEEDED | Either Concurred's or October's rate limit hit. Retry after a few seconds. |
| 503 | SERVICE_UNAVAILABLE | October's API returned a non-2xx. Retry with backoff. |
Attribution
Per October's positioning — don't front, don't hide — every generated UI that uses a theme should keep the attribution visible somewhere reasonable (a README, a footer link, an "about" page). The source.theme_url field on each response gives you the direct link back.