Every slide SlideForge generates uses a theme — colors, fonts, and spacing that make the output look like your brand, not a generic template.9 built-in themes work out of the box. Custom themes let you match your company's exact brand identity. Three ways to create one: JSON, upload a .pptx, or let an agent extract it.
Built-in themes
Every request defaults to slideforge_standard if no theme is specified. 9 built-in themes cover common styles:
| Theme ID | Primary | Style |
|---|---|---|
| slideforge_standard | #12355B | General business — the agent default |
| consulting_graphite | #2F343B | Board / consulting, dense strategy |
| dark_keynote | #0F172A | Investor / founder keynote, dark stage |
| product_bold | #7C3AED | Product / marketing launch |
| technical_lab | #1E293B | Architecture / engineering |
| education_warm | #7C2D12 | Education / training / enablement |
| healthcare_calm | #0F4C5C | Healthcare / care operations |
| scientific_paper | #1F2937 | Research / clinical evidence |
| sales_warm | #1E3A5F | Sales / customer success |
Use any built-in theme by passing theme_id in your request:
curl -X POST https://api.slideforge.dev/v1/render/auto \
-H "Authorization: Bearer sf_live_YOUR_KEY" \
-d '{"brief": "Revenue $12.4M", "theme_id": "dark_keynote"}'Method 1: Create from JSON
Define your brand colors programmatically. Colors are required; typography and spacing have 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_brand",
"colors": {
"primary": "#2B5EA7",
"secondary": "#1A3C6E",
"accent": "#E87722",
"background": "#FFFFFF",
"text": "#1A1A2E",
"light_text": "#FFFFFF"
},
"typography": {
"font_family": "Calibri"
}
}'
# Returns: {"theme_id": "acme_brand", ...}The theme is saved to your account and persists across sessions. Use it with theme_id: "acme_brand" in any render or deck request.
Color fields
primary— main brand color (headers, key shapes)secondary— supporting color (sub-headers, secondary shapes)accent— highlight color (callouts, emphasis, trends)background— slide backgroundtext— body text colorlight_text— text on dark backgrounds
The engine auto-generates a tint ramp from your primary color (90%, 70%, 50%, 30% opacity) for gradients and subtle fills. WCAG contrast is computed automatically for text readability.
Method 2: Upload your .pptx template — and render natively on it
Already have a branded PowerPoint template? Upload it and slides render natively on your own file: the output deck is built on your template's slide master, layouts, fonts, and theme — not a reconstruction of them. Open the result in PowerPoint and it is your corporate template, with SlideForge's exhibits placed on it. Every response reports brand_fidelity_level: "native" so an agent can verify the guarantee.
curl -X POST https://api.slideforge.dev/v1/themes/upload \
-H "Authorization: Bearer sf_live_YOUR_KEY" \
-F "file=@brand-template.pptx" \
-F "name=acme_from_pptx"
# Returns: {"theme_id": "acme_from_pptx", "colors": {...}, "typography": {...}}The extractor also reads the slide master's color scheme, font theme, and dimensions (and stores a header/footer logo as an asset automatically), so the same upload powers the standard theme pipeline too.
Fill your template's own cover, agenda, and divider slides
An uploaded template exposes its own designed slides — cover, agenda, section dividers, closing — as fillable layouts. List them with GET /v1/themes/{id}/layouts (each comes with a fill schema and a preview image), then fill one literally:
curl -X POST https://api.slideforge.dev/v1/render/intent \
-H "Authorization: Bearer sf_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"form": "template_layout",
"theme_id": "acme_from_pptx",
"data": {
"layout": "cover",
"fills": {"title": "FY26 Strategy Review", "subtitle": "Executive Board — July 2026"}
}
}'Deterministic and LLM-free: your text lands in the template's designed placeholders, verbatim. The deck's spine — cover, agenda, dividers, closing — stays authentically yours, and SlideForge's charts and exhibits fill the middle.
Method 3: Via MCP (agent-assisted)
In Claude Desktop, use the upload_asset tool with purpose: "theme":
// Agent conversation:
You: "Use our company template for these slides"
AI: *calls upload_asset with purpose="theme"* (large file? omit data —
a drag-and-drop zone appears right in the chat)
AI: "Template uploaded — saved as theme_id 'acme_brand'. Slides on this
theme render natively on your file (brand_fidelity_level: native).
Want me to generate the deck with it?"Adding a logo
Upload your company logo separately — it gets placed in the slide chrome (header area) automatically.
curl -X POST https://api.slideforge.dev/v1/assets/logo \
-H "Authorization: Bearer sf_live_YOUR_KEY" \
-F "file=@logo.png"
# Returns: {"logo_id": "a1b2c3d4", "blob_url": "..."}PNG, JPG, SVG, GIF, or WebP — max 5 MB. The logo persists across sessions. Use it with your theme for fully branded slides.
Listing your themes
curl https://api.slideforge.dev/v1/themes \
-H "Authorization: Bearer sf_live_YOUR_KEY"
# Returns: built-in themes + your custom themes with color swatchesVia MCP: browse_catalog with type=themes returns all available themes.
Theme schema reference
Get the full JSON schema with field descriptions:
curl https://api.slideforge.dev/v1/themes/template \
-H "Authorization: Bearer sf_live_YOUR_KEY"This returns the complete schema with defaults — useful for programmatically building themes or validating input.
Tips
- Start with a built-in theme and customize from there — change just the colors to match your brand.
- Primary color matters most — it drives headers, key shapes, and the tint ramp. Secondary and accent are supporting.
- Test with a KPI dashboard — it uses all color slots, so you can see the full palette in one slide.
- Font availability — the API container has Calibri, Arial, Helvetica, and common fonts. If your brand font isn't available, the engine falls back gracefully.
Related guides
- How to write effective briefs — get better slides from every template and theme
- Add PowerPoint export to your SaaS — per-customer themes for white-label output
- Automate reports from Excel — combine themes with scheduled report generation
- SlideForge vs python-pptx — why an API beats managing theme code yourself
Get started
Browse themes in the console, or read the full API reference. Sign up — 60 free slides — to try custom themes.