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 https://api.slideforge.dev/v1/themes \ -H "Authorization: Bearer sf_live_YOUR_KEY"
{
"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 -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"
}
}'{
"theme_id": "t_abc123",
"name": "Acme Corp",
"source": "custom"
}Using a theme
Pass theme_id to any slide endpoint (render, generate, iterate, deck).
# 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.
# 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 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:
# 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" } }