2Slides Logo
Perbandingan API Presentasi AI dengan Contoh Kode: 2Slides vs SlideSpeak vs Canva (2026)
2Slides Team
9 min read

Sampul perbandingan API presentasi AI dengan contoh kode

Perbandingan API Presentasi AI dengan Contoh Kode: 2Slides vs SlideSpeak vs Canva (2026)

Untuk developer yang sudah tahu butuh API. Artikel ini adalah perbandingan langsung dengan kode. Jika Anda masih mencari tahu apa itu API presentasi AI atau apakah Anda butuh, mulailah dengan panduan developer lengkap kami — mencakup definisi, harga, MCP, dan pola arsitektur. Halaman ini melanjutkan dari tempat panduan tersebut berakhir.

Jika Anda perlu menghasilkan presentasi secara programatis — dari integrasi SaaS hingga pelaporan otomatis atau alur kerja agen AI — Anda butuh API presentasi. Mengejutkan, sangat sedikit alat presentasi AI yang menawarkannya. Berikut perbandingan dan kodenya.

Lanskap (diverifikasi Mei 2026)

ToolAPI tersediaTipe APIDokumentasiDukungan MCPPPTX native
2Slides✅ REST API lengkapREST + JSON-RPC MCP✅ Komprehensif
SlideSpeak✅ TerbatasREST + MCPSebagianSebagian
Canva✅ (Canva Connect)RESTLewat template
Gamma
Beautiful.ai
SlidesAI❌ (hanya add-on)Hanya Google Slides
Presenton✅ Open-source self-hostREST

Kesimpulan utama: untuk generasi presentasi AI sebagai layanan terkelola, 2Slides adalah opsi paling lengkap. SlideSpeak menawarkan akses API parsial. API Canva melayani tujuan berbeda (manipulasi desain, bukan generasi AI). Sisanya tidak punya API publik. Untuk alternatif self-hosted, Presenton (Apache 2.0) adalah satu-satunya pilihan realistis.


API 2Slides — Fitur Lengkap

Endpoint

EndpointMethodDeskripsi
/api/v1/slides/generate
POSTHasilkan slide dari teks
/api/v1/slides/create-like-this
POSTHasilkan dengan referensi gambar
/api/v1/slides/create-pdf-slides
POSTKonversi file ke slide
/api/v1/slides/generate-narration
POSTTambahkan narasi suara AI
/api/v1/slides/download-slides-pages-voices
POSTUnduh dengan audio
/api/v1/jobs/{id}
GETStatus job asinkron
/api/v1/themes/search
GETCari di 1.500+ template
/api/mcp
JSON-RPC 2.0Endpoint MCP untuk agen AI

Mulai Cepat

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" }'

Harga

  • Berbasis kredit, tanpa biaya per panggilan
  • ~1 kredit per halaman slide
  • 100-200 kredit per gambar AI (tergantung resolusi)
  • Paket: $5 (2.000 kredit) hingga $80 (40.000 kredit, diskon volume hingga 20%)
  • Langganan Pro: $12,50/bulan untuk 10.000 kredit

Rate Limit

  • 60 request per menit per API key
  • Mode asinkron (
    mode: "async"
    ) direkomendasikan untuk produksi

API SlideSpeak — Terbatas

Yang tersedia

  • Konversi PDF/DOCX → slide
  • Generasi AI dasar
  • Server MCP untuk agen AI (komunitas)

Keterbatasan

  • Lebih sedikit mode generasi dibanding 2Slides
  • Tidak ada kloning gaya desain (tidak ada padanan
    create-like-this
    )
  • Tidak ada narasi suara atau video via API
  • Dokumentasi kurang komprehensif; beberapa endpoint hanya untuk partner

Harga

  • $29/bulan Premium (50 kredit)
  • $34/bulan Premium Plus (fair-use "tanpa batas")

API Canva — Kategori Berbeda

Canva Connect API kuat tapi memecahkan masalah berbeda.

  • Fokus: manipulasi desain programatis, bukan generasi AI
  • Use case: mengisi template Canva dengan data secara programatis
  • Keterbatasan: Anda mengisi template, bukan menghasilkan presentasi baru dari prompt. Bagian "AI" Canva (Magic Design, Magic Write) TIDAK tersedia di API publik per Q2 2026

Jika use case Anda "mengisi template Canva secara programatis", Canva memang dirancang untuk itu. Jika "diberi prompt ini, kembalikan slide deck jadi", Canva adalah tool yang salah.


Memilih API yang Tepat (Matriks Keputusan)

KebutuhanPilihan terbaikAlasan
Generasi AI penuh, layanan terkelola2SlidesEndpoint, format, bahasa terbanyak
Self-hosted, open sourcePresentonApache 2.0, kode sumber lengkap
Hanya PDF ke slide2Slides atau SlideSpeakKeduanya mendukung input file
Integrasi agen AI (MCP)2SlidesMCP penuh dengan
slides_generate
/
themes_search
/
jobs_get
Pengisian desain berbasis templateCanva ConnectSistem template kaya + brand kits
Anggaran di bawah $5/bulan2SlidesPaket kredit mulai $5; SlideSpeak mulai $29/bulan
Narasi suara + ekspor MP42SlidesSatu-satunya API di pasar dengan H.264 + suara AI multi-pembicara

Contoh Integrasi

Node.js / TypeScript

// 2slides-generate.ts // Generasi asinkron dengan polling. Pola siap produksi. // pnpm add ofetch (atau gunakan fetch langsung di 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. Mulai job (mode asinkron) 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 hingga selesai (maks 5 menit) 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('Timeout menunggu generasi') } // Penggunaan: const result = await generateDeck({ topic: 'Tinjauan penjualan Q1 2026 untuk tim eksekutif', resolution: '2K', }) console.log('Unduh:', result.downloadUrl)

Python

# 2slides_generate.py # Generasi asinkron dengan polling. Pola sama dengan contoh 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 = "id", 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("Timeout menunggu generasi") if __name__ == "__main__": result = generate_deck( topic="Tinjauan penjualan Q1 2026 untuk tim eksekutif", resolution="2K", ) print("Unduh:", result["downloadUrl"])

cURL / Shell

#!/usr/bin/env bash # 2slides-generate.sh — mode sinkron untuk prototyping cepat. # Mode asinkron lebih disukai di produksi (lihat Node/Python di atas). set -euo pipefail API_KEY="${TWOSLIDES_API_KEY:?Atur TWOSLIDES_API_KEY terlebih dahulu}" 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": "id" } JSON

Panggilan via MCP (untuk agen AI)

Jika Anda memanggil 2Slides dari Claude Desktop, Cursor, atau agen MCP-kompatibel lainnya, Anda tidak menulis kode HTTP. Anda mengonfigurasi server MCP sekali dan agen memanggil tool secara native:

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

Kemudian beri perintah pada agen: "Hasilkan pitch deck 12-slide untuk startup fintech tentang pembayaran tertanam, dalam Bahasa Indonesia, resolusi 2K." Agen memanggil

slides_generate
secara otomatis. Spesifikasi tool lengkap di repo open-source server MCP.


Pola Produksi

Pola 1 — Webhook callback (alih-alih polling)

2Slides mendukung parameter

webhookUrl
di
/slides/generate
. Berikan endpoint Anda dan lewati seluruh loop polling:

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" }'

Pola 2 — Cari tema sebelum generasi

Untuk output yang konsisten dengan brand, cari pustaka tema dan tetapkan

themeId
:

# Temukan tema yang cocok dengan "consulting" curl -sS "https://2slides.com/api/v1/themes/search?q=consulting&limit=5" \ -H "Authorization: Bearer sk-2slides-xxx" | jq '.themes[].id' # Gunakan id yang dikembalikan di generate()

Pola 3 — Kloning gaya dari referensi brand

Jika Anda punya template brand sebagai gambar, gunakan

create-like-this
alih-alih
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": "Laporan penjualan Q1 2026", "referenceImageUrl": "https://your-cdn.com/brand-slide.png", "page": 12 }'

Mengembalikan PDF + URL workspace secara sinkron. Per Q2 2026, tidak ada API presentasi AI lain yang menawarkan pola kloning gaya ini.


Pertanyaan yang Sering Diajukan

Bisakah saya menggunakan API 2Slides di produk komersial?

Ya, tanpa batasan. Bangun produk SaaS, alat internal, fitur white-label, atau fitur menghadap pelanggan di atas API. Rate limit standar (60 RPM) berlaku; hubungi tim sales untuk batas lebih tinggi.

Apakah ada sandbox atau lingkungan tes?

Tidak ada sandbox terpisah. Gunakan API key asli dengan paket kredit kecil ($5/2.000 kredit) untuk pengujian. Semua endpoint menerima parameter

dryRun: true
yang memvalidasi struktur request tanpa mengonsumsi kredit.

Berapa latensi mode sinkron?

Biasanya 15-45 detik untuk presentasi 10 slide pada 2K, tergantung kompleksitas gambar AI dan template. Untuk latensi deterministik di produksi, gunakan

mode: "async"
dengan polling (setiap 3-5 detik) atau callback
webhookUrl
.

Bagaimana server MCP 2Slides dibandingkan dengan SlideSpeak?

2Slides mengekspos tiga tool —

slides_generate
,
themes_search
,
jobs_get
— yang mencakup generasi, penemuan tema, dan status asinkron. MCP SlideSpeak mengekspos permukaan lebih kecil yang berfokus pada konversi file. Untuk sebagian besar alur kerja agen-driven (Claude Desktop, Cursor, agen LangChain kustom), 2Slides lebih mumpuni.

Bisakah saya self-host alih-alih menggunakan API terkelola?

Untuk 2Slides spesifik, tidak — ini adalah layanan terkelola. Jika self-hosting adalah persyaratan keras, Presenton (Apache 2.0) adalah alternatif open-source paling kredibel di 2026.

Bagaimana dengan rate limit saat trafik burst?

Default 60 RPM per API key. Untuk beban berat-burst (mis., bot Slack yang men-trigger 200 generasi paralel selama jam kerja), pola yang direkomendasikan: mode asinkron + antrian (BullMQ, SQS, dll.) di sisi Anda. Hubungi sales untuk peningkatan rate limit jika Anda punya beban produksi yang dapat diprediksi tinggi.


Bacaan Terkait


Mulai membangun — buat API key 2Slides Anda dan kirim deck pertama Anda dalam waktu kurang dari 30 detik.

About 2Slides

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

Try For Free