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 statusGenerate 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.pptxThe 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 --yesget 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.