Skip to main content
Use POST /presentation/from-json when your application already owns the slide data and needs predictable placement in a standard template. Unlike AI-planned generation, every slide selects a layout and supplies a structured content object that matches that layout’s JSON schema.

When to use structured JSON

This workflow fits recurring reports, dashboards, account reviews, and other presentations whose data structure is known in advance. Use prompt-based presentation generation when Presenton should plan the narrative for you.

1. List templates

Choose a template id and store it as standard_template.

2. Inspect its layouts

The response contains a slides array. Each layout includes:
  • id: the value to send as the slide’s layout
  • name and description: optional human-readable context
  • json_schema: the required content fields, types, and constraints
Example layout shape:
The example above illustrates the response structure. Always use the live json_schema returned for your chosen layout; field names and constraints vary by template.
You can also request GET /standard-template/{id}/example to see example slide content for the template.

3. Validate slide content

Before calling Presenton, validate every slide content object against its layout schema. Check:
  • Required properties are present.
  • Values use the expected JSON types.
  • Strings and arrays remain within any declared limits.
  • No unsupported properties are added when the schema disallows them.
  • The layout belongs to the selected standard template.
Client-side schema validation produces faster, clearer feedback than waiting for an API validation error.

4. Create the presentation

Replace the layout identifier and content object with values from the live template schema. A successful response contains presentation_id, path, edit_path, and credits_consumed.

Create asynchronously

Send the same request body to POST /presentation/from-json/async when the job should run in the background. Poll GET /async-task/status/{id} or enable webhook delivery, just as you would for prompt-based generation.

Keep recurring decks stable

  • Pin the template identifier in each report configuration.
  • Cache layout schemas only for a controlled period and refresh them when a template changes.
  • Store the layout identifier beside your data-to-layout mapping.
  • Validate generated files in a staging workflow after changing templates or themes.
  • Treat missing layouts or new schema constraints as configuration errors, not retryable network failures.
  • Use speaker notes for presenter context that should not appear on the slide.

Templates and themes

Discover resource identifiers and understand how layouts and themes differ.

Generate asynchronously

Run structured presentation creation as a background task.