pptx.dev API Documentation
Generate, parse, validate, convert, and render PowerPoint presentations via REST API. All endpoints accept Bearer token authentication.
Authentication
All API endpoints require authentication via Bearer token. Get your API key from the API Keys page in your account settings.
Authorization: Bearer ppx_your_api_key
Both user-level and organization-level API keys are supported. Session authentication (signed-in users) also works for the Studio UI.
Base URL
https://api.pptx.devEndpoints
/v1/validateliveValidate OPF
Validate an OPF JSON document against the schema. Returns errors and warnings without generating any files.
/v1/previewlivePreview OPF (anonymous)
Validate OPF (max 256 KB) for the Playground. No API key; 30 req/min and 500/hour per IP. Query ?format=web|svg|png (default svg) and ?slides=1,3 for subsets.
/v1/parseliveParse PPTX
Upload a .pptx file and extract structured data: slides, text, metadata, speaker notes.
/v1/convertlivePPTX to OPF
Convert an existing .pptx file into an OPF JSON document. The reverse of /v1/generate — useful for importing existing decks.
/v1/generatecoming-soonGenerate PPTX
Turn a valid OPF JSON document into a production .pptx file. Supports ?format=pptx|pdf|png|svg.
/v1/renderbetaRender slides
Convert a .pptx file to web-viewable slides or export as SVG/PNG images. Supports ?format=web|svg|png and ?slides=1,2,3.
/v1/parse/[parseId]/metadataliveGet metadata
Retrieve metadata (title, creator, dates, custom properties) from a previously parsed PPTX.
/v1/parse/[parseId]/slides/[index]liveGet slide
Retrieve a single slide's text runs, dimensions, and speaker notes by index.
/v1/parse/[parseId]/textliveGet all text
Retrieve all text content from all slides of a parsed PPTX.
Quick Start
Create a minimal OPF document and validate it:
curl -X POST https://api.pptx.dev/v1/validate \
-H "Authorization: Bearer ppx_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"$schema": "https://pptx.dev/schema/opf/v1",
"version": "1.0",
"meta": { "title": "My Presentation" },
"design": { "theme": "corporate-minimal" },
"slides": [{
"id": "title",
"layout": "title-slide",
"elements": [{
"id": "h1",
"type": "text",
"content": { "text": "Hello, World" }
}]
}]
}'Conversion Pipeline
The full input/output matrix supported by the API:
| From | To | Endpoint | Status |
|---|---|---|---|
| Natural language | OPF JSON | Studio AI | Live |
| .pptx file | OPF JSON | /v1/convert | Live |
| OPF JSON | .pptx file | /v1/generate | Coming soon |
| OPF JSON | /v1/generate?format=pdf | Coming soon | |
| .pptx file | Web slides | /v1/render?format=web | Beta |
| .pptx file | SVG / PNG | /v1/render?format=svg | Coming soon |
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad request — invalid input, missing fields, or wrong content type |
| 401 | Unauthorized — missing or invalid API key |
| 403 | Forbidden — API key lacks required scopes |
| 422 | Unprocessable — OPF document failed schema validation |
| 429 | Rate limited — too many requests for your plan |
| 500 | Internal error — please report if persistent |