Available with the Pro plan

Generate presentations through an API

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 key

Included with every paid plan, from $14.90/month or $119.99/year. Create and manage keys from your dashboard.

POST /v1/decks
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
}

Authentication

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.

header
"Authorization: Bearer przk_a1b2c3d4e5f6…"
Open dashboard

Use cases

What our partners build with the API.

LMS

Learning platforms

Give teachers a slide export button: each course module becomes a presentation.

EDTECH

Edtech products

Add deck generation using content already available in your application.

AUTOMATION

Course automation

Connect Prezto to your scripts and no-code tools to produce training materials at scale.

4 endpoints for the entire generation cycle

Create a presentation, track its status, download the file and list the available themes.

POST/v1/decksCreate a presentation from text
GET/v1/decks/{id}Track status and retrieve the download URL
GET/v1/decks/{id}/downloadDownload the generated .pptx file
GET/v1/themesList available themes

Create a presentation

source is required (the text to transform, up to 100,000 characters). theme and title are optional.

POST /v1/decks
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
}

Control generation

Optional parameters adjust how precisely the content is generated.

modegenerer | condenser | preserver

Fidelity 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 | detaille

Text 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 30

Target slide count. If omitted, the slide count is calculated automatically from the text length.

audiencetext, up to 300 characters

Target audience (e.g. eighth-grade students or an executive committee): vocabulary, examples and level of detail are adapted.

tonetext, up to 200 characters

Presentation tone (e.g. educational, formal or enthusiastic).

instructionstext, up to 1000 characters

Free-form instructions applied during generation (e.g. emphasise part 2 or finish with a quiz).

image_countinteger, 0 to 10, or auto

Number 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 | pl

Output language of the presentation.

Track status

Poll this endpoint until status becomes done.

GET /v1/decks/{id}
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
}

Download the file

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.

GET /v1/decks/{id}/download
curl https://prezto.io/v1/decks/deck_8fk2/download \
  -H "Authorization: Bearer $PREZTO_API_KEY" \
  -o presentation.pptx

# → 200 OK (.pptx)

List themes

Useful for building a theme selector in your own interface.

GET /v1/themes
curl https://prezto.io/v1/themes

# → 200 OK
{
  "themes": [
    {
      "id": "serein",
      "name": "Serein"
    },
    {
      "id": "minimal",
      "name": "Minimal"
    },
    {
      "id": "contraste",
      "name": "Ardoise"
    }
  ]
}

Presentation statuses

StatusMeaning
processingThe presentation is being generated. download_url is null.
doneThe presentation is ready. download_url points to the .pptx file.
failedGeneration failed. Try again with different source text.

Limits

Available with the Pro plan

Create API keys directly from your dashboard.

Open dashboard

View pricing for use through the web interface.