2Slides Logo
AI 簡報 API 比較與程式碼範例:2Slides vs SlideSpeak vs Canva(2026)
2Slides Team
7 min read

AI 簡報 API 比較與程式碼範例封面

AI 簡報 API 比較與程式碼範例:2Slides vs SlideSpeak vs Canva(2026)

寫給已經知道需要 API 的開發者。 本文是帶程式碼的橫向比較。如果你還在判斷 什麼是 AI 簡報 API、自己是否需要,請先看 開發者完整指南 — 涵蓋定義、價格、MCP 與架構模式。本頁接著那裡繼續。

如果你需要以程式方式產生簡報 — 用於 SaaS 整合、自動化報表,或 AI 代理工作流程 — 那你就需要一個簡報 API。市面上提供 API 的 AI 簡報工具出乎意料地少。下面是比較與程式碼。

全景(2026 年 5 月核實)

工具提供 APIAPI 類型文件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
POST加上 AI 語音旁白
/api/v1/slides/download-slides-pages-voices
POST帶音訊下載
/api/v1/jobs/{id}
GET非同步任務狀態
/api/v1/themes/search
GET在 1500+ 範本庫中搜尋
/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" }'

價格

  • 點數制,無單次呼叫費用
  • 每頁投影片約 1 點
  • 每張 AI 圖像 100-200 點(按解析度)
  • 點數包:5 美元(2,000 點)到 80 美元(40,000 點,約 20% 量級折扣)
  • Pro 訂閱:12.50 美元/月,10,000 點

速率限制

  • 每個 API key 每分鐘 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完整 MCP,含
slides_generate
/
themes_search
/
jobs_get
範本填充式設計Canva Connect範本系統 + brand kit 豐富
月預算 5 美元以下2Slides點數包 5 美元起;SlideSpeak 29 美元/月起
語音旁白 + MP4 匯出2Slides市面唯一支援 H.264 + 多語者 AI 語音的 API

整合範例

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 = "zh-TW", 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": "zh-TW" } JSON

透過 MCP 呼叫(給 AI 代理)

如果你從 Claude Desktop、Cursor 或任何相容 MCP 的代理裡呼叫 2Slides,根本不需要寫 HTTP 程式碼。設定 MCP 伺服器一次,代理就會原生呼叫工具:

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

然後給代理下指令:「為一家做嵌入式支付的金融科技新創公司產生 12 頁投資人 pitch deck,繁體中文,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 — 用品牌參考圖複製風格

如果你有品牌範本的圖片,使用

create-like-this
而不是
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": "2026 Q1 銷售報告", "referenceImageUrl": "https://your-cdn.com/brand-slide.png", "page": 12 }'

會同步回傳 PDF + 工作區 URL。截至 2026 年 Q2,沒有別的 AI 簡報 API 提供這種風格複製能力。


常見問題

2Slides API 可以用在商業產品裡嗎?

可以,無任何限制。在 API 之上建構 SaaS 產品、內部工具、白標功能或面向客戶的特性都行。適用標準速率上限(每分鐘 60 次);更高額度請聯絡銷售。

有沙箱或測試環境嗎?

沒有獨立沙箱。用真實 API key + 小額點數包(5 美元/2,000 點)測試即可。所有端點都接受

dryRun: true
參數,僅校驗請求結構而不消耗點數。

同步模式延遲多少?

2K 解析度下 10 頁簡報一般 15-45 秒,取決於 AI 圖像複雜度與範本。正式環境希望延遲可預期,建議用

mode: "async"
+ 輪詢(每 3-5 秒)或
webhookUrl
回呼。

2Slides 的 MCP 伺服器與 SlideSpeak 的相比如何?

2Slides 暴露三個工具 —

slides_generate
themes_search
jobs_get
— 涵蓋生成、主題探索、非同步狀態。SlideSpeak 的 MCP 表面較小,主要做檔案轉換。多數代理驅動的生成工作流程(Claude Desktop、Cursor、自定義 LangChain 代理)下,2Slides 更強。

能不能不用託管 API、自己架?

2Slides 本身不行 — 是託管服務。如果一定要自架,Presenton(Apache 2.0)是 2026 年最可信的開源替代。

突發流量下的速率限制怎麼辦?

預設每 API key 每分鐘 60 次。突發型負載(例如工作時間一個 Slack 機器人觸發 200 個並發生成)建議:非同步模式 + 你方加一個佇列(BullMQ、SQS 等)。可預期的高正式負載請聯絡銷售提升上限。


相關閱讀


開始建構 — 建立 2Slides API key,30 秒內交付第一份投影片包。

About 2Slides

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

Try For Free