ConcurredConcurred API

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:

QueryReturns
(no params)A random theme.
?platform=desktop-webA random theme filtered to the chosen platform.
?id=editorial-serifA specific theme by slug.

Valid platform values:

  • desktop-web
  • mobile-app
  • game
curl "https://concurred.ai/api/v1/themes?platform=desktop-web" \
  -H "Authorization: Bearer $CONCURRED_API_KEY"

Response

{
  "success": true,
  "data": {
    "id": "editorial-serif",
    "name": "Editorial Serif",
    "platform": "desktop-web",
    "weight": 7,
    "content": "<design-system>\n# Design Style: Editorial Serif\n\n## 1. Design Philosophy\nInspired by premium long-form print magazines…\n</design-system>",
    "source": {
      "provider": "October",
      "url": "https://www.october.dev/themes",
      "theme_url": "https://www.october.dev/themes/editorial-serif"
    }
  }
}
FieldDescription
idSlug you can pass back in ?id= to fetch the same theme again.
nameDisplay name.
platform"desktop-web", "mobile-app", or "game".
weightInternal weighting October uses for random selection. Higher = more likely.
contentThe theme itself — wrapped in <design-system>…</design-system>, ready to drop straight into a system prompt.
sourceWhere 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:

import OpenAI from 'openai';
 
const concurred = new OpenAI({
  apiKey: process.env.CONCURRED_API_KEY,
  baseURL: 'https://concurred.ai/api/v1',
});
 
// 1) Pull a theme
const themeRes = await fetch('https://concurred.ai/api/v1/themes?platform=desktop-web', {
  headers: { Authorization: `Bearer ${process.env.CONCURRED_API_KEY}` },
});
const { data: theme } = await themeRes.json();
 
// 2) Inject it as a system prompt when asking the model to build UI
const completion = await concurred.chat.completions.create({
  model: 'claude',
  messages: [
    { role: 'system', content: `Follow this design system exactly:\n${theme.content}` },
    { role: 'user', content: 'Build a landing page for a meditation app.' },
  ],
});

Errors

StatusCodeMeaning
400BAD_REQUESTplatform was set to something other than desktop-web / mobile-app / game.
401UNAUTHORIZED / INVALID_API_KEYMissing or bad API key.
404NOT_FOUNDid=… didn't match any theme.
429RATE_LIMIT_EXCEEDEDEither Concurred's or October's rate limit hit. Retry after a few seconds.
503SERVICE_UNAVAILABLEOctober'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.

On this page