POST /slides/generate produces professional .pptx output from a natural-language prompt. The agent designs a cohesive visual system — one palette, a consistent type scale, and visual pacing across hero, content, and section-break slides — and populates each slide with the right layout for its content. Use it to automate investor decks, sales presentations, quarterly reviews, and training materials.
The agent thinks like a senior UI/UX designer: it picks layout types per slide, applies contrast rules, and avoids back-to-back slides with the same layout family.
Request parameters
Natural-language description of the deck you want. Up to 10,000 characters. Describe the purpose, audience, tone, and slide count. Explicit hints like “dark-navy theme” or “Series B pitch deck” are respected.
Resume an existing run. Pass the
run_id from a previous response to add, replace, or restyle slides in the existing deck. Use this to build decks larger than 30 slides in chunks.file_id of an existing .pptx to edit in-place. Upload the file first with POST /files (purpose: "init").Images to embed in the deck. Each entry is an object with
image_id and tags. Upload images first with POST /images. If your prompt references images but none are attached, the preflight validator rejects the request with 400 preflight_failed: missing=["images"].Brand configuration object to enforce your visual identity. Accepts
primary_color (hex string), font (font family name), and logo_url. The agent threads these through headers, accents, dividers, and the closing CTA.Set to
true to run the job asynchronously. The response returns a task_id immediately. Use webhook_url to receive the result, or poll GET /tasks/{task_id}.Override the default output filename.
Supply a unique key to safely retry requests without producing duplicate runs.
Quickstart
Generate a deck
Send a prompt describing the presentation. The response includes a
download_url for the finished .pptx.Response shape
A successful synchronous response looks like this:| Field | Description |
|---|---|
run_id | Use this to resume the run, add slides, or export to another format. |
download_url | Signed URL for the .pptx file. Valid for 1 hour. |
summary | Agent’s description of the deck it built. |
credits_used | Credits deducted for this call. |
Presentation modes
The agent picks the right mode from the prompt, but you can nudge it explicitly:| Mode | Signal words | Typical output |
|---|---|---|
| Visual-first / minimal | ”pitch deck”, “narrative”, “storytelling”, “clean” | Big hero images, few bullets, emphasis on hierarchy |
| Balanced | ”investor update”, “business review” | Mix of visual and data; moderate text density |
| Information-dense | ”technical deep-dive”, “detailed analysis”, “academic” | Tighter layouts, more tables and charts, appendix-friendly |
Common use cases
Pitch decks with brand customization
Pass abrand object to enforce your visual identity across every slide.
Decks with product screenshots
Upload your images first, tag them, then reference them in the prompt. The agent places images in the layout that fits best.Editing an existing deck
Upload your draft.pptx and target specific slides to replace.
Outline-first workflow
UsePOST /slides/outline to generate just the slide titles and bullets before committing to a full deck build. This is useful for preview and approval workflows.
Building decks larger than 30 slides
Exporting to other formats
Convert a completed run to PDF, PNG, or ODP usingPOST /runs/{run_id}/export.
pdf, png, odp.
Slide types
The agent builds three canonical slide types. Visual pacing rules prevent more than two consecutive slides with the same layout family.Hero
Dark or accent background, bold headline. Opening and closing slides default to this type.
Content
White or light background, 3-5 bullets max, consistent type scale.
Section break
Gradient tint, large section title. Transitions between major chapters.
Things to be aware of
- Image search is not available. The API does not generate or search for images. Upload what you want to use via
POST /images. - Max 30 slides per call. Use
run_idto build larger decks in chunks. - Speaker notes are supported. Ask for them explicitly in your prompt: “add speaker notes under each slide for the presenter.” They travel with the
.pptxand appear in PowerPoint, Keynote, and Google Slides presenter view. - Layout selection is agent-driven. Describe the layout you want in your prompt (“use a three-column comparison on slide 4”, “make slide 7 a big-number KPI card”) and the agent matches to the closest supported pattern.
Tips for better results
- Request speaker notes upfront if you need them — it’s harder to add them in a follow-up turn.
- Specify chart types explicitly if a particular visualization matters: “use a line chart for MRR growth, not a bar chart”.
- For decks with brand guidelines, always pass the
brandobject rather than describing colors in the prompt. - Use the outline endpoint first for large or high-stakes decks, so you can approve the structure before the agent builds everything.
Related
- Runs and tasks —
run_idlifecycle, task polling, and status values - Async vs sync — when to use
async: trueand how to handle results - Preflight — validate your request before committing credits
- Credits — how generation costs are calculated

