2Slides Logo
AIプレゼンテーションAPI比較とコード例: 2Slides vs SlideSpeak vs Canva (2026年版)
2Slides Team
6 min read

AIプレゼンテーションAPI比較とコード例のカバー画像

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 APIREST + 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
POSTAI音声ナレーション追加
/api/v1/slides/download-slides-pages-voices
POST音声付きでダウンロード
/api/v1/jobs/{id}
GET非同期ジョブのステータス確認
/api/v1/themes/search
GET1,500以上のテンプレートを検索
/api/mcp
JSON-RPC 2.0AIエージェント向け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" }'

価格

  • クレジット制、コール課金なし
  • スライド1ページあたり約1クレジット
  • 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エンドポイント、フォーマット、言語数が最多
セルフホスト、オープンソースPresentonApache 2.0、ソース完全公開
PDFからスライドだけ2Slides または SlideSpeak両方ともファイル入力をサポート
AIエージェント統合 (MCP)2Slides
slides_generate
/
themes_search
/
jobs_get
のフルMCP
テンプレートベースのデザイン埋めCanva Connectリッチなテンプレート + ブランドキット
月額5ドル未満の予算2Slides5ドルからのクレジットパック。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" } JSON

MCP経由でのツールコール (AIエージェント向け)

Claude Desktop、Cursor、その他MCP互換のエージェントから2Slidesを呼び出す場合、HTTPコードを書く必要はありません。MCPサーバーを一度設定すれば、AIがツールをネイティブに呼び出します:

{ "mcpServers": { "2slides": { "command": "npx", "args": ["2slides-mcp"], "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?q=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 など) のパターンが推奨です。安定的に高い本番負荷がある場合は、引き上げをセールスにご相談ください。


関連記事


構築を開始 — 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