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):
{
"mcpServers": {
"slideforge": {
"url": "https://api.slideforge.dev/mcp"
}
}
}Restart Claude Desktop. Then just ask:
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 -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"
}'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 instantlyReturns 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 -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."
}'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
- Iterate on slides β refine with natural language feedback ($0.10)
- Generate decks β multi-slide presentations in parallel
- Browse templates β 50 built-in templates for common slide types
- Custom themes β brand colors, fonts, and logos