


AI 演示文稿 API 对比与代码示例:2Slides vs SlideSpeak vs Canva(2026)
写给已经知道需要 API 的开发者。 本文是带代码的横向对比。如果你还在判断 什么是 AI 演示文稿 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 | 在 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 | 端点、格式、语种最全 |
| 自托管、开源 | Presenton | Apache 2.0,源码完整 |
| 仅 PDF 转幻灯片 | 2Slides 或 SlideSpeak | 都支持文件输入 |
| AI 智能体集成(MCP) | 2Slides | 完整 MCP,含 slides_generatethemes_searchjobs_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-CN", 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-CN" } 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生产模式
模式 1 — Webhook 回调(替代轮询)
2Slides 在
/slides/generatewebhookUrlcurl -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-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": "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"webhookUrl2Slides 的 MCP 服务器和 SlideSpeak 的相比怎么样?
2Slides 暴露三个工具 —
slides_generatethemes_searchjobs_get能不能不用托管 API,自己搭?
2Slides 本身不行 — 是托管服务。如果一定要自托管,Presenton(Apache 2.0)是 2026 年最可信的开源替代。
突发流量下的速率限制怎么办?
默认每 API key 每分钟 60 次。突发型负载(比如工作时间一个 Slack 机器人触发 200 个并发生成)推荐:异步模式 + 你侧加一个队列(BullMQ、SQS 等)。可预测的高生产负载请联系销售调升上限。
相关阅读
- 面向开发者的最佳 AI 演示文稿 API(完整指南) — 定义型 hub:什么是 AI 演示文稿 API、为何用、价格模型、MCP 概览
- 用 Claude 制作演示文稿(带 MCP) — 智能体驱动的生成走读
- 企业级 AI 演示文稿工具横评 — SSO / SOC 2 / 审计日志
开始构建 — 创建 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