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
Open Source
- Cloud
- Open Source
Before you begin
Create a Cloud API key and send it as a bearer token with every request: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.
Direct generation turns one prompt into an editable presentation and exported PPTX.
2. Generate from uploaded files
Use this workflow when the presentation must be grounded in reports, spreadsheets, PDFs, or other supported source files.
Upload the sources once, then pass their returned file values into generation.
Upload the files
Generate from those values
Pass the array back infiles. Use content to tell Presenton what the deck
should accomplish with the source material.3. Generate in Standard or Smart mode
Choose one design mode for each request. Sendstandard_template for Standard
mode or smart_design for Smart mode. Do not send both fields together.
Standard and Smart are alternative design paths for the same generation request.
Standard mode
Standard mode uses a template with reusable, schema-backed layouts.id from the response and generate:Smart mode
Smart mode uses a Smart Design that composes each slide around its content.id from the response and generate: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.
Template Studio converts a branded PPTX into a reusable template for API generation.
- Import the filled PPTX in Template Studio, resolve missing fonts, review the detected layouts, and save the template. Follow Create a template from PPTX.
- List the account’s Standard templates and find the saved template ID.
- Send that ID as
standard_templatein 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.
The live template schema is the contract between your slide data and the renderer.
- Call List Standard templates and choose a template ID.
- Call Get a Standard template
and read the
idandjson_schemafor each layout. - Build each slide with a
layoutfrom that template and acontentobject that satisfies the selected layout schema. - Send the validated slides to Create from JSON synchronously.
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.
Your agent writes slide JSON; your application validates it before Presenton renders the deck.
Give the agent the template contract
- Call List Standard templates so the user can choose a template.
- Call Get a Standard template
to retrieve every layout ID and its
json_schema. - Call Get a template example
to retrieve representative
layoutandcontentpairs. - Give the schemas, examples, user content, and presentation goal to your AI agent.
- Validate the agent response against the live schemas in your application.
- Send the validated result to Create from JSON synchronously.
Agent instruction
Use an instruction like this with the AI provider in your application: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.
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.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.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



