Langsung ke konten utama
POST
API ini bersifat asinkron. Simpan ID tugas setelah pengiriman, lalu gunakan GET /v1/tasks/{task_id} untuk memeriksa status dan hasil. Dalam respons pengiriman default, ID ada di data[0].task_id.

Header permintaan

string
wajib
Gunakan APIMart API Key dalam format Bearer <token>. Pengiriman dan polling memerlukan autentikasi dengan identitas pengguna yang sama.
string
Sangat disarankan. Gunakan kunci baru untuk setiap pembuatan yang terpisah (1–191 karakter ASCII yang terlihat; UUID disarankan). Ganti <unique-operation-key> pada contoh. Setelah timeout pengiriman atau kegagalan jaringan, ulangi dengan endpoint, isi, versi respons, dan kunci yang sama. Setelah menerima ID tugas, cukup periksa tugas tersebut.

Parameter permintaan

string
wajib
Nilai tetap: muse-video-ext.
string
wajib
Deskripsi teks tentang konten yang ingin dibuat. Mendukung bahasa Mandarin dan Inggris. Tidak boleh kosong setelah spasi di awal dan akhir dihapus. Tetap wajib meskipun menggunakan gambar referensi.
string[]
Maksimal 9 input gambar referensi yang tidak kosong. Mendukung URL publik, Data URI (seperti data:image/png;base64,...), atau base64 mentah. Hilangkan atau kirim [] untuk pembuatan dari teks saja. PNG, JPEG, dan WebP disarankan. URL harus dapat diakses langsung oleh server tanpa cookie login browser.Ukuran asli gabungan semua gambar referensi tidak boleh melebihi 11 MiB (11.534.336 byte). Ini batas total, bukan per gambar. base64 menambah ukuran isi permintaan. Jangan kirim URL blob:, jalur file lokal, atau objek File.
string
Mendukung tujuh rasio di bawah. Jika dihilangkan, pembuatan dari teks memakai 16:9; dengan referensi, hasil mengikuti komposisi referensi. Rasio eksplisit diutamakan. Untuk pemilihan otomatis, hilangkan bidang ini; jangan kirim "auto".1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3
string
Bidang kompatibilitas yang menerima tujuh rasio di atas atau auto, bukan ukuran piksel seperti 1024x1024. Hanya mengirim size: "auto" sama dengan tidak menentukan rasio. Utamakan aspect_ratio. Jika keduanya valid, aspect_ratio diutamakan, tetapi setiap bidang divalidasi terpisah: rasio valid tidak membatalkan kesalahan size.
integer
default:"1"
Hanya satu hasil per permintaan. Hanya angka 1 yang diterima. Nilai eksplisit 0, negatif, atau lebih dari 1 menghasilkan kesalahan.
integer | string
default:"10"
Tetap sekitar 10 detik. Menerima angka 10 atau string "10" dan "10s"; angka 10 disarankan. Alias kompatibel: seconds dan duration_seconds. Gunakan satu bidang durasi saja; semua bidang yang dikirim divalidasi terpisah.
string
default:"720p"
Hanya mendukung 720p, bukan 1080p atau 4k. Dimensi dan durasi pemutaran sebenarnya mengikuti metadata media yang dikembalikan.
boolean
Video memiliki suara secara default; bidang ini dapat dihilangkan. true tidak mengubah perilaku ini, sedangkan false ditolak.
Mengembalikan URL MP4: sekitar 10 detik, 720p, dengan suara. Gambar referensi memandu pembuatan, tetapi frame pertama tidak dijamin identik pada tingkat piksel.

Parameter opsional lainnya

string
URL dasar backend untuk notifikasi tugas. Platform menghapus garis miring terakhir lalu menambahkan /callback: https://your-backend.example/muse menjadi https://your-backend.example/muse/callback. Hilangkan jika hanya menggunakan polling.
string
Mengatur bahasa pesan kesalahan Webhook, bukan konten yang dibuat. Nilai: zh, en, ja, ko, ru, fr, de, id, pt, es. Tag regional seperti zh-CN tidak diterima. Untuk polling, kirim bahasa secara terpisah sebagai parameter kueri GET.

Pembuatan dengan gambar referensi

Ganti URL contoh dengan URL gambar yang dapat diakses. Contoh ini menghilangkan rasio agar mengikuti komposisi referensi; tambahkan aspect_ratio untuk rasio tetap. Tambahkan referensi lain ke image_urls, maksimal 9 gambar total.

Respons pengiriman

Respons default adalah HTTP 200, dengan data berupa array. submitted berarti tugas diterima, bukan selesai. Simpan data[0].task_id, lalu periksa tugas.
Dengan header X-APIMart-Response-Version: 2026-07-27, pengiriman mengembalikan HTTP 202. Baca ID dari data.id dan jalur polling dari data.poll_url.
Versi ini tidak mengubah struktur respons GET. Setelah menambahkan header ini, jangan tetap membaca respons pengiriman melalui data[0].task_id.

Memeriksa status dan hasil tugas

Gunakan ID lengkap dari respons pengiriman dan identitas pengguna yang sama. language bersifat opsional untuk bahasa pesan kesalahan. Lihat seluruh bidang di Status tugas.
Polling disarankan setiap 5–10 detik, tanpa kueri bersamaan untuk tugas yang sama. Timeout klien atau penghentian polling tidak membatalkan tugas server. Simpan ID lalu lanjutkan GET nanti; jangan otomatis mengirim pembuatan baru. Gunakan data.status untuk menentukan penyelesaian. HTTP 200 atau progress: 100 saja tidak berarti pembuatan berhasil. polling_error selama pemrosesan bukan kegagalan terminal. Contoh respons kueri yang selesai (URL hasil hanya placeholder):
Dalam respons kueri, data berupa objek dan url berupa array string. Hasil pertama ada di data.result.videos[0].url[0]. Jika ada, expires_at adalah waktu kedaluwarsa dalam detik Unix; simpan file yang dibutuhkan sebelum kedaluwarsa. actual_time adalah waktu pemrosesan tugas, bukan durasi pemutaran video.

Batasan dan penanganan kesalahan

Video referensi, audio referensi, mask, kontrol frame awal/akhir, perpanjangan, dan remix tidak didukung. quality tidak berpengaruh. Hilangkan seed, negative_prompt, width, height, response_format, dan output_format karena bukan parameter pembuatan model ini. async: false tidak mengaktifkan pembuatan sinkron, dan stream tidak menyediakan aliran SSE pembuatan. Tugas gagal tetap dapat mengembalikan HTTP 200; periksa data.status dan data.error.message. Kesalahan jaringan atau 5xx saat pengiriman dapat terjadi setelah penerimaan, jadi jangan langsung mengirim ulang dengan kunci baru.