The deck generation API for slides, PDFs, and PowerPoints

POST a prompt to /v1/generate, poll the job, and get back a live deck link, a PDF, and an editable PPTX, all on your brand and ready in roughly 10 to 30 seconds.

The heydecks Deck API is a REST endpoint for building presentations from text. POST a prompt to /v1/generate with a Bearer key and heydecks composes the slides and applies your brand. You poll the job and receive a live deck url, a pdf, and a native pptx, usually within 10 to 30 seconds.

One prompt, three formats

A single prompt yields a live deck link, a pixel-perfect PDF, and an editable PowerPoint, all rendered from the same structured deck.

On your brand, every time

Pass a brand_id and every generated deck honors your colors, type, logo, and layout rules through the Brand Kernel. No template wrangling.

Fast on the edge

Generation runs on Cloudflare Workers and a deck is usually ready 10 to 30 seconds after you POST, so the job finishes while the user waits.

Plain JSON, no SDK

POST returns a job id and a poll path. When the job succeeds it carries the deck url, the pdf, and the pptx. Parse three links and ship them.

How it works.

  1. 1

    Mint an API key

    Create a key at heydecks.com/dashboard/api-keys. It is prefixed hd_live_ and shown once. The REST API is available on Solo and up.

  2. 2

    POST your prompt

    Send a JSON body with your prompt to https://heydecks.com/v1/generate and an Authorization: Bearer header. The API replies with a job_id and a poll path.

  3. 3

    Poll the job for three links

    Poll /v1/jobs/{id}. When it succeeds the job carries the live deck url, the PDF, and the native PowerPoint. Embed them, store them, or hand them to the user.

Generate a deck (curl)
curl -X POST https://heydecks.com/v1/generate \
  -H "Authorization: Bearer hd_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Q3 board update: revenue up 18%, three risks, ask for budget approval"
  }'

# => 202 { "job_id": "job_...", "status": "queued", "poll": "/v1/jobs/job_..." }
# Poll /v1/jobs/{id} until status is "succeeded":
# => { "url":  "https://heydecks.com/d/q3-board-update",
#      "pdf":  "https://heydecks.com/...q3-board-update.pdf",
#      "pptx": "https://heydecks.com/...q3-board-update.pptx" }

Common questions

A POST to /v1/generate returns a job_id and a poll path. Poll /v1/jobs/{id}; when it succeeds you get JSON with a live deck url, a pdf, and a native pptx.

Build your first deck today.