Referensi Integrasi API v1 (API v1 Reference)
Spesifikasi teknis REST API v1 untuk membaca katalog video siap putar, struktur folder, identitas akun, dan panduan pengujian integrasi backend.
Antarmuka Pemrograman Integrasi DeweStream (Integration API v1) dirancang bagi pengembang sistem backend (seperti plugin kursus LMS, server web sekolah online, atau aplikasi manajemen konten mandiri) untuk menyinkronkan data video secara aman langsung dari akun Member.
API v1 Reference
Karakteristik Utama API v1
- Khusus Komunikasi Antar-Server (Server-to-Server): Kunci integrasi digunakan dari backend Anda, bukan dari browser pengunjung atau siswa.
- Katalog Bersifat Read-Only: API v1 hanya menyediakan akses baca untuk video berstatus
ready(siap putar) dan tidak berada di dalam Trash, pohon folder, serta profil akun pemilik kunci. - Bukan Pengganti Token Pemutaran: API ini mengembalikan metadata katalog dan status kesiapan embed (embed readiness). API tidak mengirimkan file media mentah (raw media), kunci enkripsi video, token pemutaran jangka pendek, atau share link publik (public share URL).
- Tidak Melakukan Mutasi Konten: Tidak ada endpoint untuk meng-upload file baru, mengedit metadata, menghapus video, atau membuat share link publik melalui API v1.
- Independen dari Sesi Dashboard: Autentikasi menggunakan token Bearer terpisah. Logout dari dashboard Member tidak mencabut kunci API backend.
Konfigurasi Teknis Dasar
- Base URL Produksi:
https://app.dewe.stream(atau domain instalasi yang ditetapkan pada lingkungan Anda). - Awalan Rute API:
/api/integrations/v1 - Format Data: JSON (
Content-Type: application/json; charset=utf-8) - Header Keamanan Respons: Seluruh endpoint menyertakan
Cache-Control: private, no-store.
Autentikasi
Setiap permintaan ke Integration API v1 wajib menyertakan header HTTP Authorization dengan skema Bearer:
- String kunci terdiri dari prefiks publik (misal:
dws_a1b2c3d4e5f6) dan token rahasia acak 43 karakter yang dipisahkan oleh tanda titik (.). - Kunci dibuat melalui dashboard Member di menu
Account→ kartuAPI access. - Jika header
Authorizationtidak disertakan, berformat salah, atau kunci telah dicabut (revoked), server akan mengembalikan respons HTTP 401 Unauthorized:
Batas Frekuensi Panggilan (Rate Limiting)
Untuk menjaga stabilitas layanan:
- Setiap kunci API memiliki kuota kecepatan maksimal 120 permintaan per menit.
- Jika batas kuota terlampaui dalam jendela 60 detik, server akan mengembalikan respons HTTP 429 Too Many Requests beserta header HTTP
Retry-After: 60:
Backend Anda disarankan menyimpan (cache) hasil katalog video secara lokal dan menghormati waktu tunggu pada header Retry-After.
Daftar Endpoint API v1
1. Memeriksa Identitas & Hak Akses Akun (GET /me)
Mengembalikan identitas Member pemilik kunci dan kapabilitas yang aktif.
- Metode:
GET - Path:
/api/integrations/v1/me - Header:
Authorization: Bearer <secret>
Contoh Respons Sukses (HTTP 200)
2. Membaca Daftar Video (GET /videos)
Mengambil daftar video milik Member yang berstatus ready dan tidak berada di dalam Trash, diurutkan dari yang terbaru diperbarui (updatedAt menurun).
- Metode:
GET - Path:
/api/integrations/v1/videos - Parameter Kueri (Query Parameters):
query(string, opsional): Kata kunci pencarian judul (maksimal 160 karakter, pencarian substring tidak peka huruf besar-kecil).folderId(string UUID, opsional): Batasi hasil hanya pada video yang berada langsung di dalam folder ini.limit(integer, opsional): Jumlah maksimal data per halaman. Nilai antara1hingga50(standar:20).cursor(string base64url, opsional): Kursor penanda posisi halaman berikutnya yang diperoleh dari nilaimeta.nextCursorhalaman sebelumnya.
Contoh Respons Sukses (HTTP 200)
3. Membaca Detail Satu Video (GET /videos/:id)
Mengambil rincian katalog untuk satu video tertentu.
- Metode:
GET - Path:
/api/integrations/v1/videos/{id} - Parameter Path:
{id}adalah UUID unik file video.
Respons Jika Ditemukan (HTTP 200)
Mengembalikan objek tunggal di dalam pembungkus { "data": { ... } } dengan struktur bidang yang sama persis seperti pada daftar video.
Respons Jika Tidak Ditemukan (HTTP 404)
Jika video tidak ada, bukan milik akun Anda, belum selesai diproses (processing/failed), atau berada di Trash:
4. Membaca Status Kumpulan Video Secara Batch (POST /videos/resolve)
Memeriksa ketersediaan dan mengambil metadata untuk banyak video sekaligus dalam satu panggilan jaringan (operasi baca batch, bukan mutasi).
- Metode:
POST - Path:
/api/integrations/v1/videos/resolve - Header:
Content-Type: application/json - Badan Permintaan (Request Body):
Contoh Respons (HTTP 200)
Urutan elemen pada array respons dipastikan sama persis dengan urutan ID yang Anda kirimkan. Video yang tidak tersedia (karena telah dihapus, masuk Trash, atau bukan milik akun Anda) ditandai dengan objek { id, state: "unavailable" }:
5. Membaca Struktur Pohon Folder (GET /folders)
Mengambil seluruh folder video milik Member yang tersusun dalam jalur hierarkis.
- Metode:
GET - Path:
/api/integrations/v1/folders
Contoh Respons Sukses (HTTP 200)
Panduan Pengujian & Checklist Penerimaan Integrasi
Gunakan panduan 10 langkah berikut untuk memverifikasi kesiapan integrasi backend Anda secara terstruktur.
Prasyarat Pengujian
- Gunakan akun demo atau lingkungan pengujian (staging) khusus.
- Buat variabel lingkungan pada terminal penguji agar rahasia tidak tersimpan di riwayat baris perintah (shell history):
10 Langkah Pengujian Penerimaan (Acceptance Checklist)
Setelah pengujian selesai, bersihkan variabel dari lingkungan terminal Anda:
Panduan Terkait
Last updated Oct 20, 2026