Skip to main content

Presentation Generation

Generation turns an analyzed template slide into a real .pptx. The template provides the visual system. Your request provides the content, the layout payload, and any overrides you want to apply.
Run template analysis first. Generation uses each slide’s analyzed slideId as template_slide_id.

1. Supported Layouts

Layouts describe how content is arranged on the slide. Your template should contain a slide that structurally matches one of these patterns. Do not use a two-column content array for arbitrary layouts. The current renderer routes two-column content for table + chart and table + table layouts; chart + chart and text + text are not treated as distinct left/right content regions. The sections below describe the content blocks used inside those layouts.

2. Content Blocks

Content blocks are the JSON objects placed inside slide_data.content.blocks. Use them to fill the matching regions in a template slide. For a single-column layout, content is one column object:
In a text block, bullets is an array of strings. Each string renders as one bullet paragraph in the matching text region. For a two-column layout, content is an array of column objects. The optional column header is only used by two-column templates that include header textboxes marked LHS_header and RHS_header, where LHS means left-hand side and RHS means right-hand side.

Table Blocks

Author table rows, dynamic columns, logos, reusable styles, conditional formatting, and pagination.

Chart Blocks

Author bar and column charts with series, axes, legends, labels, and data rows.

Text Blocks

Author slide text, text sections, bullets, and formatting overrides.

3. Template Inheritance

By default, generation inherits from the template. If you omit formatting fields, the renderer uses the fonts, sizes, colors, table styling, chart presets, placeholder positions, and master layouts already encoded in the .pptx. Use overrides only where the generated content needs to differ from the template. The common pattern is: let the template carry the brand, then override only data-driven styling such as status colors, risk flags, chart series colors, or one-off title sizing.

4. Generate Slides

There are two generation modes: Both modes use the same slide object shape:
For layout guidance, option fields, defaults, and deck inheritance rules, see Layout & Rendering Controls.

What you can specify in slide_data

Formatting objects commonly accept:

Generate One Slide

Use generate for one logical slide. The endpoint returns immediately with a generation_id; poll status until the generated file is ready.
Example response:
The final status response includes total_pages_generated, slide_results, file size, and a signed download_url. total_pages_generated can be greater than 1 when a table-only slide paginates.

Generate a Deck

Use generate-deck for multi-slide output. The endpoint returns immediately with a generation_id; poll status until the deck is ready. Slides render in the same order as the slides array. Each slide can use a different template_slide_id, including slides from different analyzed templates in the same organization.
Example response:

Poll Status

Poll every 2 to 5 seconds until status is terminal. Completed example:
Always inspect slide_results for async deck jobs. A partial result can still include a downloadable .pptx.

Download

Use the signed download_url when available. To download through the API instead:
presentation_id can be either:
  • gen_xxx from slide generation
  • gen_xxx from deck generation
  • pres_xxx from older direct-return generation output, if present
For generation jobs, download is available after status is completed or partial.

Page Counts and Indexes

Pagination can make output slide counts differ from request slide counts:
  • total_slides_requested is the number of logical slides in the request.
  • total_pages_generated is the number of actual PowerPoint slides in the output file.
  • slide_results[].pages_generated tells you which logical slides expanded.
  • Chart update slide_index values refer to the output presentation, so paginated table-only slides can shift later indexes.

Table Blocks

Rows, cells, logos, reusable styles, conditional formatting, and pagination.

Chart Blocks

Chart types, categories, series, legends, axes, labels, and data rows.

Text Blocks

Slide text, text sections, bullets, and formatting overrides.

Slide Input

Full JSON shapes for text, tables, charts, agendas, and formatting.

Layout & Rendering Controls

Layout compatibility, aspect ratio, pagination, fitting, footers, and slide numbers.

Examples

Complete payloads for common slide and deck patterns.