Skip to main content
Every template_slide_id comes from template analysis. If you upload a fresh copy of the template, replace the demo slide_* values with the slideId values returned for your upload.

Visual Overview

Generation starts with a PowerPoint template and a deck request JSON. The template supplies the reusable slide layouts; the JSON supplies the content and rendering options.
Thumbnail grid of six PowerPoint template slides: table, table plus text, logo table, chart plus table, single chart, and agenda layouts.

Template input: six reusable slide layouts

Thumbnail grid of six generated slides: agenda, customer health table with commentary, renewal outlook table, advisory board logo table, AI Copilot chart and table, and NPS chart.

Generated output: the same six slides after JSON content is applied

The output deck renders one logical slide per request slide:

Full Deck Walkthrough

1. Set Request Variables

2. Upload the Template

Upload your PowerPoint template once. The API returns a template_id plus a signed upload URL.

3. Analyze the Template

Analysis reads the PowerPoint file and assigns a slideId to each template slide. Those IDs are what the generation request uses as template_slide_id.
Poll the analysis endpoint until it returns a completed result:
Print the analyzed slide IDs:
Example output:
Each slideId is a stable identifier you pass as template_slide_id in generation requests. The actual values are short hex strings — for readability, the rest of this guide uses semantic names (slide_agenda, slide_table_only, etc.) in place of those IDs. The generated output uses this layout mapping: When you upload the template yourself, swap the semantic placeholders in the request below for whatever slideId values your analysis returns.

4. Review the Deck Request

The deck request JSON is shaped for generate-deck. The outer object has slides and deck-level options.
The full file contains the actual rows, quotes, conditional formatting, and chart values. Key patterns:

5. Generate the Deck

Submit the JSON file to the async deck-generation endpoint:
The response returns a generation_id and status_url.

6. Poll for Completion

Repeat the status request until status is completed or partial. The completed result includes total_pages_generated, per-slide results, and a download_url.

7. Download the Output

The downloaded file should match the expected deck shape: six populated slides, template styling inherited from the uploaded template, slide numbers enabled, and the deck-level footer applied across the output.

Equivalent Helper Flow

An SDK helper or demo script should perform the same operations:
  1. Upload the template.
  2. Analyze the uploaded template and read the six slideId values.
  3. Load the deck request JSON.
  4. Ensure each slide points at the template slide with the matching layout.
  5. Call generate-deck, poll status, and download the finished .pptx.
Use the raw API steps above when you want to integrate generation into your own app. Use a helper script when you want a repeatable local smoke test.

Payload Snippets

Use these smaller examples when you only need one slide pattern.