Create custom PowerPoint decks from structured JSON—no template required.
generate_powerpoint
takes a simple JSON payload describing slides and their elements and turns it into a downloadable .pptx
file—fully in the cloud, no template needed. Use it for pitch decks, reports, dashboards, or any slide-based content.
TITLE_SLIDE
, TITLE_AND_CONTENT
, SECTION_HEADER
, CUSTOM_LAYOUT
)placeholder_type
(BODY, SUBTITLE, PICTURE, CHART, TABLE)Parameter | Type | Required | Description |
---|---|---|---|
slides | array<Slide> | Yes | Ordered list of slides to create |
Field | Type | Required | Description |
---|---|---|---|
slide_number | integer | Yes | 1-based position in the deck |
layout | string | Yes | One of TITLE_SLIDE , TITLE_AND_CONTENT , SECTION_HEADER , CUSTOM_LAYOUT |
title | string | Yes | Slide title text |
description | string | No | Internal note for agents (not rendered) |
elements | array<Element> | No | Content blocks to render (order matters) |
Field | Type | Required | Description |
---|---|---|---|
type | string | Yes | text , bullet_list , table , chart , image |
placeholder_type | string | No | Target placeholder (BODY , SUBTITLE , PICTURE , CHART , TABLE ). Defaults to BODY/fallback |
Text → text | string | req for type text | Plain text content |
Bullets → items | array<> | req for bullet_list | Bullet items, level 0-4 |
Table → headers | string[] | req for table | Header row |
Table → rows | string[][] | req for table | Table body rows |
Chart → chart_type | string | req for chart | COLUMN_CLUSTERED , LINE , PIE , BAR_CLUSTERED |
Chart → chart_title | string | No | Title above the chart |
Chart → categories | string[] | req | Category labels |
Chart → series | array of series objects | req | Each series: { name, values:number[] } |
Image → src | string | req for image | Path or URL to an image |
slide_number
in ascending order—missing numbers will be filled sequentially, but duplicates are overwritten by the last occurrence.src
publicly accessible or an R2 path the backend can reach.chart
elements ensure all series arrays match the length of categories
.placeholder_type
unless you need precise control—the backend falls back intelligently.Issue | Likely cause / fix |
---|---|
”Unknown layout” | layout not in the allowed set. Use one of the four built-ins. |
”No slides data provided” | slides array missing or empty. |
Error generating chart | Series lengths mismatch or invalid numbers. |
Image skipped with warning | Provided layout doesn’t have a PICTURE placeholder—switch layout or use BODY/OBJECT. |