2Slides Logo
Comparatif d'APIs de Présentation par IA avec Exemples de Code: 2Slides vs SlideSpeak vs Canva (2026)
2Slides Team
10 min read

Couverture du comparatif d'APIs de présentation IA avec exemples de code

Comparatif d'APIs de Présentation par IA avec Exemples de Code: 2Slides vs SlideSpeak vs Canva (2026)

Pour les développeurs qui savent déjà qu'ils ont besoin d'une API. Cet article est le comparatif tête-à-tête avec du code. Si vous cherchez encore à savoir ce qu'est une API de présentation IA ou si vous en avez besoin, commencez par notre guide complet pour développeurs — il couvre les définitions, les prix, MCP et les patterns d'architecture. Cette page reprend là où l'autre s'arrête.

Si vous devez générer des présentations de manière programmatique — depuis des intégrations SaaS, des reportings automatisés ou des workflows d'agents IA — vous avez besoin d'une API de présentation. Étonnamment peu d'outils IA en proposent une. Voici le comparatif et le code.

Le panorama (vérifié en mai 2026)

OutilAPI disponibleType d'APIDocumentationSupport MCPPPTX natif
2Slides✅ API REST complèteREST + JSON-RPC MCP✅ Exhaustive
SlideSpeak✅ LimitéeREST + MCPPartiellePartielle
Canva✅ (Canva Connect)RESTVia templates
Gamma
Beautiful.ai
SlidesAI❌ (add-on uniquement)Google Slides uniquement
Presenton✅ Open-source self-hostedREST

Conclusion: pour la génération de présentations IA en service géré, 2Slides est l'option la plus complète. SlideSpeak offre un accès API partiel. L'API de Canva sert un autre objectif (manipulation de design, pas génération IA). Le reste n'a pas d'API publique. Pour une alternative auto-hébergée, Presenton (Apache 2.0) est le seul choix réaliste.


API 2Slides — Fonctionnalité complète

Endpoints

EndpointMéthodeDescription
/api/v1/slides/generate
POSTGénérer des slides depuis du texte
/api/v1/slides/create-like-this
POSTGénérer avec une référence de design
/api/v1/slides/create-pdf-slides
POSTConvertir des fichiers en slides
/api/v1/slides/generate-narration
POSTAjouter une narration vocale IA
/api/v1/slides/download-slides-pages-voices
POSTTélécharger avec audio
/api/v1/jobs/{id}
GETStatut du job asynchrone
/api/v1/themes/search
GETRechercher dans plus de 1.500 templates
/api/mcp
JSON-RPC 2.0Endpoint MCP pour agents IA

Démarrage rapide

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" }'

Tarifs

  • À crédits, pas de frais par appel
  • ~1 crédit par page de slide
  • 100-200 crédits par image IA (selon la résolution)
  • Packs de 5 $ (2.000 crédits) à 80 $ (40.000 crédits, ~20% de remise volume)
  • Abonnement Pro: 12,50 $/mois pour 10.000 crédits

Limites de débit

  • 60 requêtes par minute par clé API
  • Mode asynchrone (
    mode: "async"
    ) recommandé en production

API SlideSpeak — Limitée

Disponible

  • Conversion PDF/DOCX → slides
  • Génération IA basique
  • Serveur MCP pour agents IA (communautaire)

Limitations

  • Moins de modes de génération que 2Slides
  • Pas de clonage de style (pas d'équivalent à
    create-like-this
    )
  • Pas de narration vocale ni de vidéo via l'API
  • Documentation moins complète; certains endpoints réservés aux partenaires

Tarifs

  • 29 $/mois Premium (50 crédits)
  • 34 $/mois Premium Plus (usage équitable « illimité »)

API Canva — Catégorie différente

L'API Canva Connect est puissante mais résout un problème différent.

  • Cible: manipulation programmatique de design, pas génération IA
  • Cas d'usage: remplir des templates Canva avec des données de manière programmatique
  • Limitation: vous remplissez des templates, vous ne générez pas de nouvelles présentations à partir de prompts. Les composants « IA » de Canva (Magic Design, Magic Write) NE SONT PAS exposés dans l'API publique au Q2 2026

Si votre cas est « remplir un template Canva par programme », Canva est fait pour ça. Si c'est « à partir de ce prompt, renvoyer un slide deck terminé », Canva est le mauvais outil.


Choisir la bonne API (matrice de décision)

BesoinMeilleur choixPourquoi
Génération IA complète, service géré2SlidesPlus d'endpoints, formats, langues
Auto-hébergé, open sourcePresentonApache 2.0, code source complet
PDF vers slides uniquement2Slides ou SlideSpeakTous deux supportent l'entrée de fichiers
Intégration agent IA (MCP)2SlidesMCP complet avec
slides_generate
/
themes_search
/
jobs_get
Design basé sur templatesCanva ConnectSystème de templates riche + brand kits
Budget < 5 $/mois2SlidesPacks à partir de 5 $; SlideSpeak à partir de 29 $/mois
Narration vocale + export MP42SlidesSeule API du marché avec H.264 + voix IA multi-locuteur

Exemples d'intégration

Node.js / TypeScript

// 2slides-generate.ts // Génération asynchrone avec polling. Pattern prêt pour la production. // pnpm add ofetch (ou utilisez fetch directement avec Node 18+) 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. Démarrer le job (mode asynchrone) 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 jusqu'à complétion (max 5 minutes) 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('Délai dépassé en attendant la génération') } // Utilisation: const result = await generateDeck({ topic: 'Revue des ventes Q1 2026 pour le comité exécutif', resolution: '2K', }) console.log('Téléchargement:', result.downloadUrl)

Python

# 2slides_generate.py # Génération asynchrone avec polling. Même pattern que l'exemple Node. # 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 = "fr", 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("Délai dépassé en attendant la génération") if __name__ == "__main__": result = generate_deck( topic="Revue des ventes Q1 2026 pour le comité exécutif", resolution="2K", ) print("Téléchargement:", result["downloadUrl"])

cURL / Shell

#!/usr/bin/env bash # 2slides-generate.sh — mode synchrone pour le prototypage rapide. # Le mode asynchrone est préféré en production (voir Node/Python ci-dessus). set -euo pipefail API_KEY="${TWOSLIDES_API_KEY:?Définissez TWOSLIDES_API_KEY d'abord}" 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": "fr" } JSON

Appel via MCP (pour agents IA)

Si vous appelez 2Slides depuis Claude Desktop, Cursor ou tout agent compatible MCP, vous n'écrivez pas de code HTTP. Vous configurez le serveur MCP une fois et l'agent appelle l'outil nativement:

{ "mcpServers": { "2slides": { "command": "npx", "args": ["2slides-mcp"], "env": { "API_KEY": "sk-2slides-xxx" } } } }

Demandez ensuite à l'agent: « Génère un pitch deck de 12 slides pour une startup fintech sur les paiements embarqués, en français, résolution 2K. » L'agent appelle

slides_generate
automatiquement. Le repo open-source du serveur MCP contient la spécification complète des outils.


Patterns de production

Pattern 1 — Webhook callback (au lieu du polling)

2Slides supporte un paramètre

webhookUrl
sur
/slides/generate
. Indiquez votre endpoint et oubliez la boucle de polling:

curl -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://votre-app.fr/api/2slides-callback" }'

Pattern 2 — Recherche de thème avant génération

Pour une sortie cohérente avec votre marque, cherchez la bibliothèque de thèmes et fixez un

themeId
:

# Trouver un thème correspondant à "consulting" curl -sS "https://2slides.com/api/v1/themes/search?q=consulting&limit=5" \ -H "Authorization: Bearer sk-2slides-xxx" | jq '.themes[].id' # Utiliser l'id retourné dans generate()

Pattern 3 — Clonage de style depuis une référence de marque

Si vous avez un template de marque sous forme d'image, utilisez

create-like-this
au lieu de
generate
:

curl -X POST https://2slides.com/api/v1/slides/create-like-this \ -H "Authorization: Bearer sk-2slides-xxx" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Rapport des ventes Q1 2026", "referenceImageUrl": "https://votre-cdn.fr/slide-marque.png", "page": 12 }'

Cela renvoie de manière synchrone un PDF + URL du workspace. Aucune autre API de présentation IA ne propose ce pattern de clonage de style au Q2 2026.


Foire aux questions

Puis-je utiliser l'API 2Slides dans des produits commerciaux?

Oui, sans restriction. Construisez des produits SaaS, outils internes, fonctionnalités white-label ou features client sur l'API. Les limites standard (60 RPM) s'appliquent; contactez les ventes pour des limites plus élevées.

Y a-t-il un sandbox ou un environnement de test?

Pas de sandbox séparé. Utilisez votre clé API réelle avec de petits packs de crédits (5 $/2.000 crédits) pour tester. Tous les endpoints acceptent un paramètre

dryRun: true
qui valide la structure de la requête sans consommer de crédits.

Quelle est la latence du mode synchrone?

Typiquement 15-45 secondes pour une présentation de 10 slides en 2K, selon la complexité des images IA et le template choisi. Pour une latence déterministe en production, utilisez

mode: "async"
avec polling (toutes les 3-5 secondes) ou callbacks
webhookUrl
.

Comment le serveur MCP de 2Slides se compare-t-il à celui de SlideSpeak?

2Slides expose trois outils —

slides_generate
,
themes_search
,
jobs_get
— couvrant la génération, la recherche de thèmes et le statut asynchrone. Le MCP de SlideSpeak expose une surface plus petite axée sur la conversion de fichiers. Pour la plupart des workflows agent (Claude Desktop, Cursor, agents LangChain personnalisés), 2Slides est plus capable.

Puis-je auto-héberger au lieu d'utiliser une API gérée?

Pour 2Slides spécifiquement, non — c'est un service géré. Si l'auto-hébergement est obligatoire, Presenton (Apache 2.0) est l'alternative open-source la plus crédible en 2026.

Et les limites de débit en cas de trafic en rafale?

Par défaut 60 RPM par clé API. Pour les charges en rafale (par exemple un bot Slack qui déclenche 200 générations parallèles aux heures de bureau), le pattern recommandé est: mode asynchrone + une queue (BullMQ, SQS, etc.) de votre côté. Contactez les ventes si vous avez une charge production prévisible élevée.


Lectures connexes


Commencez à construire — créez votre clé API 2Slides et livrez votre premier deck en moins de 30 secondes.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free