


AIプレゼンテーションAPI比較とコード例: 2Slides vs SlideSpeak vs Canva (2026年版)
すでにAPIが必要だと分かっている開発者向け。 この記事はコード付きの直接比較です。「AIプレゼンテーションAPIとは何か」「自分にAPIが必要か」をまだ判断中なら、まず開発者向け完全ガイドから始めてください。定義、価格、MCP、アーキテクチャパターンを扱っています。本ページはそのガイドが終わるところから始まります。
プレゼンテーションをプログラムで生成する必要がある場合 — SaaS統合、自動レポート、AIエージェントワークフローなど — プレゼンテーションAPIが必要です。意外なことに、APIを提供しているAIプレゼンテーションツールはごくわずかです。比較とコードを以下に示します。
ランドスケープ (2026年5月時点で検証済み)
| ツール | API提供 | API種別 | ドキュメント | MCPサポート | ネイティブPPTX |
|---|---|---|---|---|---|
| 2Slides | ✅ 完全なREST API | REST + JSON-RPC MCP | ✅ 充実 | ✅ | ✅ |
| SlideSpeak | ✅ 限定的 | REST + MCP | 部分的 | ✅ | 部分的 |
| Canva | ✅ (Canva Connect) | REST | ✅ | ❌ | デザインテンプレート経由 |
| Gamma | ❌ | — | — | ❌ | ❌ |
| Beautiful.ai | ❌ | — | — | ❌ | ❌ |
| SlidesAI | ❌ (アドオンのみ) | — | — | ❌ | Google Slidesのみ |
| Presenton | ✅ オープンソース・セルフホスト | REST | ✅ | ❌ | ✅ |
主な結論: AIプレゼンテーション生成のマネージドサービスとしては、2Slidesが最も完全な選択肢です。SlideSpeakは部分的なAPIアクセスを提供。CanvaのAPIは別の目的(デザイン操作、AI生成ではない)を担います。残りはパブリックAPIを持ちません。セルフホスト派の方には、Presenton (Apache 2.0) が現実的な唯一の選択肢です。
2Slides API — フル機能
エンドポイント
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/v1/slides/generate | POST | テキストからスライド生成 |
/api/v1/slides/create-like-this | POST | 参考画像からデザイン複製 |
/api/v1/slides/create-pdf-slides | POST | ファイルをスライドに変換 |
/api/v1/slides/generate-narration | POST | AI音声ナレーション追加 |
/api/v1/slides/download-slides-pages-voices | POST | 音声付きでダウンロード |
/api/v1/jobs/{id} | GET | 非同期ジョブのステータス確認 |
/api/v1/themes/search | GET | 1,500以上のテンプレートを検索 |
/api/mcp | JSON-RPC 2.0 | AIエージェント向けMCPエンドポイント |
クイックスタート
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"
}'価格
- クレジット制、コール課金なし
- Fast PPTスライド1ページあたり10クレジット(5ドルパックで約0.025ドル)
- AI画像1枚あたり100-200クレジット (解像度による)
- パック: 5ドル(2,000クレジット)から80ドル(40,000クレジット、最大20%のボリュームディスカウント)
- Proサブスクリプション: 12.50ドル/月で10,000クレジット
レート制限
- APIキーあたり毎分60リクエスト
- 本番運用では非同期モード (
mode: "async") を推奨
SlideSpeak API — 限定的
利用可能な機能
- PDF/DOCX → スライド変換
- 基本的なAI生成
- AIエージェント向けMCPサーバー (コミュニティ製)
制限
- 2Slidesより生成モードが少ない
- デザインスタイル複製なし (
create-like-this相当の機能なし) - API経由での音声ナレーション・動画なし
- ドキュメントが不十分。一部エンドポイントはパートナー限定
価格
- 29ドル/月 Premium (50クレジット)
- 34ドル/月 Premium Plus (公正利用「無制限」)
Canva API — 別カテゴリ
Canva Connect APIは強力ですが、別の問題を解決します。
- フォーカス: プログラマティックなデザイン操作。AIによる生成ではない
- ユースケース: Canvaテンプレートにデータを埋め込む
- 制限: テンプレートを埋めるのであって、プロンプトから新規プレゼンを生成するわけではない。CanvaのAI部分(Magic Design、Magic Write)は2026年Q2時点でパブリックAPIに公開されていない
「Canvaテンプレートをプログラムで埋めたい」なら、Canvaは目的どおりです。「このプロンプトから完成したスライドデッキを返してほしい」なら、Canvaは違うツールです。
適切なAPIの選び方 (意思決定マトリクス)
| ニーズ | ベスト | 理由 |
|---|---|---|
| AI生成のフル機能、マネージドサービス | 2Slides | エンドポイント、フォーマット、言語数が最多 |
| セルフホスト、オープンソース | Presenton | Apache 2.0、ソース完全公開 |
| PDFからスライドだけ | 2Slides または SlideSpeak | 両方ともファイル入力をサポート |
| AIエージェント統合 (MCP) | 2Slides | slides_generate / themes_search / jobs_get のフルMCP |
| テンプレートベースのデザイン埋め | Canva Connect | リッチなテンプレート + ブランドキット |
| 月額5ドル未満の予算 | 2Slides | 5ドルからのクレジットパック。SlideSpeakは月額29ドルから |
| 音声ナレーション + MP4エクスポート | 2Slides | 市場で唯一、H.264 + マルチスピーカーAI音声を提供 |
統合の例
Node.js / TypeScript
// 2slides-generate.ts
// 非同期生成 + ポーリング。本番運用パターン。
// pnpm add ofetch (または Node 18+ で fetch を直接使用)
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. ジョブ開始 (非同期モード)
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. 完了までポーリング (最大5分)
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('生成のタイムアウト')
}
// 使用例:
const result = await generateDeck({
topic: '2026年Q1の役員向け売上レビュー',
resolution: '2K',
})
console.log('ダウンロード:', result.downloadUrl)Python
# 2slides_generate.py
# 非同期生成 + ポーリング。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 = "ja",
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("生成のタイムアウト")
if __name__ == "__main__":
result = generate_deck(
topic="2026年Q1の役員向け売上レビュー",
resolution="2K",
)
print("ダウンロード:", result["downloadUrl"])cURL / Shell
#!/usr/bin/env bash
# 2slides-generate.sh — クイックプロトタイプ用の同期モード。
# 本番では非同期モード推奨 (上記のNode/Python参照)。
set -euo pipefail
API_KEY="${TWOSLIDES_API_KEY:?TWOSLIDES_API_KEYを先に設定してください}"
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": "ja"
}
JSONMCP経由でのツールコール (AIエージェント向け)
Claude Desktop、Cursor、その他MCP互換のエージェントから2Slidesを呼び出す場合、HTTPコードを書く必要はありません。MCPサーバーを一度設定すれば、AIがツールをネイティブに呼び出します:
{
"mcpServers": {
"2slides": {
"command": "npx",
"args": ["-y", "2slides-mcp@latest"],
"env": { "API_KEY": "sk-2slides-xxx" }
}
}
}その後、エージェントに次のように指示します: 「組み込み決済をテーマにしたフィンテックスタートアップ向けに、日本語で12ページのピッチデックを生成。解像度は2K。」 エージェントは自動的に slides_generate を呼び出します。フルなツール仕様はMCPサーバーのオープンソースリポジトリを参照してください。
本番運用パターン
パターン1 — Webhookコールバック (ポーリングの代替)
2Slidesは /slides/generate で webhookUrl パラメータをサポートします。エンドポイントを指定すれば、ポーリングループは不要です:
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://your-app.com/api/2slides-callback"
}'パターン2 — 生成前のテーマ検索
ブランドに沿った出力には、テーマライブラリを検索して themeId を固定します:
# 「consulting」に合致するテーマを検索
curl -sS "https://2slides.com/api/v1/themes/search?query=consulting&limit=5" \
-H "Authorization: Bearer sk-2slides-xxx" | jq '.themes[].id'
# 返されたidをgenerate()で使用パターン3 — ブランド参照画像からのスタイル複製
ブランドテンプレートの画像があれば、generate ではなく create-like-this を使います:
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": "Q1 2026 売上レポート",
"referenceImageUrl": "https://your-cdn.com/brand-slide.png",
"page": 12
}'これは同期的にPDF + ワークスペースURLを返します。2026年Q2時点で、このスタイル複製パターンを提供するAIプレゼンテーションAPIは他にありません。
よくある質問
2Slides APIは商用製品で使えますか?
はい、制限はありません。SaaS製品、社内ツール、ホワイトラベル機能、顧客向け機能をAPI上に構築できます。標準のレート制限 (60 RPM) が適用されます。より高い上限はセールスにご相談ください。
サンドボックスやテスト環境はありますか?
専用のサンドボックスはありません。本物のAPIキーを使い、小さなクレジットパック (5ドル/2,000クレジット) でテストしてください。すべてのエンドポイントは dryRun: true パラメータをサポートし、クレジットを消費せずにリクエスト構造を検証できます。
同期モードのレイテンシはどれくらい?
2Kで10ページのプレゼンの場合、画像複雑度とテンプレートに応じて通常15-45秒です。本番でレイテンシを安定させたい場合は、mode: "async" + ポーリング (3-5秒間隔) または webhookUrl コールバックを使ってください。
2SlidesのMCPサーバーはSlideSpeakのものとどう違う?
2Slidesは3つのツール — slides_generate、themes_search、jobs_get — を公開し、生成、テーマ検索、非同期ステータスをカバーします。SlideSpeakのMCPはファイル変換中心の小さい表面を公開しています。エージェント駆動の生成ワークフロー (Claude Desktop、Cursor、カスタムLangChainエージェント) では2Slidesがより高機能です。
マネージドAPIではなくセルフホストできますか?
2Slides自体はマネージドサービスのため不可です。セルフホストが必須要件なら、Presenton (Apache 2.0) が2026年時点で最も信頼できるオープンソース代替です。
バーストトラフィックでのレート制限は?
デフォルトはAPIキーあたり60 RPMです。バースト型のワークロード (例: 営業時間に200並列生成を発火するSlackボット) には、非同期モード + あなた側のキュー (BullMQ、SQS など) のパターンが推奨です。安定的に高い本番負荷がある場合は、引き上げをセールスにご相談ください。
関連記事
- 開発者向けベストAIプレゼンテーションAPI (完全ガイド) — 定義ハブ: AIプレゼンテーションAPIとは、なぜ使うのか、価格モデル、MCP概要
- Claudeでプレゼンテーションを作る方法 (MCPあり) — エージェント主導の生成ウォークスルー
- 企業向けAIプレゼンテーションツール比較 — SSO / SOC 2 / 監査ログ
構築を開始 — 2Slides APIキーを作成し、最初のスライドデッキを30秒以内に生成。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free