Referensi API

Dokumentasi

Seluruh endpoint, parameter, kode error, dan contoh kode dalam satu halaman. Basis URL di bawah ini dipakai oleh semua permintaan.

https://alrizmotion.my.id/api

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.

https://alrizmotion.my.id/api
KeteranganNilai
Basis URLhttps://alrizmotion.my.id/api
FormatJSON (application/json)
Header kunci APIX-API-Key: alz_…
Header sesi consoleAuthorization: Bearer …
Zona waktu cap waktuUTC (ISO 8601, akhiran Z)
Mata uang saldoRupiah (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
Jangan menaruh kunci API di kode sisi klien atau repositori publik. Simpan di variabel lingkungan server Anda.

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.

KolomKeterangan
emailEmail akun yang memiliki kunci API ini.
balanceSaldo tersedia saat ini, dalam Rupiah.
concurrent.limitBatas jumlah job yang boleh berjalan bersamaan.
concurrent.runningJumlah job yang sedang berjalan saat ini.
concurrent.availableSisa 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
  }
}
Nilai konkurensi diatur oleh administrator dan bisa berbeda antar akun. Bila jumlah job berjalan sudah mencapai batas, job baru akan ditolak dengan kode SYS_001 (HTTP 429).

Endpoint

MethodPathKeterangan
GET/modelsDaftar model yang tersedia beserta harga dan resolusinya.
GET/accountCek akun pemanggil: email, saldo, dan batas generasi bersamaan.
POST/jobsKirim job baru. Membalas 202 beserta job_id.
GET/jobsDaftar job milik kunci API ini, dengan filter status opsional.
GET/jobs/{id}Ambil status dan metadata satu job.
GET/jobs/{id}/resultAmbil tautan video hasil. Hanya tersedia setelah status DONE.
GET/healthPemeriksaan kesehatan layanan. Tidak memerlukan autentikasi.

POST /jobs

Kirim sebagai JSON. Balasan 202 beserta job_id.

ParameterTipeKeterangan
modelstringWajib. ID model, mis. mc-kling-2.6-pro
image_urlstringWajib bila tanpa video_url. Tautan gambar acuan (JPG/PNG/WebP).
video_urlstringWajib bila tanpa image_url. Tautan video gerak (MP4/MOV, ≤ 30 detik).
promptstringOpsional. 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"
}
Tautan hasil disimpan 24 jam sejak job selesai. Setelah itu berkas dihapus dan kolom result_url menjadi kosong dengan result_expired bernilai true — unduh dan simpan salinan Anda sendiri.

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

IDResolusiDurasiHarga
mc-kling-2.6-std720p≤ 30 detikRp750
mc-kling-2.6-pro1080p≤ 30 detikRp1.500
mc-kling-3.0-std720p≤ 30 detikRp1.000
mc-kling-3.0-pro1080p≤ 30 detikRp1.750

Status job

Status berubah berurutan. Nilai akhir hanya DONE, NO_STOCK, atau FAILED.

StatusKeterangan
QUEUEDMenunggu antrean
CLAIMINGMenyiapkan kapasitas
UPLOADINGMengunggah berkas
PROCESSINGSedang diproses
SAVINGMenyimpan hasil
DONESelesai
NO_STOCKKapasitas habis
FAILEDGagal

Kode error

KodeHTTPKeterangan
AUTH_001401Kunci API tidak disertakan atau sesi tidak valid. Sertakan header X-API-Key.
AUTH_002403Kunci API sudah dicabut, akun ditangguhkan, atau akses khusus administrator.
REQ_001400Permintaan tidak lengkap atau tidak memenuhi syarat: model tidak diisi, image_url dan video_url keduanya kosong, atau saldo tidak cukup.
REQ_002409Email sudah terdaftar (saat mendaftar akun).
REQ_005422Kolom permintaan tidak valid (mis. model tidak dikenal, nilai di luar batas, atau tipe salah).
REQ_006413Berkas tidak didukung: jenis berkas salah, atau ukuran melebihi batas (gambar ≤ 10 MB, video ≤ 50 MB).
JOB_001404Job, kunci, atau tagihan tidak ditemukan, atau bukan milik kunci API ini.
JOB_002409Job belum selesai diproses, atau aksi tidak diizinkan untuk status job saat ini.
STK_001503Tidak ada kapasitas untuk model ini saat ini. Saldo Anda dikembalikan penuh. Silakan coba beberapa saat lagi.
GEN_001502Proses gagal di sisi layanan setelah beberapa kali percobaan dengan akun berbeda. Job dihentikan dan saldo Anda dikembalikan penuh.
GEN_002422Berkas 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_001429Terlalu banyak generasi bersamaan. Tunggu sampai sebagian job selesai, lalu coba lagi.
SYS_002500Terjadi kesalahan internal. Silakan coba lagi; bila berulang, hubungi dukungan.
SYS_003502Gagal 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

AspekNilai
Ukuran gambar≤ 10 MB
Ukuran video≤ 50 MB
Durasi video≤ 30 detik
Laju permintaan60 / menit
Generasi bersamaanDiatur admin (per akun) — cek via GET /account
Masa simpan hasil24 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.

Sudah punya kunci API? Langsung coba.

Console menampilkan saldo, riwayat job, dan pemakaian per model. Dokumentasi memuat seluruh endpoint beserta kode errornya.