


So Sánh API Tạo Slide AI với Ví Dụ Code: 2Slides vs SlideSpeak vs Canva (2026)
Dành cho dev đã biết mình cần API. Bài này là so sánh trực tiếp kèm code. Nếu bạn vẫn đang tìm hiểu API tạo slide AI là gì hoặc bạn có cần không, hãy bắt đầu với hướng dẫn dành cho developer đầy đủ — bao gồm định nghĩa, giá, MCP và mẫu kiến trúc. Trang này tiếp nối từ chỗ hướng dẫn đó kết thúc.
Nếu bạn cần tạo slide bằng cách lập trình — cho tích hợp SaaS, báo cáo tự động hoặc workflow agent AI — bạn cần một API tạo slide. Đáng ngạc nhiên là rất ít công cụ AI cung cấp API. So sánh và code ở dưới.
Bức tranh tổng quan (kiểm chứng tháng 5/2026)
| Công cụ | Có API | Loại API | Tài liệu | Hỗ trợ MCP | PPTX gốc |
|---|---|---|---|---|---|
| 2Slides | ✅ REST API đầy đủ | REST + JSON-RPC MCP | ✅ Toàn diện | ✅ | ✅ |
| SlideSpeak | ✅ Hạn chế | REST + MCP | Một phần | ✅ | Một phần |
| Canva | ✅ (Canva Connect) | REST | ✅ | ❌ | Qua template |
| Gamma | ❌ | — | — | ❌ | ❌ |
| Beautiful.ai | ❌ | — | — | ❌ | ❌ |
| SlidesAI | ❌ (chỉ add-on) | — | — | ❌ | Chỉ Google Slides |
| Presenton | ✅ Mã nguồn mở self-host | REST | ✅ | ❌ | ✅ |
Kết luận chính: với việc tạo slide AI ở dạng dịch vụ được quản lý, 2Slides là lựa chọn đầy đủ nhất. SlideSpeak cung cấp truy cập API một phần. API của Canva phục vụ mục đích khác (chỉnh sửa thiết kế, không phải tạo bằng AI). Phần còn lại không có API công khai. Nếu cần tự host, Presenton (Apache 2.0) là lựa chọn thực tế duy nhất.
API 2Slides — đầy đủ tính năng
Endpoint
| Endpoint | Method | Mô tả |
|---|---|---|
/api/v1/slides/generate | POST | Tạo slide từ văn bản |
/api/v1/slides/create-like-this | POST | Tạo theo ảnh tham chiếu |
/api/v1/slides/create-pdf-slides | POST | Chuyển file thành slide |
/api/v1/slides/generate-narration | POST | Thêm thuyết minh AI |
/api/v1/slides/download-slides-pages-voices | POST | Tải về kèm âm thanh |
/api/v1/jobs/{id} | GET | Trạng thái job bất đồng bộ |
/api/v1/themes/search | GET | Tìm trong 1.500+ template |
/api/mcp | JSON-RPC 2.0 | Endpoint MCP cho agent AI |
Bắt đầu nhanh
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" }'
Giá
- Theo credit, không tính phí mỗi lần gọi
- ~1 credit cho mỗi trang slide
- 100-200 credit cho mỗi ảnh AI (theo độ phân giải)
- Gói: từ $5 (2.000 credit) đến $80 (40.000 credit, giảm tới 20% theo lượng)
- Gói Pro: $12,50/tháng cho 10.000 credit
Giới hạn tốc độ
- 60 request/phút mỗi API key
- Khuyến nghị chế độ bất đồng bộ () cho production
mode: "async"
API SlideSpeak — hạn chế
Có sẵn
- Chuyển PDF/DOCX → slide
- Tạo bằng AI cơ bản
- MCP server cho agent AI (cộng đồng)
Hạn chế
- Ít chế độ tạo hơn 2Slides
- Không có nhân bản phong cách thiết kế (không có )
create-like-this - Không có thuyết minh giọng nói hoặc video qua API
- Tài liệu kém đầy đủ; một số endpoint chỉ cho đối tác
Giá
- $29/tháng Premium (50 credit)
- $34/tháng Premium Plus (fair-use "không giới hạn")
API Canva — danh mục khác
API Canva Connect mạnh nhưng giải quyết vấn đề khác.
- Trọng tâm: thao tác thiết kế bằng lập trình, không phải tạo bằng AI
- Use case: điền dữ liệu vào template Canva theo lập trình
- Hạn chế: bạn điền template, không tạo slide mới từ prompt. Phần "AI" của Canva (Magic Design, Magic Write) KHÔNG được expose qua API công khai tính đến Q2 2026
Nếu use case của bạn là "điền template Canva qua code", Canva là đúng cho việc đó. Nếu là "đưa prompt và lấy về slide deck hoàn chỉnh", Canva là công cụ sai.
Chọn đúng API (ma trận quyết định)
| Nhu cầu | Lựa chọn tốt nhất | Vì sao |
|---|---|---|
| Tạo bằng AI đầy đủ, dịch vụ quản lý | 2Slides | Nhiều endpoint, định dạng và ngôn ngữ nhất |
| Tự host, mã nguồn mở | Presenton | Apache 2.0, mã nguồn đầy đủ |
| Chỉ chuyển PDF sang slide | 2Slides hoặc SlideSpeak | Cả hai hỗ trợ đầu vào file |
| Tích hợp agent AI (MCP) | 2Slides | MCP đầy đủ với slides_generatethemes_searchjobs_get |
| Điền thiết kế theo template | Canva Connect | Hệ thống template phong phú + brand kits |
| Ngân sách dưới $5/tháng | 2Slides | Gói credit từ $5; SlideSpeak từ $29/tháng |
| Thuyết minh giọng + xuất MP4 | 2Slides | API duy nhất trên thị trường có H.264 + giọng AI nhiều người nói |
Ví dụ tích hợp
Node.js / TypeScript
// 2slides-generate.ts // Tạo bất đồng bộ với polling. Mẫu sẵn sàng cho production. // pnpm add ofetch (hoặc dùng fetch trực tiếp ở 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. Khởi chạy job (chế độ bất đồng bộ) 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 đến khi hoàn tất (tối đa 5 phút) 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('Hết thời gian chờ tạo') } // Sử dụng: const result = await generateDeck({ topic: 'Đánh giá doanh số Q1 2026 cho ban điều hành', resolution: '2K', }) console.log('Tải xuống:', result.downloadUrl)
Python
# 2slides_generate.py # Tạo bất đồng bộ với polling. Cùng mẫu với ví dụ 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 = "vi", 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("Hết thời gian chờ tạo") if __name__ == "__main__": result = generate_deck( topic="Đánh giá doanh số Q1 2026 cho ban điều hành", resolution="2K", ) print("Tải xuống:", result["downloadUrl"])
cURL / Shell
#!/usr/bin/env bash # 2slides-generate.sh — chế độ đồng bộ cho prototype nhanh. # Chế độ bất đồng bộ được ưu tiên ở production (xem Node/Python phía trên). set -euo pipefail API_KEY="${TWOSLIDES_API_KEY:?Đặt TWOSLIDES_API_KEY trước}" 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": "vi" } JSON
Gọi qua MCP (cho agent AI)
Nếu bạn gọi 2Slides từ Claude Desktop, Cursor hoặc bất kỳ agent tương thích MCP nào, bạn không viết code HTTP. Bạn cấu hình MCP server một lần và agent gọi tool một cách native:
{ "mcpServers": { "2slides": { "command": "npx", "args": ["2slides-mcp"], "env": { "API_KEY": "sk-2slides-xxx" } } } }
Sau đó ra lệnh cho agent: "Tạo pitch deck 12 slide cho startup fintech về thanh toán nhúng, bằng tiếng Việt, độ phân giải 2K." Agent gọi
slides_generateMẫu production
Mẫu 1 — Webhook callback (thay vì polling)
2Slides hỗ trợ tham số
webhookUrl/slides/generatecurl -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" }'
Mẫu 2 — Tìm theme trước khi tạo
Để output nhất quán với thương hiệu, tìm trong thư viện theme và cố định một
themeId# Tìm theme khớp với "consulting" curl -sS "https://2slides.com/api/v1/themes/search?q=consulting&limit=5" \ -H "Authorization: Bearer sk-2slides-xxx" | jq '.themes[].id' # Dùng id trả về trong generate()
Mẫu 3 — Nhân bản style từ tham chiếu thương hiệu
Nếu bạn có template thương hiệu dạng ảnh, dùng
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": "Báo cáo doanh số Q1 2026", "referenceImageUrl": "https://your-cdn.com/brand-slide.png", "page": 12 }'
Trả về đồng bộ một PDF + URL workspace. Tính đến Q2 2026, không API tạo slide AI nào khác cung cấp mẫu nhân bản style này.
Câu hỏi thường gặp
Tôi có thể dùng API 2Slides cho sản phẩm thương mại không?
Có, không hạn chế. Bạn có thể xây dựng sản phẩm SaaS, công cụ nội bộ, tính năng white-label hoặc tính năng hướng tới khách hàng trên API. Áp dụng giới hạn chuẩn (60 RPM); liên hệ sales nếu cần giới hạn cao hơn.
Có sandbox hoặc môi trường thử nghiệm không?
Không có sandbox riêng. Hãy dùng API key thật với gói credit nhỏ ($5/2.000 credit) để thử nghiệm. Mọi endpoint chấp nhận tham số
dryRun: trueĐộ trễ chế độ đồng bộ là bao nhiêu?
Thông thường 15-45 giây cho slide deck 10 trang ở 2K, tùy độ phức tạp ảnh AI và template. Để có độ trễ dự đoán được trong production, dùng
mode: "async"webhookUrlMCP server của 2Slides so với SlideSpeak ra sao?
2Slides expose ba tool —
slides_generatethemes_searchjobs_getTôi có thể self-host thay vì dùng API quản lý không?
Riêng 2Slides thì không — đây là dịch vụ được quản lý. Nếu self-hosting là yêu cầu bắt buộc, Presenton (Apache 2.0) là phương án mã nguồn mở đáng tin cậy nhất trong 2026.
Còn rate limit khi traffic burst thì sao?
Mặc định 60 RPM mỗi API key. Với workload nặng burst (ví dụ Slack bot kích hoạt 200 lần tạo song song trong giờ làm việc), mẫu được khuyến nghị: chế độ bất đồng bộ + một queue (BullMQ, SQS, v.v.) ở phía bạn. Liên hệ sales để nâng giới hạn nếu bạn có tải production cao và dự đoán được.
Bài đọc liên quan
- API tạo slide AI tốt nhất cho developer (hướng dẫn đầy đủ) — hub định nghĩa: API tạo slide là gì, vì sao dùng, mô hình giá, tổng quan MCP
- Cách dùng Claude để tạo slide (kèm MCP) — walkthrough tạo bằng agent
- So sánh công cụ tạo slide AI cho doanh nghiệp — SSO / SOC 2 / nhật ký kiểm toán
Bắt đầu xây dựng — tạo API key 2Slides của bạn và ship deck đầu tiên trong chưa đến 30 giây.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free