

Tutorial API 2slides - Panduan Lengkap Pembuatan Presentasi AI
Selamat datang di panduan komprehensif untuk API 2slides! Tutorial ini akan memandu Anda melalui semua yang perlu Anda ketahui untuk mengintegrasikan pembuatan presentasi bertenaga AI ke dalam aplikasi Anda.
Gambaran Umum
API 2slides memungkinkan Anda membuat presentasi profesional secara terprogram menggunakan AI. Dengan dukungan untuk berbagai jenis presentasi termasuk linimasa (timelines), peta jalan (roadmaps), peta pikiran (mind maps), dan lainnya, Anda dapat membuat slide yang menakjubkan dari input teks sederhana.
Fitur Utama
- Pembuatan Bertenaga AI: Secara otomatis membuat presentasi profesional dari teks
- Berbagai Jenis Template: Dukungan untuk linimasa, peta jalan, peta pikiran, pitch deck, infografis, dan lainnya
- Dukungan Multi-bahasa: Membuat konten dalam berbagai bahasa
- Pustaka Template yang Kaya: Akses ke ratusan template yang dirancang secara profesional
- Template Kustom: Unggah dan gunakan template slide kustom Anda sendiri
- Cari Template: Cari template melalui nama, kata kunci, dan tag
- Opsi Unduh: Dapatkan presentasi dalam format PowerPoint (.pptx)
- Pelacakan Status Real-time: Pantau kemajuan pembuatan dengan endpoint status pekerjaan
Jenis Presentasi Unggulan

Semua template presentasi tersedia di sini: 2slides Templates. Secara khusus, ada beberapa jenis presentasi unggulan yang bekerja sangat baik untuk tujuan dan skenario tertentu.
- Timeline Slides - Sempurna untuk linimasa proyek dan peristiwa sejarah
- Roadmap Slides - Ideal untuk peta jalan produk dan perencanaan proyek
- Mind Map Slides - Sangat baik untuk pemetaan konsep dan struktur pengetahuan
Memulai
URL Dasar
Semua permintaan API harus ditujukan ke:
https://2slides.com
Prasyarat
- Pengaturan Akun: Buat akun di 2slides.com
- Kunci API: Buat kunci API dari halaman manajemen API Anda
- Kredit: Pastikan Anda memiliki kredit yang cukup untuk pembuatan slide (10 kredit per halaman slide)
Mulai Cepat
- Dapatkan kunci API Anda dari halaman manajemen API
- Cari tema menggunakan endpoint pencarian tema, atau jelajahi template untuk mendapatkan ID tema slide
- Buat slide dengan konten Anda dan ID tema yang dipilih; ini mendukung panggilan sinkron dengan slide hasil yang dikembalikan dan panggilan asinkron dengan ID pekerjaan yang dikembalikan. Jika menggunakan panggilan sinkron, maka langkah 4 dan 5 tidak diperlukan
- Periksa status pekerjaan hingga selesai, URL unduhan slide yang dihasilkan akan diberikan
- Unduh presentasi Anda menggunakan URL unduhan yang disediakan
Autentikasi

Semua endpoint API memerlukan autentikasi menggunakan kunci API. Anda dapat mengelola kunci API Anda melalui antarmuka manajemen API.
Format Kunci API
Kunci API mengikuti format ini:
sk-2slides-{64-character-hex-string}
Metode Autentikasi
Header Otorisasi
Authorization: Bearer sk-2slides-your-api-key-here
Manajemen Kunci API
- Kunci Maksimal: Setiap pengguna dapat membuat hingga 10 kunci API
- Penamaan Kunci: Berikan nama deskriptif pada kunci Anda untuk identifikasi yang mudah
- Keamanan: Jaga keamanan kunci API Anda dan jangan pernah membagikannya secara publik
- Rotasi: Rotasi kunci API Anda secara teratur untuk keamanan yang ditingkatkan
⚠️ Pemberitahuan Keamanan Penting: Platform 2slides TIDAK menyimpan kunci API Anda dalam bentuk teks biasa demi alasan keamanan. Setelah dibuat, Anda harus segera menyalin dan menyimpan kunci API Anda dengan aman. Jika Anda kehilangan kunci API Anda, Anda perlu membuat yang baru karena yang asli tidak dapat dipulihkan.
Endpoint API
1. Buat Slide (Fast PPT)
Buat slide (Fast PPT) dari input teks menggunakan tema tertentu.
Endpoint:
POST /api/v1/slides/generateHeader:
Authorization: Bearer sk-2slides-your-api-key-here Content-Type: application/json
Isi Permintaan:
{ "userInput": "Your presentation content here...", "themeId": "theme-uuid-here", "responseLanguage": "Auto" }
Parameter:
- (wajib): Konten yang ingin Anda gunakan untuk membuat slide
userInput - (wajib): ID tema yang akan digunakan untuk pembuatan slide. Ini bisa berupa:
themeId- Tema publik dari galeri template
- Tema kustom Anda sendiri yang diunggah (dapat diakses melalui akun Anda)
- (opsional): Bahasa untuk slide yang dihasilkan. Gunakan "Auto" untuk deteksi otomatis
responseLanguage - (opsional): Panggilan sinkron (sync) atau asinkron (async), "sync" adalah default
mode
Bahasa yang Tersedia:
- - Deteksi bahasa otomatis dari input (default)
Auto - - Inggris
English - - Mandarin Sederhana
Simplified Chinese - - Mandarin Tradisional
Traditional Chinese - - Spanyol
Spanish - - Arab
Arabic - - Portugis
Portuguese - - Bahasa Indonesia
Indonesian - - Jepang
Japanese - - Rusia
Russian - - Hindi
Hindi - - Prancis
French - - Jerman
German - - Vietnam
Vietnamese - - Turki
Turkish - - Polandia
Polish - - Italia
Italian - - Korea
Korean
Respons dalam mode asinkron:
{ "success": true, "data": { "jobId": "job-uuid-here", "status": "processing", "message": "Slides generation started. Use the jobId to check status.", "credits": { "current": 150, "required": 30 } } }
Respons dalam mode sinkron:
{ "success": true, "data": { "jobId": "1pFqIww3JjquQ1T3Ysmw1", "status": "success", "message": "Slides generated successfully", "downloadUrl": "https://presigned-url-here", "createdAt": 1760347015388, "updatedAt": 1760347048261, "duration": 32694, "slidePageCount": 9 } }
2. Periksa Status Pekerjaan (Fast PPT)
Periksa status pekerjaan pembuatan slide (Fast PPT) dan dapatkan hasilnya setelah selesai.
Endpoint:
GET /api/v1/jobs/{jobId}Header:
Authorization: Bearer sk-2slides-your-api-key-here
Contoh Respons:
Sedang Diproses:
{ "success": true, "data": { "jobId": "job-uuid-here", "status": "processing", "message": "Slides generation in progress", "createdAt": 1703123456789, "updatedAt": 1703123460000 } }
Berhasil:
{ "success": true, "data": { "jobId": "job-uuid-here", "status": "success", "message": "Slides generated successfully", "downloadUrl": "https://presigned-url-here", "createdAt": 1703123456789, "updatedAt": 1703123500000, "duration": 33211, "slidePageCount": 3 } }
Gagal:
{ "success": true, "data": { "jobId": "job-uuid-here", "status": "failed", "message": "Slides generation failed", "errorMessage": "Insufficient credits for generation", "createdAt": 1703123456789, "updatedAt": 1703123460000 } }
3. Buat Slide Seperti Ini (Nano Banana Pro)
Buat slide (Nano Banana Pro) dari gambar referensi. Endpoint ini menggunakan mode sinkron dan secara otomatis menghasilkan PDF ketika semua slide selesai.
Endpoint:
POST /api/v1/slides/create-like-thisHeader:
Authorization: Bearer sk-2slides-your-api-key-here Content-Type: application/json
Isi Permintaan:
{ "userInput": "Your presentation content here...", "referenceImageUrl": "https://example.com/reference-image.jpg", "responseLanguage": "Auto", "aspectRatio": "16:9", "resolution": "2K", "page": 1 }
Parameter:
- (wajib): Konten yang ingin Anda gunakan untuk membuat slide
userInput - (wajib): URL gambar referensi untuk mengikuti gaya desain. Mendukung:
referenceImageUrl- URL HTTP/HTTPS
- URL data Base64 (data:image/...)
- (opsional): Bahasa untuk slide yang dihasilkan. Gunakan "Auto" untuk deteksi otomatis (default: "Auto")
responseLanguage - (opsional): Rasio aspek untuk slide. Format: "lebar:tinggi" (default: "16:9")
aspectRatio - (opsional): Resolusi untuk gambar slide. Opsi: "1K", "2K", "4K" (default: "2K")
resolution - (opsional): Jumlah slide yang akan dibuat. Gunakan 0 untuk deteksi otomatis. Tentukan angka (>=1, maks: 100) untuk memaksa jumlah slide tersebut. Default: 1.
page - (opsional): Tingkat detail konten untuk slide. Opsi: "concise" (ringkas, berfokus pada kata kunci) atau "standard" (komprehensif, detail). Default: "concise".
contentDetail
Respons:
{ "success": true, "data": { "jobId": "job-uuid-here", "status": "success", "message": "Successfully generated 5 slides", "downloadUrl": "https://presigned-url-to-pdf.pdf", "jobUrl": "https://2slides.com/workspace?jobId=job-uuid-here", "createdAt": 1703123456789, "updatedAt": 1703123500000, "slidePageCount": 5, "successCount": 5, "failedCount": 0 } }
Nilai Status:
- : Semua slide berhasil dibuat, PDF tersedia
success - : Beberapa slide gagal dibuat
partial - : Semua slide gagal dibuat
failed
Catatan: Endpoint ini berjalan dalam mode sinkron dan akan menunggu semua slide dibuat sebelum mengembalikan respons.
4. Cari Tema (Fast PPT)
Cari tema slide yang tersedia (Fast PPT) berdasarkan kata kunci. Ini mencakup tema publik dan tema kustom Anda sendiri yang diunggah.
Endpoint:
GET /api/v1/themes/searchHeader:
Authorization: Bearer sk-2slides-your-api-key-here
Parameter Kueri:
- (wajib): Kata kunci untuk mencari dalam nama tema, deskripsi, dan tag
query - (opsional): Jumlah hasil maksimum (1-100, default 20)
limit
Contoh Permintaan:
GET /api/v1/themes/search?query=timeline&limit=10
Respons:
{ "success": true, "data": { "total": 25, "themes": [ { "id": "theme-uuid-1", "name": "Modern Timeline", "description": "Clean and modern timeline template for project presentations", "tags": "timeline, modern, project, clean", "themeURL": "https://2slides.com/templates/st-1759917935785-nx0z6ae54" }, { "id": "theme-uuid-2", "name": "Business Roadmap", "description": "Professional roadmap template for business planning", "tags": "roadmap, business, planning, professional", "themeURL": "https://2slides.com/templates/st-1755509077270-sftfm616s" } ] } }
Pembatasan Tingkat Permintaan (Rate Limiting)
API menerapkan rate limiting untuk memastikan penggunaan yang adil dan stabilitas sistem. Setiap endpoint memiliki batas rate yang berbeda:
| Endpoint | Jendela Waktu | Permintaan Maks | Deskripsi |
|---|---|---|---|
/api/v1/slides/generate | 1 menit | 6 permintaan | Endpoint pembuatan inti |
/api/v1/slides/create-like-this | 1 menit | 6 permintaan | Buat slide dari gambar referensi |
/api/v1/jobs | 1 menit | 10 permintaan | Pengecekan status pekerjaan |
/api/v1/themes/search | 1 menit | 30 permintaan | Pencarian tema |
Header Rate Limit
Ketika batas rate terlampaui, API mengembalikan respons
429 Too Many RequestsHTTP/1.1 429 Too Many Requests X-RateLimit-Limit: 6 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 1703123600 Retry-After: 45
Menangani Rate Limit
Anda perlu menangani rate limit panggilan API dengan hati-hati, berikut adalah contoh dalam Javascript.
async function makeApiRequest(url, options) { try { const response = await fetch(url, options); if (response.status === 429) { const retryAfter = response.headers.get('Retry-After'); console.log(`Rate limited. Retry after ${retryAfter} seconds`); await new Promise(resolve => setTimeout(resolve, retryAfter * 1000)); return makeApiRequest(url, options); // Retry } return response; } catch (error) { console.error('API request failed:', error); throw error; } }
Sistem Kredit
2slides menggunakan sistem berbasis kredit untuk pembuatan slide. Setiap halaman slide berharga 10 kredit.
Aturan Kredit
- Pengguna Baru: Menerima 880 kredit gratis saat pendaftaran
- Biaya: 10 kredit per halaman slide (Fast PPT), 100 kredit per halaman slide 1K/2K Nano Banana Pro, 200 kredit per halaman slide 4K Nano Banana Pro
- Minimum: Pengguna membutuhkan setidaknya 10 kredit untuk memulai pembuatan
- Pengurangan: Kredit hanya dikurangi setelah pembuatan berhasil
- Pengembalian Dana: Kredit dikembalikan jika pembuatan gagal
Memeriksa Kredit
Anda dapat memeriksa saldo kredit Anda melalui dasbor akun atau dengan memeriksa informasi kredit dalam respons API.
Membeli Kredit
Kredit tambahan dapat dibeli melalui halaman harga menggunakan berbagai metode pembayaran.
Contoh
Contoh Alur Kerja Lengkap
Berikut adalah contoh lengkap pembuatan slide menggunakan API 2slides dalam Javascript dan Python:
const API_KEY = 'sk-2slides-your-api-key-here'; const BASE_URL = 'https://2slides.com'; async function generateSlides() { try { // Step 1: Search for a theme const themeResponse = await fetch( `${BASE_URL}/api/v1/themes/search?query=timeline&limit=5`, { headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' } } ); const themeData = await themeResponse.json(); const themeId = themeData.data.themes[0].id; // Step 2: Generate slides const generateResponse = await fetch( `${BASE_URL}/api/v1/slides/generate`, { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ userInput: "Create a timeline for our product development: Q1 - Research and planning, Q2 - MVP development, Q3 - Beta testing, Q4 - Public launch", themeId: themeId, responseLanguage: "English", mode: "async" }) } ); const generateData = await generateResponse.json(); const jobId = generateData.data.jobId; // Step 3: Poll for completion let jobStatus; do { await new Promise(resolve => setTimeout(resolve, 2000)); // Wait 2 seconds const statusResponse = await fetch( `${BASE_URL}/api/v1/jobs/${jobId}`, { headers: { 'Authorization': `Bearer ${API_KEY}` } } ); jobStatus = await statusResponse.json(); console.log(`Status: ${jobStatus.data.status}`); } while (jobStatus.data.status === 'processing' || jobStatus.data.status === 'pending'); // Step 4: Handle result if (jobStatus.data.status === 'success') { console.log('Slides generated successfully!'); console.log('Download URL:', jobStatus.data.downloadUrl); console.log('Pages generated:', jobStatus.data.slidePageCount); // Download the file const downloadResponse = await fetch(jobStatus.data.downloadUrl); const blob = await downloadResponse.blob(); // Create download link const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'presentation.pptx'; a.click(); window.URL.revokeObjectURL(url); } else { console.error('Generation failed:', jobStatus.data.errorMessage); } } catch (error) { console.error('Error:', error); } } // Run the example generateSlides();
Contoh Python
import requests import time import json API_KEY = 'sk-2slides-your-api-key-here' BASE_URL = 'https://2slides.com'; def generate_slides(): headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } try: # Step 1: Search for a theme theme_response = requests.get( f'{BASE_URL}/api/v1/themes/search', params={'query': 'roadmap', 'limit': 5}, headers=headers ) theme_data = theme_response.json() theme_id = theme_data['data']['themes'][0]['id'] # Step 2: Generate slides generate_payload = { 'userInput': 'Create a product roadmap for our mobile app: Phase 1 - Core features, Phase 2 - Advanced features, Phase 3 - AI integration', 'themeId': theme_id, 'responseLanguage': 'English', 'mode': 'async' } generate_response = requests.post( f'{BASE_URL}/api/v1/slides/generate', headers=headers, json=generate_payload ) generate_data = generate_response.json() job_id = generate_data['data']['jobId'] # Step 3: Poll for completion while True: time.sleep(2) # Wait 2 seconds status_response = requests.get( f'{BASE_URL}/api/v1/jobs/{job_id}', headers=headers ) status_data = status_response.json() status = status_data['data']['status'] print(f'Status: {status}') if status in ['success', 'failed']: break # Step 4: Handle result if status == 'success': print('Slides generated successfully!') print(f'Download URL: {status_data["data"]["downloadUrl"]}') print(f'Pages generated: {status_data["data"]["slidePageCount"]}') # Download the file download_response = requests.get(status_data['data']['downloadUrl']) with open('presentation.pptx', 'wb') as f: f.write(download_response.content) print('File downloaded as presentation.pptx') else: print(f'Generation failed: {status_data["data"]["errorMessage"]}') except Exception as error: print(f'Error: {error}') # Run the example generate_slides()
Contoh cURL
Cari tema:
curl -X GET "https://2slides.com/api/v1/themes/search?query=timeline&limit=5" \ -H "Authorization: Bearer sk-2slides-your-api-key-here" \ -H "Content-Type: application/json"
Buat slide:
curl -X POST "https://2slides.com/api/v1/slides/generate" \ -H "Authorization: Bearer sk-2slides-your-api-key-here" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Create a timeline for our project milestones", "themeId": "theme-uuid-here", "responseLanguage": "English", "mode": "async" }'
Periksa status pekerjaan:
curl -X GET "https://2slides.com/api/v1/jobs/job-uuid-here" \ -H "Authorization: Bearer sk-2slides-your-api-key-here"
Penanganan Kesalahan
API menggunakan kode status HTTP standar dan mengembalikan informasi kesalahan terperinci dalam format JSON.
Respons Kesalahan Umum
400 Permintaan Buruk:
{ "success": false, "error": "userInput is required and must be a non-empty string" }
401 Tidak Sah:
{ "success": false, "error": "Authentication required" }
403 Terlarang:
{ "success": false, "error": "Access denied" }
404 Tidak Ditemukan:
{ "success": false, "error": "Theme not found" }
429 Terlalu Banyak Permintaan:
{ "success": false, "error": "Rate limit exceeded" }
500 Kesalahan Server Internal:
{ "success": false, "error": "Internal server error" }
Praktik Terbaik Penanganan Kesalahan
async function handleApiRequest(url, options) { try { const response = await fetch(url, options); const data = await response.json(); if (!response.ok) { switch (response.status) { case 400: throw new Error(`Bad Request: ${data.error}`); case 401: throw new Error('Authentication failed. Please check your API key.'); case 403: throw new Error('Access denied. You may not have permission for this resource.'); case 404: throw new Error('Resource not found.'); case 429: throw new Error('Rate limit exceeded. Please try again later.'); case 500: throw new Error('Server error. Please try again later.'); default: throw new Error(`API Error: ${data.error || 'Unknown error'}`); } } return data; } catch (error) { if (error.name === 'TypeError' && error.message.includes('fetch')) { throw new Error('Network error. Please check your internet connection.'); } throw error; } }
Praktik Terbaik
1. Keamanan Kunci API
- Jangan pernah mengekspos kunci API dalam kode sisi klien atau repositori publik
- Gunakan variabel lingkungan untuk menyimpan kunci API dengan aman
- Rotasi kunci secara teratur untuk keamanan yang ditingkatkan
- Pantau penggunaan kunci melalui dasbor manajemen API
- Simpan kunci dengan aman: Ingatlah bahwa 2slides tidak menyimpan kunci API Anda, jadi Anda harus menjaganya tetap aman
- Cadangkan kunci Anda: Simpan kunci API dalam pengelola kata sandi yang aman atau penyimpanan terenkripsi
2. Penggunaan API yang Efisien
- Cache hasil pencarian tema untuk menghindari permintaan berulang
- Terapkan interval polling yang tepat untuk pengecekan status pekerjaan (2-5 detik)
- Tangani rate limit dengan anggun dengan exponential backoff
- Operasi batch jika memungkinkan untuk mengurangi panggilan API
3. Penanganan Kesalahan
- Selalu periksa kode status respons
- Terapkan logika coba lagi untuk kegagalan sementara
- Catat kesalahan dengan tepat untuk debugging
- Sediakan pesan kesalahan yang ramah pengguna
4. Optimasi Kinerja
- Gunakan interval polling yang tepat untuk menghindari permintaan yang tidak perlu
- Terapkan timeout permintaan untuk mencegah permintaan yang menggantung
- Cache data yang sering digunakan seperti informasi tema
- Pantau penggunaan kredit Anda untuk menghindari biaya tak terduga
5. Panduan Konten
- Sediakan input yang jelas dan terstruktur untuk pembuatan slide yang lebih baik
- Gunakan tema yang sesuai untuk jenis konten Anda
- Tentukan bahasa bila diperlukan untuk konten internasional
- Jaga konten tetap ringkas untuk tata letak slide yang optimal
Dukungan & Sumber Daya
Dokumentasi & Sumber Daya
- Dokumentasi API - Dokumentasi API interaktif dan playground
- Galeri Template - Jelajahi template slide yang tersedia
- Informasi Harga - Paket kredit dan harga
- Blog - Pembaruan dan tips terbaru
Mendapatkan Bantuan
- API Playground: Uji panggilan API Anda langsung di browser di 2slides.com/api
- Dasbor Akun: Kelola penggunaan kredit Anda di 2slides.com/account
- Dukungan: Hubungi dukungan melalui situs web utama
Komunitas & Pembaruan
- Pembaruan Fitur: Tetap terinformasi dengan fitur dan peningkatan baru
- Pustaka Template: Penambahan rutin template profesional baru
- Peningkatan API: Peningkatan berkelanjutan pada kinerja dan fitur API
Kesimpulan
API 2slides menyediakan cara yang kuat dan fleksibel untuk membuat presentasi profesional secara terprogram. Dengan set fitur yang komprehensif, penanganan kesalahan yang tangguh, dan pustaka template yang luas, Anda dapat mengintegrasikan pembuatan slide bertenaga AI ke dalam aplikasi atau alur kerja apa pun.
Mulai buat presentasi menakjubkan hari ini dengan API 2slides! Kunjungi 2slides.com/api untuk mendapatkan kunci API Anda dan mulai berkreasi.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free