For the complete documentation index, see llms.txt. This page is also available as Markdown.

Presentations

Submit generation jobs and poll for results.

Create a presentation from a topic

post

You have a topic or idea — the AI writes the content. Queues a generation job and returns 202 Accepted with the job descriptor.

Authorizations
AuthorizationstringRequired

Recommended. Pass your API key (starts with ppsk_) as Authorization: Bearer ppsk_…. One active key per Pro/Team account — to rotate, revoke the old one first.

Body
topicstring · max: 450Required

Subject of the presentation.

numSlidesone ofOptional

Slide count: -1 for auto, or 150. 0 is invalid.

Default: -1
const: -1Optional

Automatic slide count.

or
any · min: 1 · max: 50Optional
languagestringOptional

Output language. Defaults to auto-detect.

templatestring · enumOptional

Design theme id (case-sensitive, no spaces). Custom user-uploaded templates are not supported via the public API.

Default: TokyoPossible values:
formatstring · enumOptional

Output file format.

Default: pptxPossible values:
imageSourcestring · enumOptional

Where slide images come from. unsplash/pexels/scrapingdog are stock; ai/flux are AI-generated.

Default: unsplashPossible values:
imageStylestring · enumOptional

Image style. Applies only when imageSource is ai or flux.

Possible values:
contentstring · enumOptional

Text verbosity. Defaults to detailed.

Possible values:
presentationTypestring · enumOptionalPossible values:
targetAudiencestring · max: 200Optional

Free-text audience description.

toneAndStylestring · max: 200Optional

Free-text tone/style description.

debugModebooleanOptional

Internal diagnostics.

Default: false
Responses
202

Job queued. Poll GET /v1/presentations/{id} for the result.

application/json
post/v1/presentations/topic

Create a presentation from raw text

post

You already have text and want it turned into slides. The output language always matches the source language. If the text exceeds the token limit (390,000 tokens, measured with the gpt-3.5-turbo tokenizer), the API responds 400 BAD_REQUEST with tokensCount and tokenLimit in the error body.

Authorizations
AuthorizationstringRequired

Recommended. Pass your API key (starts with ppsk_) as Authorization: Bearer ppsk_…. One active key per Pro/Team account — to rotate, revoke the old one first.

Body
textstringRequired

Source text. Maximum 390,000 tokens, measured with the gpt-3.5-turbo tokenizer. Exceeding the limit returns 400 BAD_REQUEST with tokensCount and tokenLimit in the error body.

numSlidesone ofOptional

Slide count: -1 for auto, or 150. 0 is invalid.

Default: -1
const: -1Optional

Automatic slide count.

or
any · min: 1 · max: 50Optional
templatestring · enumOptional

Design theme id (case-sensitive, no spaces). Custom user-uploaded templates are not supported via the public API.

Default: TokyoPossible values:
formatstring · enumOptional

Output file format.

Default: pptxPossible values:
contentModificatorstring · enumOptional

How the source content is treated when building slides.

Default: expandPossible values:
textDensitystring · enumOptional

Density of text on each slide.

Default: concisePossible values:
verbositystring · enumOptional

Text verbosity of the generated slides.

Possible values:
imageSourcestring · enumOptional

Where slide images come from. unsplash/pexels/scrapingdog are stock; ai/flux are AI-generated.

Default: unsplashPossible values:
imageStylestring · enumOptional

Image style. Applies only when imageSource is ai or flux.

Possible values:
debugModebooleanOptionalDefault: false
Responses
202

Job queued. Poll GET /v1/presentations/{id} for the result.

application/json
post/v1/presentations/text

Create a presentation from a document

post

Upload a PDF, PPTX, DOCX, or TXT (max 25 MB) and queue a generation job. File types are validated via magic-byte sniffing — extension spoofing is rejected. The output language always matches the source language. Note: in multipart/form-data every field arrives as a string; the API coerces numSlides and debugMode.

Authorizations
AuthorizationstringRequired

Recommended. Pass your API key (starts with ppsk_) as Authorization: Bearer ppsk_…. One active key per Pro/Team account — to rotate, revoke the old one first.

Body

multipart/form-data body. All non-file fields arrive as strings; the API coerces numSlides and debugMode.

filestring · binaryRequired

Source document, max 25 MB. Accepted types (validated via magic-byte sniffing): PDF (application/pdf), PowerPoint (application/vnd.openxmlformats-officedocument.presentationml.presentation), Word (application/vnd.openxmlformats-officedocument.wordprocessingml.document), plain text (text/plain).

numSlidesstringOptional

Slide count as a string: -1 for auto, or 150.

Example: 15
templatestring · enumOptional

Design theme id (case-sensitive, no spaces). Custom user-uploaded templates are not supported via the public API.

Default: TokyoPossible values:
formatstring · enumOptional

Output file format.

Default: pptxPossible values:
contentModificatorstring · enumOptional

How the source content is treated when building slides.

Default: expandPossible values:
textDensitystring · enumOptional

Density of text on each slide.

Default: concisePossible values:
verbositystring · enumOptional

Text verbosity of the generated slides.

Possible values:
imageSourcestring · enumOptional

Where slide images come from. unsplash/pexels/scrapingdog are stock; ai/flux are AI-generated.

Default: unsplashPossible values:
imageStylestring · enumOptional

Image style. Applies only when imageSource is ai or flux.

Possible values:
debugModestring · enumOptional

Boolean as string in form-data.

Default: falsePossible values:
Responses
202

Job queued. Poll GET /v1/presentations/{id} for the result.

application/json
post/v1/presentations/file

Get job status and result

get

Check the status of a generation job and, once status is completed, fetch the permanent download URL from result.url. Jobs are owner-scoped: a job is only visible to the API key that created it. Recommended polling cadence: every 2–3 seconds (read limit is 600 req/min per key).

Authorizations
AuthorizationstringRequired

Recommended. Pass your API key (starts with ppsk_) as Authorization: Bearer ppsk_…. One active key per Pro/Team account — to rotate, revoke the old one first.

Path parameters
idstring · uuidRequired

Job id returned by a POST /v1/presentations/* endpoint.

Example: 9f1c2a4e-6e2c-4f8a-9b3d-1a2b3c4d5e6f
Responses
200

Job descriptor with current status.

application/json
get/v1/presentations/{id}

Last updated