getting-startedapipowerpoint

Overview

The pptx.dev API lets you generate .pptx files programmatically with a single HTTP request. This guide walks you through making your first API call and building a complete presentation.

Prerequisites

  • A pptx.dev API key (get one free)
  • Any HTTP client (curl, fetch, Python requests, etc.)

Step 1: Authenticate

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Step 2: Pick Your Building Blocks

Every presentation is composed of building blocks from the pptx.gallery:

Block What it controls
Layout Slide structure and content zones
Color scheme Brand colors across all slides
Font scheme Heading and body typefaces
Narrative Story arc (intro → insight → call-to-action)
Theme Combined color + font preset

Browse the gallery to find the slugs you need before writing your request body.

Step 3: Make Your First API Call

curl -X POST https://api.pptx.dev/v1/presentations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Q1 Business Review",
    "colorScheme": "cobalt",
    "fontScheme": "inter-plus-merriweather",
    "narrative": "problem-solution",
    "slides": [
      {
        "layout": "title-hero",
        "content": {
          "heading": "Q1 Business Review",
          "subheading": "January – March 2026"
        }
      },
      {
        "layout": "two-column-text",
        "content": {
          "heading": "Key Highlights",
          "left": "Revenue up 24% YoY",
          "right": "NPS score: 72"
        }
      }
    ]
  }'

The response returns a download URL for the generated .pptx file.

Step 4: Download the File

curl -o presentation.pptx "https://files.pptx.dev/..."

Open it in PowerPoint or Google Slides — fully editable, no watermarks.

Step 5: Integrate into Your App

Here is the same call using the Node.js fetch API:

const response = await fetch("https://api.pptx.dev/v1/presentations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.PPTX_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    title: "My Presentation",
    colorScheme: "cobalt",
    fontScheme: "inter-plus-merriweather",
    slides: [
      {
        layout: "title-hero",
        content: { heading: "Hello World" },
      },
    ],
  }),
});

const { downloadUrl } = await response.json();

Next Steps

You came for the design. Leave with the deck.

STORYD turns anything in this catalog into a finished, story-driven presentation. Free to start, no card.

See it in a deck →

5 free presentations. Exports to PPTX.