Themes

Control slide branding. 8 built-in themes or create custom themes with your brand colors, fonts, and logo. Pass theme_id to any endpoint.

GET /v1/themes

List all available themes (built-in + your saved custom themes).

curl
curl https://api.slideforge.dev/v1/themes \
  -H "Authorization: Bearer sf_live_YOUR_KEY"
Response
{
  "themes": [
    { "id": "consulting_blue", "name": "Consulting Blue", "primary": "#1E3A5F", "accent": "#E87722" },
    { "id": "consulting_dark", "name": "Consulting Dark", "primary": "#111827", "accent": "#F59E0B" },
    { "id": "consulting_light", "name": "Consulting Light", "primary": "#1E40AF", "accent": "#DC2626" },
    ...
  ]
}

POST /v1/themes

Save a custom theme. Only colors is required — everything else has sensible defaults.

curl
curl -X POST https://api.slideforge.dev/v1/themes \
  -H "Authorization: Bearer sf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "colors": {
      "primary": "#003366",
      "secondary": "#336699",
      "accent": "#FF6600",
      "neutral": "#666666"
    },
    "typography": {
      "font_family": "Calibri"
    }
  }'
Response
{
  "theme_id": "t_abc123",
  "name": "Acme Corp",
  "source": "custom"
}

Using a theme

Pass theme_id to any slide endpoint (render, generate, iterate, deck).

curl
# Use your custom theme with any endpoint
curl -X POST https://api.slideforge.dev/v1/render \
  -H "Authorization: Bearer sf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "kpi_dashboard",
    "brief": "Revenue $8.5M, Clients 234",
    "theme_id": "t_abc123"
  }'

POST /v1/themes/upload

Upload an existing .pptx file to extract brand colors, fonts, and dimensions automatically.

curl
# Extract theme from existing .pptx
curl -X POST https://api.slideforge.dev/v1/themes/upload \
  -H "Authorization: Bearer sf_live_YOUR_KEY" \
  -F "file=@company_template.pptx"

Theme JSON schema

Get the full schema with field descriptions:

curl
curl https://api.slideforge.dev/v1/themes/template \
  -H "Authorization: Bearer sf_live_YOUR_KEY"

Returns the complete theme structure with all configurable fields: colors (primary, secondary, accent, neutral), typography (font family, sizes), spacing (margins, gaps, content zones), and design rules (whitespace, max hues).

Adding a logo

Upload a logo (PNG/JPG/SVG, max 5MB) and reference it in your theme's chrome:

curl
# Upload logo
curl -X POST https://api.slideforge.dev/v1/assets/logo \
  -H "Authorization: Bearer sf_live_YOUR_KEY" \
  -F "file=@logo.png"

# Use in chrome
{ "chrome": { "logo": "logo_id_from_upload" } }