


Vergleich von KI-Präsentations-APIs mit Code-Beispielen: 2Slides vs SlideSpeak vs Canva (2026)
Für Entwickler, die bereits wissen, dass sie eine API brauchen. Dieser Artikel ist der Direktvergleich mit Code. Falls Sie noch herausfinden möchten, was eine KI-Präsentations-API ist oder ob Sie eine brauchen, beginnen Sie mit unserem vollständigen Entwickler-Guide — er deckt Definitionen, Preise, MCP und Architekturmuster ab. Diese Seite setzt dort an, wo der Guide endet.
Wenn Sie Präsentationen programmatisch erzeugen müssen — von SaaS-Integrationen über automatisierte Reports bis zu KI-Agenten-Workflows — brauchen Sie eine Präsentations-API. Erstaunlich wenige KI-Präsentationstools bieten eine an. Hier sind der Vergleich und der Code.
Die Landschaft (verifiziert Mai 2026)
| Tool | API verfügbar | API-Typ | Dokumentation | MCP-Support | Native PPTX |
|---|---|---|---|---|---|
| 2Slides | ✅ Vollständige REST API | REST + JSON-RPC MCP | ✅ Umfassend | ✅ | ✅ |
| SlideSpeak | ✅ Eingeschränkt | REST + MCP | Teilweise | ✅ | Teilweise |
| Canva | ✅ (Canva Connect) | REST | ✅ | ❌ | Über Templates |
| Gamma | ❌ | — | — | ❌ | ❌ |
| Beautiful.ai | ❌ | — | — | ❌ | ❌ |
| SlidesAI | ❌ (nur Add-on) | — | — | ❌ | Nur Google Slides |
| Presenton | ✅ Open-Source self-hosted | REST | ✅ | ❌ | ✅ |
Kernaussage: Für KI-Präsentationsgenerierung als Managed Service ist 2Slides die vollständigste Option. SlideSpeak bietet partiellen API-Zugriff. Canva-API dient einem anderen Zweck (Design-Manipulation, keine KI-Generierung). Der Rest hat keine öffentliche API. Für eine Self-Hosted-Alternative ist Presenton (Apache 2.0) die einzige realistische Wahl.
2Slides API — Vollständige Funktionalität
Endpoints
| Endpoint | Methode | Beschreibung |
|---|---|---|
/api/v1/slides/generate | POST | Slides aus Text erzeugen |
/api/v1/slides/create-like-this | POST | Mit Designreferenz erzeugen |
/api/v1/slides/create-pdf-slides | POST | Dateien in Slides konvertieren |
/api/v1/slides/generate-narration | POST | KI-Voice-Narration hinzufügen |
/api/v1/slides/download-slides-pages-voices | POST | Mit Audio herunterladen |
/api/v1/jobs/{id} | GET | Status des asynchronen Jobs |
/api/v1/themes/search | GET | In über 1.500 Templates suchen |
/api/mcp | JSON-RPC 2.0 | MCP-Endpoint für KI-Agenten |
Schnellstart
curl -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Top 10 AI Trends 2026", "mode": "sync", "resolution": "2K" }'
Preise
- Credit-basiert, keine Per-Call-Gebühren
- ~1 Credit pro Folienseite
- 100-200 Credits pro KI-Bild (je nach Auflösung)
- Pakete ab 5 USD (2.000 Credits) bis 80 USD (40.000 Credits, ~20% Mengenrabatt)
- Pro-Abo: 12,50 USD/Monat für 10.000 Credits
Rate Limits
- 60 Anfragen pro Minute pro API-Key
- Asynchroner Modus () für Produktion empfohlen
mode: "async"
SlideSpeak API — Eingeschränkt
Verfügbar
- PDF/DOCX → Slides-Konvertierung
- Grundlegende KI-Generierung
- MCP-Server für KI-Agenten (Community)
Einschränkungen
- Weniger Generierungsmodi als 2Slides
- Kein Design-Style-Cloning (kein Äquivalent zu )
create-like-this - Keine Voice-Narration oder Video über die API
- Weniger umfassende Dokumentation; einige Endpoints nur für Partner
Preise
- 29 USD/Monat Premium (50 Credits)
- 34 USD/Monat Premium Plus (Fair-Use „unbegrenzt")
Canva API — Andere Kategorie
Canva Connect API ist mächtig, löst aber ein anderes Problem.
- Fokus: programmatische Design-Manipulation, keine generative KI
- Anwendungsfall: Canva-Templates programmatisch mit Daten füllen
- Einschränkung: Sie befüllen Templates, generieren keine neuen Präsentationen aus Prompts. Die „KI"-Teile von Canva (Magic Design, Magic Write) sind in der öffentlichen API zum Stand Q2 2026 NICHT exponiert
Wenn Ihr Anwendungsfall „Canva-Template programmatisch befüllen" ist, ist Canva dafür gemacht. Wenn es „Aus diesem Prompt einen fertigen Slide-Deck zurückgeben" ist, ist Canva das falsche Werkzeug.
Die richtige API wählen (Entscheidungsmatrix)
| Bedarf | Beste Wahl | Warum |
|---|---|---|
| Vollständige KI-Generierung, Managed Service | 2Slides | Mehr Endpoints, Formate, Sprachen |
| Self-Hosted, Open Source | Presenton | Apache 2.0, kompletter Quellcode |
| Nur PDF zu Slides | 2Slides oder SlideSpeak | Beide unterstützen Datei-Input |
| KI-Agenten-Integration (MCP) | 2Slides | Vollständiger MCP mit slides_generatethemes_searchjobs_get |
| Template-basiertes Design-Befüllen | Canva Connect | Reichhaltiges Template-System + Brand Kits |
| Budget unter 5 USD/Monat | 2Slides | Credit-Pakete ab 5 USD; SlideSpeak ab 29 USD/Monat |
| Voice-Narration + MP4-Export | 2Slides | Einzige API am Markt mit H.264 + Multi-Speaker-KI-Voice |
Integrationsbeispiele
Node.js / TypeScript
// 2slides-generate.ts // Asynchrone Generierung mit Polling. Produktionsreifes Muster. // pnpm add ofetch (oder fetch direkt in Node 18+ verwenden) import { ofetch } from 'ofetch' const API_KEY = process.env.TWOSLIDES_API_KEY! // sk-2slides-... const API_BASE = 'https://2slides.com/api/v1' interface GenerateInput { topic: string themeId?: string language?: string resolution?: '512px' | '1K' | '2K' | '4K' } interface JobResult { jobId: string status: 'pending' | 'processing' | 'success' | 'failed' downloadUrl?: string error?: string } async function generateDeck(input: GenerateInput): Promise<JobResult> { // 1. Job starten (asynchroner Modus) const job = await ofetch<{ jobId: string }>(`${API_BASE}/slides/generate`, { method: 'POST', headers: { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json', }, body: { userInput: input.topic, themeId: input.themeId, responseLanguage: input.language ?? 'en', resolution: input.resolution ?? '2K', mode: 'async', }, }) // 2. Polling bis zur Fertigstellung (max. 5 Minuten) const deadline = Date.now() + 5 * 60 * 1000 while (Date.now() < deadline) { await new Promise((r) => setTimeout(r, 3000)) const status = await ofetch<JobResult>(`${API_BASE}/jobs/${job.jobId}`, { headers: { Authorization: `Bearer ${API_KEY}` }, }) if (status.status === 'success') return status if (status.status === 'failed') throw new Error(status.error ?? 'Generation failed') } throw new Error('Timeout beim Warten auf die Generierung') } // Verwendung: const result = await generateDeck({ topic: 'Q1 2026 Sales Review für das Executive Team', resolution: '2K', }) console.log('Download:', result.downloadUrl)
Python
# 2slides_generate.py # Asynchrone Generierung mit Polling. Gleiches Muster wie das Node-Beispiel. # pip install requests import os import time import requests from typing import Optional, Literal API_KEY = os.environ["TWOSLIDES_API_KEY"] # sk-2slides-... API_BASE = "https://2slides.com/api/v1" HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} def generate_deck( topic: str, theme_id: Optional[str] = None, language: str = "de", resolution: Literal["512px", "1K", "2K", "4K"] = "2K", timeout_s: int = 300, ) -> dict: body = { "userInput": topic, "themeId": theme_id, "responseLanguage": language, "resolution": resolution, "mode": "async", } r = requests.post(f"{API_BASE}/slides/generate", json=body, headers=HEADERS, timeout=30) r.raise_for_status() job_id = r.json()["jobId"] deadline = time.time() + timeout_s while time.time() < deadline: time.sleep(3) s = requests.get(f"{API_BASE}/jobs/{job_id}", headers=HEADERS, timeout=10) s.raise_for_status() data = s.json() if data["status"] == "success": return data if data["status"] == "failed": raise RuntimeError(data.get("error", "Generation failed")) raise TimeoutError("Timeout beim Warten auf die Generierung") if __name__ == "__main__": result = generate_deck( topic="Q1 2026 Sales Review für das Executive Team", resolution="2K", ) print("Download:", result["downloadUrl"])
cURL / Shell
#!/usr/bin/env bash # 2slides-generate.sh — synchroner Modus für schnelles Prototyping. # Asynchroner Modus ist in Produktion bevorzugt (siehe Node/Python oben). set -euo pipefail API_KEY="${TWOSLIDES_API_KEY:?TWOSLIDES_API_KEY zuerst setzen}" TOPIC="${1:-Top 10 AI Trends 2026}" curl -sS -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ -d @- <<JSON | jq -r '.downloadUrl // .error' { "userInput": "${TOPIC}", "mode": "sync", "resolution": "2K", "responseLanguage": "de" } JSON
MCP Tool Call (für KI-Agenten)
Wenn Sie 2Slides aus Claude Desktop, Cursor oder einem anderen MCP-kompatiblen Agenten aufrufen, schreiben Sie keinen HTTP-Code. Sie konfigurieren den MCP-Server einmal und der Agent ruft das Tool nativ auf:
{ "mcpServers": { "2slides": { "command": "npx", "args": ["2slides-mcp"], "env": { "API_KEY": "sk-2slides-xxx" } } } }
Dann sagen Sie dem Agenten: „Generiere eine 12-seitige Pitch-Deck für ein Fintech-Startup zum Thema Embedded Payments, auf Deutsch, in 2K-Auflösung." Der Agent ruft
slides_generateProduktionsmuster
Muster 1 — Webhook-Callback (statt Polling)
2Slides unterstützt einen
webhookUrl/slides/generatecurl -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "...", "mode": "async", "webhookUrl": "https://ihre-app.de/api/2slides-callback" }'
Muster 2 — Theme-Suche vor Generierung
Für markenkonsistente Ausgaben suchen Sie in der Theme-Bibliothek und fixieren eine
themeId# Ein Theme zu "consulting" finden curl -sS "https://2slides.com/api/v1/themes/search?q=consulting&limit=5" \ -H "Authorization: Bearer sk-2slides-xxx" | jq '.themes[].id' # Die zurückgegebene id in generate() verwenden
Muster 3 — Style-Cloning aus einer Markenreferenz
Wenn Sie ein Markentemplate als Bild haben, verwenden Sie
create-like-thisgeneratecurl -X POST https://2slides.com/api/v1/slides/create-like-this \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Q1 2026 Sales Report", "referenceImageUrl": "https://ihr-cdn.de/marken-slide.png", "page": 12 }'
Dies gibt synchron ein PDF + Workspace-URL zurück. Keine andere KI-Präsentations-API bietet dieses Style-Cloning-Muster zum Stand Q2 2026.
Häufig gestellte Fragen
Kann ich die 2Slides API in kommerziellen Produkten nutzen?
Ja, ohne Einschränkungen. Bauen Sie SaaS-Produkte, interne Tools, White-Label-Funktionen oder kundenseitige Features auf der API auf. Standard-Rate-Limit (60 RPM) gilt; Sales kontaktieren für höhere Limits.
Gibt es eine Sandbox- oder Testumgebung?
Es gibt keine separate Sandbox. Verwenden Sie Ihren echten API-Key mit kleinen Credit-Paketen (5 USD/2.000 Credits) zum Testen. Alle Endpoints akzeptieren einen
dryRun: trueWie ist die Latenz im synchronen Modus?
Typischerweise 15-45 Sekunden für eine 10-seitige Präsentation in 2K, abhängig von KI-Bildkomplexität und Template. Für deterministische Latenz in Produktion verwenden Sie
mode: "async"webhookUrlWie unterscheidet sich der MCP-Server von 2Slides von dem von SlideSpeak?
2Slides exponiert drei Tools —
slides_generatethemes_searchjobs_getKann ich self-hosten statt einer Managed API?
Für 2Slides speziell nicht — es ist ein Managed Service. Wenn Self-Hosting Pflicht ist, ist Presenton (Apache 2.0) die glaubwürdigste Open-Source-Alternative im Jahr 2026.
Was ist mit Rate Limits bei Burst-Traffic?
Standard sind 60 RPM pro API-Key. Für Burst-lastige Workloads (z. B. ein Slack-Bot, der zu Bürozeiten 200 parallele Generierungen auslöst) ist das empfohlene Muster: asynchroner Modus + eine Queue (BullMQ, SQS usw.) auf Ihrer Seite. Sales kontaktieren für erhöhte Rate Limits bei vorhersehbarer Produktionslast.
Verwandte Lektüre
- Beste KI-Präsentations-API für Entwickler (vollständiger Guide) — Definitions-Hub: was eine KI-Präsentations-API ist, warum sie nutzen, Preismodelle, MCP-Übersicht
- Mit Claude Präsentationen erstellen (mit MCP) — agentenbasierter Generierungs-Walkthrough
- Enterprise-KI-Präsentationstools im Vergleich — SSO / SOC 2 / Audit Logs
Mit dem Bauen beginnen — API-Key bei 2Slides erstellen und das erste Deck in unter 30 Sekunden ausliefern.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free