Quickstart

Three ways to create your first slide. Pick the path that fits your workflow.

1MCP β€” Connect your AI agent

Zero setup. No API key needed. Works with Claude Desktop, Cursor, Windsurf, and any MCP client.

πŸ€–

Add one line to your MCP config

5 seconds Β· free to connect

Add this to your Claude Desktop config (claude_desktop_config.json):

Claude Desktop / Cursor
{
  "mcpServers": {
    "slideforge": {
      "url": "https://api.slideforge.dev/mcp"
    }
  }
}

Restart Claude Desktop. Then just ask:

β€œCreate a KPI dashboard with Revenue $8.5M, Clients 234, Margin 71%, NPS 4.6”

Claude auto-authenticates via OAuth. You get $3 free credit on signup. Full MCP guide β†’

2Template Render β€” Instant slides

50 built-in templates. Send data, get a .pptx back instantly. $0.03-$0.05 per slide.

πŸ“

POST /v1/render

< 1 second Β· $0.03-$0.05

curl
curl -X POST https://api.slideforge.dev/v1/render \
  -H "Authorization: Bearer sf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "kpi_dashboard",
    "brief": "Revenue $8.5M +14%, Clients 234 +9%, Margin 71%, NPS 4.6"
  }'
Python
import requests

resp = requests.post(
    "https://api.slideforge.dev/v1/render",
    headers={"Authorization": "Bearer sf_live_YOUR_KEY"},
    json={
        "template": "kpi_dashboard",
        "brief": "Revenue $8.5M +14%, Clients 234 +9%, Margin 71%, NPS 4.6",
    },
)
data = resp.json()
print(data["pptx_url"])  # download link β€” ready instantly

Returns pptx_url and preview_url immediately (200 OK). No polling needed. Full reference β†’

3Creative Generate β€” Custom AI layouts

For slides no template covers. AI designs the layout from your brief. $0.20 per slide, ~30s.

✦

POST /v1/generate

~30 seconds Β· $0.20

curl
curl -X POST https://api.slideforge.dev/v1/generate \
  -H "Authorization: Bearer sf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brief": "Revenue bridge Q4 to Q1: Start $10.2M. New clients +$2.1M, upsell +$1.3M, churn -$0.8M, FX -$0.2M."
  }'
Python (generate + poll)
import time, requests

# 1. Start generation
resp = requests.post(
    "https://api.slideforge.dev/v1/generate",
    headers={"Authorization": "Bearer sf_live_YOUR_KEY"},
    json={"brief": "Revenue bridge Q4 to Q1: Start $10.2M. New clients +$2.1M, upsell +$1.3M, churn -$0.8M, FX -$0.2M."},
)
job_id = resp.json()["job_id"]

# 2. Poll until complete (~15s)
while True:
    status = requests.get(
        f"https://api.slideforge.dev/v1/jobs/{job_id}",
        headers={"Authorization": "Bearer sf_live_YOUR_KEY"},
    ).json()
    if status["status"] == "complete":
        print(status["pptx_url"])  # download link
        break
    time.sleep(3)

Returns job_id (202 Accepted). Poll GET /v1/jobs/{job_id} every 3 seconds until complete. Full reference β†’

Authentication

MCP: OAuth handles everything automatically β€” just connect and go.
API: Sign up, then create a key at Console β†’ API Keys. Pass it as Authorization: Bearer sf_live_... Learn more β†’

What's next