Skip to main content

PRESENTON API GUIDE

From one prompt to a polished presentation.

Start simple, then add files, design systems, structured slide data, agents, and background jobs using the deployment that fits your stack.

Cloud

Managed API · v3

Open Source

Self-hosted API · v1

These workflows use the Presenton Cloud API v3. Keep uploaded file values, template IDs, task IDs, and presentation IDs in the same Cloud account that created them.

Before you begin

Create a Cloud API key and send it as a bearer token with every request:
The response from a completed generation request contains:
Use path for the generated file and edit_path when a person should review or refine the deck in Presenton.

1. Generate a presentation directly

Use direct generation when the prompt contains all the context Presenton needs. The synchronous endpoint keeps the connection open until generation finishes.
Four labeled steps showing a prompt sent to the Presenton API, generated, and returned as an editable presentation

Direct generation turns one prompt into an editable presentation and exported PPTX.

Send only the presentation content. Presenton uses the endpoint defaults for the slide count, language, design, title slide, and PPTX export.
Read the exact request and response schemas in Generate a presentation synchronously.

2. Generate from uploaded files

Use this workflow when the presentation must be grounded in reports, spreadsheets, PDFs, or other supported source files.
Five labeled steps showing source files uploaded, saved as file values, and used to generate a grounded presentation

Upload the sources once, then pass their returned file values into generation.

Upload the files

The upload response is an array of file values:

Generate from those values

Pass the array back in files. Use content to tell Presenton what the deck should accomplish with the source material.
See Upload source files and Generate a presentation synchronously.

3. Generate in Standard or Smart mode

Choose one design mode for each request. Send standard_template for Standard mode or smart_design for Smart mode. Do not send both fields together.
A labeled decision diagram comparing Standard mode reusable layouts with Smart mode adaptive composition

Standard and Smart are alternative design paths for the same generation request.

Standard mode

Standard mode uses a template with reusable, schema-backed layouts.
Choose an id from the response and generate:

Smart mode

Smart mode uses a Smart Design that composes each slide around its content.
Choose an id from the response and generate:
See List Standard templates and List Smart Designs.

4. Import a PPTX template and generate

Importing a PPTX template happens in Presenton Template Studio. Cloud v3 does not expose a public PPTX-template import endpoint. After the template is saved, the generation workflow uses the public API.
Five labeled steps showing a filled PPTX imported in Template Studio, saved as a template, and used through the API

Template Studio converts a branded PPTX into a reusable template for API generation.

  1. Import the filled PPTX in Template Studio, resolve missing fonts, review the detected layouts, and save the template. Follow Create a template from PPTX.
  2. List the account’s Standard templates and find the saved template ID.
  3. Send that ID as standard_template in the synchronous generation request.

5. Create from structured JSON

Use structured JSON when your application already owns the narrative and slide data. Presenton applies the chosen layouts and renders the presentation without planning the story from a prompt.
Six labeled steps showing template selection, schema inspection, slide JSON construction, validation, and rendering

The live template schema is the contract between your slide data and the renderer.

  1. Call List Standard templates and choose a template ID.
  2. Call Get a Standard template and read the id and json_schema for each layout.
  3. Build each slide with a layout from that template and a content object that satisfies the selected layout schema.
  4. Send the validated slides to Create from JSON synchronously.
The property names inside content are examples. Always use the live json_schema returned for the selected layout.

6. Generate with your own AI agent

This workflow gives your agent control over slide selection and content while Presenton remains responsible for template rendering and export.
Six labeled steps showing template contracts and source content sent to an AI agent, validated, and rendered by Presenton

Your agent writes slide JSON; your application validates it before Presenton renders the deck.

Give the agent the template contract

  1. Call List Standard templates so the user can choose a template.
  2. Call Get a Standard template to retrieve every layout ID and its json_schema.
  3. Call Get a template example to retrieve representative layout and content pairs.
  4. Give the schemas, examples, user content, and presentation goal to your AI agent.
  5. Validate the agent response against the live schemas in your application.
  6. Send the validated result to Create from JSON synchronously.

Agent instruction

Use an instruction like this with the AI provider in your application:
Treat agent output as untrusted input. Reject unknown layouts, validate each content object, enforce slide and string limits, and only then call POST /presentation/from-json.

7. Run background jobs with async APIs and webhooks

Use background processing when generation should not hold an interactive HTTP request open. Presenton returns a task ID immediately and completes the work in the background.
A labeled async workflow showing task creation followed by polling or webhook delivery and a completed presentation

Start one background job, then resolve it through polling or webhook delivery.

Poll for completion

Use polling when your application does not expose a public callback URL.
Store the returned id, then poll with a capped delay until status becomes completed or error:

Receive completion through a webhook

Use webhook delivery when your application has a stable HTTPS receiver. Subscribe each event your receiver needs, then enable delivery on the async generation request.
Subscribe presentation.generation.failed to receive failed jobs as well. Verify the webhook secret, acknowledge delivery quickly, and process repeated events idempotently.See Generate a presentation asynchronously, Get task status, and Subscribe a webhook.

Start at Flow 1 and stop when the workflow matches your product.

Prompt → sources → design → structure → agents → background jobs