presentations.ai

Overview

The presentations.ai API — turn ideas, documents, and data into finished slide decks.

The presentations.ai REST API lets you create, manage, and export presentation decks programmatically. Everything the API can do is described in the API reference, generated from our OpenAPI spec.

Base URL

All endpoints live under /api/v1 on your workspace's API origin.

Authentication

Requests are authenticated with a workspace API key passed as a Bearer token:

curl "$PRESENTATIONSAI_BASE_URL/me" \
  -H "Authorization: Bearer $PRES_API_KEY"

API keys are created and managed from your workspace settings, or via the api-keys endpoints.

How generation works

Deck generation is asynchronous: create a deck with a caller request ID, then poll /requests/{request_id} for its status and current generation stage. The response always carries the request ID and deck ID; there is no separate task identifier in this REST workflow. Generation consumes workspace credits.

Python CLI quickstart

Install the isolated CLI, create a key in workspace API-key settings, and save it in your OS credential store. Profiles never contain the token itself.

uv tool install deckmaker
deckmaker auth login
deckmaker auth status

Generate an outline, edit its plain JSON, and create a deck from the reviewed outline. Outline and prompt workflows target 10 slides unless --slides is set.

deckmaker create outline \
  "Turn the source into a concise board update" \
  --file ./quarterly-review.pdf \
  --slides 8 \
  --output ./reviewed-outline.json

${EDITOR:-vi} ./reviewed-outline.json

deckmaker create deck \
  --title "Quarterly customer review" \
  --outline ./reviewed-outline.json \
  --request-id quarterly-review-v1 \
  --format pptx \
  --output ./quarterly-review.pptx

The request ID is optional. When omitted, the CLI derives a stable ID so an identical retry is safe; pass --new when you intentionally want another copy.

deckmaker create deck "Explain our launch plan" --slides 10 --format pdf
deckmaker get status quarterly-review-v1
deckmaker list decks
deckmaker get deck DECK_ID
deckmaker get deck DECK_ID pptx --output ./deck.pptx
deckmaker delete deck DECK_ID --yes

get deck prints the viewer link by default. Global flags work after leaf commands, for example deckmaker create deck "Brief" --json. Use deckmaker --version, deckmaker update --check, and deckmaker update to inspect and update the installed CLI.

On this page