Document generation API
Build presentations with components, not coordinates.
Structured JSON in, native editable PowerPoint and Excel files out. Charts, workbooks, validation, and repair in one API layer.
01 The problem
The output layer is still broken.
python-pptx needs 47 lines to place a title and a subtitle on a blank slide. Adjust the Y coordinate. Deploy. The client opens it in Google Slides and everything shifts.
Need a chart? python-pptx renders pie chart labels as 100%/800%/100% (GitHub issue #395, still open). PptxGenJS triggers "PowerPoint needs to repair this file" when you combine charts with images (issue #1020, also open). Neither library can produce an editable Excel-embedded chart, the kind where a recipient clicks in and sees the actual data.
The hard part is not generating slides. The hard part is generating slides that do not make people squint, do not break when opened, and do not require the recipient to redo the work.
[02] Documents
Write code. Get perfect documents.
import { Slide, BarChart, KPI } from "paperjsx"export const Q4Slide = () => (<Slide layout="title-chart"><KPI label="Revenue" value="$4.2M" delta="+34%" /><KPI label="Margin" value="72%" delta="+4pp" /><KPI label="Customers" value="340" /><BarChartdata={quarterly}accent="brand"labels={true}stacked={false}/><Note>Source: Stripe MRR · Q4 2025</Note></Slide>)
02 API
One API call. One editable deck.
The request and response stay simple. The work is in the output quality.
POST /api/v2/renderContent-Type: application/json{"sourceSchema": "protocol_v2","mode": "async","document": {"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%" }]}]}}
HTTP/1.1 202 AcceptedContent-Type: application/json{"status": "queued","data": {"job_id": "job_123","job_url": "/api/v2/jobs/job_123"}}
Editable Excel charts.
Every chart is backed by a real embedded workbook. Recipients click in and see the data.
OOXML validated.
Every output file is checked against the spec before it leaves the API. If CmdCal generates it, PowerPoint opens it.
LLM-native.
The declarative JSON schema lets AI agents describe slides in structured data instead of fighting coordinate-level calls.
How It Works
JSON in. Native deck out.
How it fits
Structured data in, native deck out.
03 Who this is for
Built for teams that need the deck itself.
AI agent developers
Workflows that produce document deliverables, reports, decks, and proposals through MCP or direct API calls. Ship a CmdCal MCP server in your agent stack. The model describes slides in structured data. The engine handles the rest.
SaaS platforms
Add "Export to PowerPoint" without building a PPTX rendering engine. Tableau and Power BI export slides as static images. CmdCal exports editable native objects that recipients can modify.
Financial services
Automated pitch books and QBRs where the editable Excel chart is not a nice-to-have, it is the entire point. Recipients click in and see the actual data.
Get started
Start generating decks from code.
5 free documents per month. No credit card.