Learning platforms
Give teachers a slide export button: each course module becomes a presentation.
A simple REST API: send text and receive a structured, editable .pptx file. Integrate slide generation directly into your products and workflows.
Create an API keyIncluded with every paid plan, from $14.90/month or $119.99/year. Create and manage keys from your dashboard.
curl -X POST https://prezto.io/v1/decks \
-H "Authorization: Bearer $PREZTO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7b1f584f-f42b-4e92-83fb-707877f539b1" \
-d '{
"source": "Lesson: photosynthesis…",
"theme": "serein",
"title": "Photosynthesis",
"output_locale": "en"
}'
# → 202 Accepted
{
"id": "deck_8fk2",
"status": "processing",
"download_url": null
}Every API key starts with przk_ and is sent in the Authorization header using the Bearer format. You can create and revoke keys from the dashboard. They are never displayed again after creation: store them securely.
New plans: add an Idempotency-Key header containing a stable UUID for each request. Reuse it when retrying the same content: the same identifier is returned without a second deduction. Different content with the same key returns 409; a deleted presentation returns 410.
"Authorization: Bearer przk_a1b2c3d4e5f6…"
What our partners build with the API.
Give teachers a slide export button: each course module becomes a presentation.
Add deck generation using content already available in your application.
Connect Prezto to your scripts and no-code tools to produce training materials at scale.
Create a presentation, track its status, download the file and list the available themes.
/v1/decksCreate a presentation from text/v1/decks/{id}Track status and retrieve the download URL/v1/decks/{id}/downloadDownload the generated .pptx file/v1/themesList available themessource is required (the text to transform, up to 100,000 characters). theme and title are optional.
curl -X POST https://prezto.io/v1/decks \
-H "Authorization: Bearer $PREZTO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7b1f584f-f42b-4e92-83fb-707877f539b1" \
-d '{
"source": "Lesson: photosynthesis…",
"theme": "serein",
"title": "Photosynthesis",
"output_locale": "en",
"mode": "preserver",
"slide_count": 12,
"audience": "eighth-grade students"
}'
# → 202 Accepted
{
"id": "deck_8fk2",
"status": "processing",
"download_url": null
}Optional parameters adjust how precisely the content is generated.
modegenerer | condenser | preserverFidelity to the source text. condenser (default): a faithful, structured summary. preserver: text is split into slides without rewriting, with nothing lost. generer: AI develops and enriches the content without inventing figures.
densityminimal | standard | detailleText density per slide. minimal: 3 to 5 short bullets, with the rest in speaker notes. standard (default): informative bullets of 8 to 20 words. detaille: rich bullets and detailed speaker notes.
slide_countinteger, 3 to 30Target slide count. If omitted, the slide count is calculated automatically from the text length.
audiencetext, up to 300 charactersTarget audience (e.g. eighth-grade students or an executive committee): vocabulary, examples and level of detail are adapted.
tonetext, up to 200 charactersPresentation tone (e.g. educational, formal or enthusiastic).
instructionstext, up to 1000 charactersFree-form instructions applied during generation (e.g. emphasise part 2 or finish with a quiz).
image_countinteger, 0 to 10, or autoNumber of AI-generated illustrations on suitable slides (title, sections and lighter content), matching the presentation style and embedded in the .pptx file. 0 (default): none. auto: the engine distributes up to 10. Reserved for Pro (already required for the API).
imagesboolean (deprecated)Legacy parameter: true is equivalent to image_count = auto (up to 10 illustrations); false or omitted means 0. Retained for compatibility; prefer image_count. If provided, image_count takes precedence.
output_localefr | en | es | plOutput language of the presentation.
Poll this endpoint until status becomes done.
curl https://prezto.io/v1/decks/deck_8fk2 \
-H "Authorization: Bearer $PREZTO_API_KEY"
# → 200 OK
{
"status": "done",
"download_url": "https://prezto.io/v1/decks/deck_8fk2/download",
"slides_count": 12,
"expires_at": null
}Returns the .pptx file directly, with no retention time limit. The file is universally compatible: illustrations are images alongside native PowerPoint elements, with no embedded vector format; it opens identically in PowerPoint, Keynote and Google Slides.
curl https://prezto.io/v1/decks/deck_8fk2/download \ -H "Authorization: Bearer $PREZTO_API_KEY" \ -o presentation.pptx # → 200 OK (.pptx)
Useful for building a theme selector in your own interface.
curl https://prezto.io/v1/themes
# → 200 OK
{
"themes": [
{
"id": "serein",
"name": "Serein"
},
{
"id": "minimal",
"name": "Minimal"
},
{
"id": "contraste",
"name": "Ardoise"
}
]
}| Status | Meaning |
|---|---|
processing | The presentation is being generated. download_url is null. |
done | The presentation is ready. download_url points to the .pptx file. |
failed | Generation failed. Try again with different source text. |