Sign in

Document Generation API

A document generation API. JSX or JSON in, native PPTX out.

No coordinate math, no raw OOXML, no LibreOffice dependency. Components instead of coordinates. Editable Excel charts backed by an embedded workbook — the kind where a recipient clicks in and sees the actual data.

[01] What you get

Three capabilities that no other library ships together.

Each solves a problem that blocks teams from shipping automated decks.

Declarative API

Components, not coordinates

python-pptx needs 47 lines for a title and subtitle. PaperJSX needs three. Describe what goes on the slide — the engine handles layout, alignment, and spacing.

  • JSX or JSON input
  • 8 slide patterns
  • Automatic layout
3lines to render a slide

Editable Charts

Real PowerPoint chart objects

Every chart is backed by an embedded Excel workbook. Recipients click in, see the data, modify it. No other library under $999 does this.

  • Excel-embedded workbook
  • 6 chart types
  • Works in Google Slides
6chart types

OOXML Validated

Zero repair dialogs

We track every repair-dialog bug in python-pptx and PptxGenJS and test against all of them. If PaperJSX generates it, PowerPoint opens it cleanly.

  • Spec-validated output
  • No repair prompts
  • Clean in every viewer
0repair dialogs

[02] API surface

Send JSON, get a deck.

One structured payload in, one editable .pptx out. No templates, no browsers, no glue code.

Request
typing…
POST /api/v1/renderContent-Type: application/json{  "version": "2.0",  "title": "Q2 Board Update",  "accentColor": "#5A7A9B",  "slides": [    {      "slideType": "title-body",      "title": "Q2 Board Update",      "body": ["Revenue up 34% QoQ"]    },    {      "slideType": "kpi-grid",      "title": "Key Metrics",      "items": [        { "label": "ARR", "value": "$2.4M" },        { "label": "NRR", "value": "118%" }      ]    }  ]}
Response
waiting
HTTP/1.1 200 OKContent-Type: application/vnd.openxmlformatsContent-Disposition: attachment; filename="q2-update.pptx"X-PaperJSX-Duration: 148msX-PaperJSX-Slides: 2<binary .pptx file>

[03] LLM-native

AI agents generate presentations without coordinate-level calls.

The declarative JSON schema means AI agents can generate presentations without coordinate-level positioning calls that LLMs consistently get wrong. Ship a PaperJSX MCP server in your agent stack and let the model describe slides in structured data instead of fighting with imperative APIs.

Structured data in, deterministic output out — the contract AI agents need.

[04] Performance

Built for production throughput.

PaperJSX is a compiled PPTX engine, not a rendering pipeline.

0ms
Typical generation
0
Slide patterns
0h
SDK license cache
0
Chart types

[05] Scope

What PaperJSX supports today.

We do text, images, tables, shapes, and charts well. Here is exactly what is and isn't covered.

CapabilityCapabilityStatus
Text, titles, body copyText, titles, body copySupported
TablesTablesSupported
Images and shapesImages and shapesSupported
Editable Excel chartsEditable Excel chartsSupported — 6 types
Master slide inheritanceMaster slide inheritanceSupported
PPTX, DOCX, PDF outputPPTX, DOCX, PDF outputSupported
SmartArtSmartArtNot yet
AnimationsAnimationsNot yet
Embedded videoEmbedded videoNot yet

See it in action.

Open the playground, paste structured JSON, and get a real deck in under 200ms. No signup required.

Try for free