API Reference

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.dev

Endpoints

POST/v1/validatelive

Validate OPF

Validate an OPF JSON document against the schema. Returns errors and warnings without generating any files.

InputJSON body (OPF document)
Output{ valid, errors[], warnings[] }
POST/v1/previewlive

Preview 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.

InputJSON body (OPF document)
Output{ status, format, dimensions, slides[], warnings[] } (+ export stub for svg/png)
POST/v1/parselive

Parse PPTX

Upload a .pptx file and extract structured data: slides, text, metadata, speaker notes.

InputFormData with "file" (.pptx)
Output{ parseId, slideCount, width, height }
POST/v1/convertlive

PPTX to OPF

Convert an existing .pptx file into an OPF JSON document. The reverse of /v1/generate — useful for importing existing decks.

InputFormData with "file" (.pptx)
OutputOPF JSON document
POST/v1/generatecoming-soon

Generate PPTX

Turn a valid OPF JSON document into a production .pptx file. Supports ?format=pptx|pdf|png|svg.

InputJSON body (OPF document)
Output.pptx file (or PDF/PNG/SVG)
POST/v1/renderbeta

Render 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.

InputFormData with "file" (.pptx)
OutputSlide data for web rendering
GET/v1/parse/[parseId]/metadatalive

Get metadata

Retrieve metadata (title, creator, dates, custom properties) from a previously parsed PPTX.

InputparseId path param
OutputMetadataResult JSON
GET/v1/parse/[parseId]/slides/[index]live

Get slide

Retrieve a single slide's text runs, dimensions, and speaker notes by index.

InputparseId + slide index
OutputSlideData JSON
GET/v1/parse/[parseId]/textlive

Get all text

Retrieve all text content from all slides of a parsed PPTX.

InputparseId path param
OutputArray of slide text data

Quick Start

Create a minimal OPF document and validate it:

cURL
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:

FromToEndpointStatus
Natural languageOPF JSONStudio AILive
.pptx fileOPF JSON/v1/convertLive
OPF JSON.pptx file/v1/generateComing soon
OPF JSONPDF/v1/generate?format=pdfComing soon
.pptx fileWeb slides/v1/render?format=webBeta
.pptx fileSVG / PNG/v1/render?format=svgComing soon

Error Codes

CodeMeaning
400Bad request — invalid input, missing fields, or wrong content type
401Unauthorized — missing or invalid API key
403Forbidden — API key lacks required scopes
422Unprocessable — OPF document failed schema validation
429Rate limited — too many requests for your plan
500Internal error — please report if persistent