Dokumentasi
Referensi lengkap API dalam satu halaman.
Referensi API
Dokumentasi
Seluruh endpoint, parameter, kode error, dan contoh kode dalam satu halaman. Basis URL di bawah ini dipakai oleh semua permintaan.
Basis URL
Semua endpoint pada halaman ini memakai basis URL berikut. Cukup gabungkan basis URL dengan path endpoint, misalnya https://alrizmotion.my.id/api/jobs.
| Keterangan | Nilai |
|---|---|
| Basis URL | https://alrizmotion.my.id/api |
| Format | JSON (application/json) |
| Header kunci API | X-API-Key: alz_… |
| Header sesi console | Authorization: Bearer … |
| Zona waktu cap waktu | UTC (ISO 8601, akhiran Z) |
| Mata uang saldo | Rupiah (bilangan bulat) |
# Uji cepat tanpa kunci curl https://alrizmotion.my.id/api/models
Mulai cepat
Kirim satu job, pantau statusnya, lalu ambil hasilnya. Tiga panggilan ini cukup untuk alur lengkap.
# 1. Kirim job curl -X POST https://alrizmotion.my.id/api/jobs \ -H "X-API-Key: $ALRIZ_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mc-kling-2.6-pro", "image_url": "https://…/foto.jpg", "video_url": "https://…/gerak.mp4", "prompt": "gerakkan rambut mengikuti angin" }' # 2. Pantau status curl https://alrizmotion.my.id/api/jobs/JOB_ID \ -H "X-API-Key: $ALRIZ_KEY" # 3. Ambil hasil curl https://alrizmotion.my.id/api/jobs/JOB_ID/result \ -H "X-API-Key: $ALRIZ_KEY"
Autentikasi
Setiap permintaan menyertakan kunci API pada header X-API-Key. Tidak ada proses login, sesi, atau cookie.
X-API-Key: alz_xxxxxxxxxxxxxxxx
Cek akun
Sebelum mengirim job, Anda bisa memeriksa akun pemanggil: email yang terdaftar, saldo tersedia, serta batas generasi bersamaan (konkurensi). Cukup panggil GET /account dengan kunci API Anda — tidak ada parameter tambahan.
| Kolom | Keterangan |
|---|---|
| Email akun yang memiliki kunci API ini. | |
| balance | Saldo tersedia saat ini, dalam Rupiah. |
| concurrent.limit | Batas jumlah job yang boleh berjalan bersamaan. |
| concurrent.running | Jumlah job yang sedang berjalan saat ini. |
| concurrent.available | Sisa slot kosong (limit − running). |
curl https://alrizmotion.my.id/api/account \ -H "X-API-Key: $ALRIZ_KEY"
# Respons { "id": "…", "name": "Alriz Motion", "email": "user@email.com", "balance": 12500, "role": "user", "concurrent": { "limit": 20, "running": 2, "available": 18 } }
Endpoint
| Method | Path | Keterangan |
|---|---|---|
| GET | /models | Daftar model yang tersedia beserta harga dan resolusinya. |
| GET | /account | Cek akun pemanggil: email, saldo, dan batas generasi bersamaan. |
| POST | /jobs | Kirim job baru. Membalas 202 beserta job_id. |
| GET | /jobs | Daftar job milik kunci API ini, dengan filter status opsional. |
| GET | /jobs/{id} | Ambil status dan metadata satu job. |
| GET | /jobs/{id}/result | Ambil tautan video hasil. Hanya tersedia setelah status DONE. |
| GET | /health | Pemeriksaan kesehatan layanan. Tidak memerlukan autentikasi. |
POST /jobs
Kirim sebagai JSON. Balasan 202 beserta job_id.
| Parameter | Tipe | Keterangan |
|---|---|---|
| model | string | Wajib. ID model, mis. mc-kling-2.6-pro |
| image_url | string | Wajib bila tanpa video_url. Tautan gambar acuan (JPG/PNG/WebP). |
| video_url | string | Wajib bila tanpa image_url. Tautan video gerak (MP4/MOV, ≤ 30 detik). |
| prompt | string | Opsional. Arahan gerakan atau suasana. |
# Contoh isi permintaan { "model": "mc-kling-2.6-pro", "image_url": "https://…/foto.jpg", "video_url": "https://…/gerak.mp4", "prompt": "gerakkan rambut mengikuti angin" }
# Respons 202 Accepted { "job_id": "ALRIZ7K3M9Q2X8B4T1V", "status": "QUEUED" }
Simpan job_id dari balasan di atas. Job_id inilah yang dipakai pada endpoint status dan hasil.
GET /jobs
Daftar job milik kunci API ini, terbaru lebih dulu. Filter opsional: status, model, range (today/week/month/year), dan limit (1–200, bawaan 50).
# Permintaan curl "https://alrizmotion.my.id/api/jobs?status=DONE&limit=20" \ -H "X-API-Key: $ALRIZ_KEY"
# Respons 200 { "jobs": [ { "id": "ALRIZ7K3M9Q2X8B4T1V", "code": "ALRIZ7K3M9Q2X8B4T1V", "model": "mc-kling-2.6-pro", "status": "DONE", "created_at": "2026-09-24T09:12:31Z", "updated_at": "2026-09-24T09:15:44Z", "duration_ms": 193000, "cost": 1500, "result_url": "https://cdn.alrizmotion.my.id/results/…/ALRIZ7K3M9Q2X8B4T1V.mp4", "result_expires_at": "2026-09-25T09:15:44Z", "result_expired": false, "error": null, "error_code": null } ] }
GET /jobs/{id}
Status dan metadata satu job. Gunakan job_id dari POST /jobs. Kolom result_url terisi setelah status DONE.
# Permintaan curl https://alrizmotion.my.id/api/jobs/ALRIZ7K3M9Q2X8B4T1V \ -H "X-API-Key: $ALRIZ_KEY"
# Respons 200 (job masih berjalan) { "id": "ALRIZ7K3M9Q2X8B4T1V", "code": "ALRIZ7K3M9Q2X8B4T1V", "model": "mc-kling-2.6-pro", "status": "PROCESSING", "prompt": "gerakkan rambut mengikuti angin", "created_at": "2026-09-24T09:12:31Z", "updated_at": "2026-09-24T09:13:02Z", "duration_ms": null, "cost": 1500, "result_url": null, "result_expires_at": null, "result_expired": false, "error": null, "error_code": null }
GET /jobs/{id}/result
Tautan video hasil. Hanya tersedia setelah status DONE. Sebelum itu permintaan ditolak dengan kode JOB_002.
# Permintaan curl https://alrizmotion.my.id/api/jobs/ALRIZ7K3M9Q2X8B4T1V/result \ -H "X-API-Key: $ALRIZ_KEY"
# Respons 200 { "job_id": "ALRIZ7K3M9Q2X8B4T1V", "status": "DONE", "result_url": "https://cdn.alrizmotion.my.id/results/…/ALRIZ7K3M9Q2X8B4T1V.mp4", "duration_ms": 193000, "completed_at": "2026-09-24T09:15:44Z" }
GET /models
Daftar model yang aktif beserta harga per generasi dan resolusinya. Tidak memerlukan autentikasi.
# Respons 200 { "models": [ { "id": "mc-kling-2.6-std", "name": "Motion Control 2.6", "resolution": "720p", "price": 750, "maxDuration": 30, "active": true }, { "id": "mc-kling-2.6-pro", "name": "Motion Control 2.6 Pro", "resolution": "1080p", "price": 1500, "maxDuration": 30, "active": true } ] }
GET /account
Akun pemilik kunci API: email, saldo, dan batas generasi bersamaan. Rincian kolomnya ada pada bagian Cek akun di atas.
# Permintaan curl https://alrizmotion.my.id/api/account \ -H "X-API-Key: $ALRIZ_KEY"
Model
| ID | Resolusi | Durasi | Harga |
|---|---|---|---|
| mc-kling-2.6-std | 720p | ≤ 30 detik | Rp750 |
| mc-kling-2.6-pro | 1080p | ≤ 30 detik | Rp1.500 |
| mc-kling-3.0-std | 720p | ≤ 30 detik | Rp1.000 |
| mc-kling-3.0-pro | 1080p | ≤ 30 detik | Rp1.750 |
Status job
Status berubah berurutan. Nilai akhir hanya DONE, NO_STOCK, atau FAILED.
| Status | Keterangan |
|---|---|
| QUEUED | Menunggu antrean |
| CLAIMING | Menyiapkan kapasitas |
| UPLOADING | Mengunggah berkas |
| PROCESSING | Sedang diproses |
| SAVING | Menyimpan hasil |
| DONE | Selesai |
| NO_STOCK | Kapasitas habis |
| FAILED | Gagal |
Kode error
| Kode | HTTP | Keterangan |
|---|---|---|
| AUTH_001 | 401 | Kunci API tidak disertakan atau sesi tidak valid. Sertakan header X-API-Key. |
| AUTH_002 | 403 | Kunci API sudah dicabut, akun ditangguhkan, atau akses khusus administrator. |
| REQ_001 | 400 | Permintaan tidak lengkap atau tidak memenuhi syarat: model tidak diisi, image_url dan video_url keduanya kosong, atau saldo tidak cukup. |
| REQ_002 | 409 | Email sudah terdaftar (saat mendaftar akun). |
| REQ_005 | 422 | Kolom permintaan tidak valid (mis. model tidak dikenal, nilai di luar batas, atau tipe salah). |
| REQ_006 | 413 | Berkas tidak didukung: jenis berkas salah, atau ukuran melebihi batas (gambar ≤ 10 MB, video ≤ 50 MB). |
| JOB_001 | 404 | Job, kunci, atau tagihan tidak ditemukan, atau bukan milik kunci API ini. |
| JOB_002 | 409 | Job belum selesai diproses, atau aksi tidak diizinkan untuk status job saat ini. |
| STK_001 | 503 | Tidak ada kapasitas untuk model ini saat ini. Saldo Anda dikembalikan penuh. Silakan coba beberapa saat lagi. |
| GEN_001 | 502 | Proses gagal di sisi layanan setelah beberapa kali percobaan dengan akun berbeda. Job dihentikan dan saldo Anda dikembalikan penuh. |
| GEN_002 | 422 | Berkas masukan ditolak: gambar atau video tidak dapat dipakai untuk model ini (format tidak didukung, berkas rusak, atau wajah/subjek tidak terdeteksi). Saldo Anda dikembalikan penuh. |
| SYS_001 | 429 | Terlalu banyak generasi bersamaan. Tunggu sampai sebagian job selesai, lalu coba lagi. |
| SYS_002 | 500 | Terjadi kesalahan internal. Silakan coba lagi; bila berulang, hubungi dukungan. |
| SYS_003 | 502 | Gagal menghubungi layanan unggah. Coba lagi beberapa saat lagi. |
# Bentuk error { "error": { "code": "AUTH_001", "message": "Kunci API tidak valid." } }
Setiap respons gagal memakai bentuk yang sama: objek error berisi code dan message. Periksa code untuk menangani kasus secara program, dan tampilkan message kepada pengguna Anda.
Batas
| Aspek | Nilai |
|---|---|
| Ukuran gambar | ≤ 10 MB |
| Ukuran video | ≤ 50 MB |
| Durasi video | ≤ 30 detik |
| Laju permintaan | 60 / menit |
| Generasi bersamaan | Diatur admin (per akun) — cek via GET /account |
| Masa simpan hasil | 24 jam |
Webhook
Belum tersedia. Saat ini pemantauan status dilakukan dengan polling GET /jobs/{id} setiap 5 detik — lihat contoh pada bagian Mulai cepat. Bila Anda ingin notifikasi otomatis, kirim tiket lewat tab Support agar kami tahu kebutuhan Anda.