Langsung ke konten utama
POST
API ini bersifat asinkron. Setelah mengirim, baca data[0].task_id, lalu gunakan status tugas untuk mengambil hasil. Pembuatan biasanya memerlukan 1–3 menit; periksa setiap 5–10 detik. Waktu sebenarnya bergantung pada tugas.

Pilih mode

string
wajib
Autentikasi Bearer: Bearer <token>, dengan <token> sebagai kunci API APIMart Anda. Kirim isi permintaan dengan Content-Type: application/json.

Parameter permintaan

string
wajib
Harus apimart-zoe.
string
Maksimal 204.800 karakter. Wajib untuk teks ke video; opsional jika hanya mengirim media. Dilarang saat memakai draft_task_id: prompt diwarisi dari draf.
string
480p, 720p, 1080p, 2k, 4k, tanpa membedakan huruf besar/kecil. Default pembuatan biasa: 720p. Dengan draft: true, hanya 480p, termasuk jika dihilangkan. Dengan draft_task_id, hanya 1080p, termasuk jika dihilangkan.
string
21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive. Default adaptive, ditentukan model atau media. Hilangkan untuk video final karena rasio diwarisi dari draf.Untuk pengeditan (edit), hilangkan kolom atau gunakan adaptive agar mengikuti rasio sumber.
string
Nama alternatif untuk aspect_ratio, dengan nilai yang sama. Sebaiknya kirim salah satu saja. Hilangkan untuk video final.
integer
Pembuatan biasa: Detik bulat 4–30, default 5. Durasi yang diminta atau default ditagih tanpa penyesuaian terhadap panjang hasil video. Dengan -1, model menentukan: cadangan 30 detik, lalu disesuaikan dengan durasi aktual yang dibulatkan ke detik terdekat (0.5 ke atas). Hilangkan untuk video final yang mewarisi durasi draf.Untuk pengeditan (edit), hilangkan kolom atau gunakan -1. Jika dihilangkan, dianggap -1; durasi mengikuti video sumber.
integer
Alias duration dengan aturan yang sama. Gunakan salah satu saja. Hilangkan untuk video final.
boolean
Boolean untuk menghasilkan audio bersama video. Alias: generate_audio. Jika dihilangkan, model yang menentukan. Dilarang untuk video final. Mengontrol audio keluaran, bukan referensi masukan audio_urls.Jika audio dan generate_audio dikirim bersamaan, nilainya harus sama; jika tidak, HTTP 400. Jika dihilangkan, model menentukan dan biasanya menyertakan suara.
boolean
Alias audio dengan aturan yang sama. Gunakan salah satu saja dan hilangkan untuk video final.Jika audio dan generate_audio dikirim bersamaan, nilainya harus sama; jika tidak, HTTP 400. Jika dihilangkan, model menentukan dan biasanya menyertakan suara.
integer
Seed acak berupa bilangan bulat. Dilarang untuk video final.
boolean
Moderasi nonaktif secara default; gunakan true untuk mengaktifkan.Boolean opsional. true mengaktifkan moderasi untuk prompt, image_urls, image_with_roles, gambar bingkai awal/akhir, dan gambar asset://. Video dan audio referensi tidak dimoderasi.Permintaan video final tidak memuat prompt atau media. Pada alur draf → video final, moderasi dilakukan saat membuat draf.Jika terdeteksi, API mengembalikan HTTP 400 (nsfw_content_detected) dengan kategori di error.message. Tampilkan sebagai penolakan moderasi, bukan kesalahan parameter umum. Jika layanan moderasi gagal atau tidak tersedia, pembuatan tetap dilanjutkan; parameter ini tidak menjamin semua permintaan menyelesaikan moderasi.
string
Mendukung auto (default, sama dengan dihilangkan; model menentukan), reference, dan edit. reference / edit memerlukan media referensi; teks saja atau bingkai awal/akhir dengan nilai ini menghasilkan HTTP 400. edit memerlukan minimal satu entri video_urls dan tidak dapat digabung dengan draft: true. extend belum didukung dan menghasilkan HTTP 400. Jangan kirim saat pembuatan final.
boolean
Dengan true, bingkai terakhir juga dikembalikan sebagai PNG di data.result.last_frame_url. Nonaktif secara default. Jangan kirim saat pembuatan final.
string
mp4 (default) atau mov (kontainer QuickTime); nilai lain menghasilkan HTTP 400. Alias: response_format. Jika keduanya dikirim, output_format diprioritaskan. Jangan kirim saat pembuatan final.
string
Alias output_format, menerima mp4 / mov. Jika keduanya dikirim, output_format diprioritaskan. Jangan kirim saat pembuatan final.
boolean
Dengan true, prompt dioptimalkan otomatis sebelum pembuatan. Secara default, prompt asli digunakan tanpa optimasi. Jangan kirim saat pembuatan final.
object[]
Setiap item berisi url dan role. Peran: first_frame (awal), last_frame (akhir), reference_image (referensi). Maksimal satu bingkai awal dan satu akhir; bingkai akhir memerlukan bingkai awal. Keduanya tidak dapat digabung dengan media referensi.Jangan kirim image_urls bersama image_with_roles. Kombinasi ini menghasilkan HTTP 400 (invalid_request_error) saat pengiriman, tanpa biaya. Alias image, images, dan image_url juga dihitung sebagai image_urls dan tidak dapat melewati batasan ini.
string[]
Maksimal 30 gambar referensi. Lihat persyaratan format, dimensi, dan ukuran file di bawah.Jangan kirim image_urls bersama image_with_roles. Kombinasi ini menghasilkan HTTP 400 (invalid_request_error) saat pengiriman, tanpa biaya. Alias image, images, dan image_url juga dihitung sebagai image_urls dan tidak dapat melewati batasan ini.
string
Alamat gambar bingkai awal, setara dengan peran first_frame di image_with_roles.
string
Alamat gambar bingkai akhir, setara dengan peran last_frame. Bingkai awal juga wajib diberikan.
string[]
Maksimal 10 video referensi. URL http(s) publik atau asset://<ID media>, tanpa data: Base64. Dimensi, durasi presisi, dan laju bingkai diperiksa saat pengiriman sesuai aturan di bawah.Untuk penagihan, durasi dijumlahkan lalu total dibulatkan ke bawah ke detik bulat, tanpa penyesuaian berikutnya. Pembulatan ini tidak digunakan untuk memvalidasi durasi tiap video. Gagal mengakses atau mengukur durasi menghasilkan HTTP 400 (input_video_probe_failed), tanpa biaya.auto / reference: 2–15 detik, rentang diterima 1.8 ≤ t ≤ 15.2. Sumber untuk edit: 4–30 detik, rentang diterima 3.8 ≤ t < 30.2. Periksa durasi presisi tanpa pembulatan sebelumnya.
string[]
Maksimal 10; WAV / MP3; masing-masing 2–15 detik dan ≤ 15 MB, total maksimal 30 detik. Toleransi ±0.2 detik: tiap klip 1.8 ≤ t ≤ 15.2, total ≤ 30.2. Memerlukan gambar atau video referensi.URL publik http(s) atau asset://<ID media>, tanpa data: Base64. Durasi audio diperiksa saat pengiriman; pelanggaran menghasilkan HTTP 400 sinkron tanpa biaya.
boolean
true membuat draf 480p. Parameter lain mengikuti aturan pembuatan biasa. Jangan kirim bidang ini untuk video final.Pengeditan video (edit) tidak mendukung draf.
string
task_id draf yang berhasil untuk membuat video final 1080p. Gunakan dalam 24 jam setelah draf dibuat. Prompt, media, durasi, dan rasio diwarisi; jangan kirim ulang bidang tersebut. Video final juga melarang seed, audio, dan aliasnya generate_audio.

Alamat dan batas kombinasi media

Gambar, video, dan audio menerima URL publik http(s) atau media APIMart asset://<ID media>. Semuanya menolak data: Base64; unggah media terlebih dahulu. Pendaftaran otomatis tanpa panggilan API tambahan. Kegagalan pendaftaran menggagalkan tugas dan mengembalikan biaya.

Validasi video referensi

Dimensi video, luas piksel, rasio, durasi presisi dan laju bingkai, serta durasi audio referensi diperiksa saat pengiriman. Pelanggaran menghasilkan HTTP 400 sinkron tanpa biaya. Kesalahan video memakai invalid_request_error dan menyertakan pengukuran. Gunakan luas piksel, bukan sisi pendek minimal 480 dan sisi panjang maksimal 4096. Dilihat dari dimensi saja, 420×1000 (420.000 piksel) memenuhi syarat. 720×480 (345.600 piksel), 848×480 (407.040 piksel), dan 4096×2160 (8.847.360 piksel) tidak memenuhi batas luas. Durasi, laju bingkai, dan persyaratan lain juga harus dipenuhi. Dimensi gambar, ukuran file, dan pengodean diperiksa saat pembuatan. Ketidaksesuaian menggagalkan tugas dengan pengembalian biaya otomatis. Periksa properti ini sebelum memanggil API jika memungkinkan.

Aturan kombinasi media

  • Jangan kirim image_urls bersama image_with_roles. Kombinasi ini menghasilkan HTTP 400 (invalid_request_error) saat pengiriman, tanpa biaya. Alias image, images, dan image_url juga dihitung sebagai image_urls dan tidak dapat melewati batasan ini.
  • Bingkai awal/akhir tidak boleh berada dalam permintaan yang sama dengan referensi gambar, video, atau audio.
  • Maksimal satu bingkai awal dan satu akhir. Bingkai akhir memerlukan bingkai awal.
  • Maksimal 30 gambar, 10 video, dan 10 audio referensi, dengan total maksimal 50 media.
  • Pelanggaran kombinasi atau jumlah ini menghasilkan HTTP 400 secara sinkron tanpa biaya.
  • omni_reference_task_type: "edit" memerlukan minimal satu video sumber (3.8 ≤ t < 30.2 detik). duration / seconds: hilangkan atau -1; aspect_ratio / size: hilangkan atau adaptive. Jangan gabungkan dengan draft: true. Auto/reference tetap menggunakan batas 2–15 detik beserta toleransinya.
Kolom berikut menghasilkan HTTP 400 jika ada, meskipun bernilai "", [], false, atau null; hapus kolom sepenuhnya: negative_prompt, camera_fixed, camerafixed, extend_from_task_id, mask_url, video_list, element_list, multi_shot, tools. Hilangkan n atau gunakan 1.

Contoh permintaan

URL media berikut hanya contoh. Ganti dengan alamat media yang dapat diakses.

Bingkai awal dan akhir

Anda juga dapat memakai first_frame_image dan last_frame_image. Jangan tambahkan referensi gambar, video, atau audio pada permintaan yang sama.

Referensi gambar, video, dan audio

Gambar dalam image_urls dianggap sebagai referensi. Dengan duration: -1, model menentukan durasi keluaran.

Pengeditan video

omni_reference_task_type: "edit" memerlukan minimal satu video sumber (3.8 ≤ t < 30.2 detik). duration / seconds: hilangkan atau -1; aspect_ratio / size: hilangkan atau adaptive. Jangan gabungkan dengan draft: true. Auto/reference tetap menggunakan batas 2–15 detik beserta toleransinya.
Pengeditan memakai tarif dengan video referensi. Cadangkan 30 detik keluaran, lalu sesuaikan berdasarkan durasi aktual yang dibulatkan ke detik utuh. Durasi video referensi turut dihitung dengan rumus di bawah.

Bingkai terakhir, keluaran MOV, dan optimasi prompt

Draf → video final

  1. Kirim draf dengan draft: true. Jika resolution dihilangkan, digunakan 480p; jika diberikan, hanya 480p yang didukung.
  1. Tunggu draf berhasil, lalu kirim task_id-nya untuk membuat video final. Cukup kirim model dan draft_task_id. Jika menyertakan resolution, gunakan 1080p.
Video final mewarisi prompt, media, durasi, rasio, seed, dan pengaturan audio draf. Kirim model, draft_task_id, resolution: "1080p" opsional, serta kolom umum seperti nsfw_check / webhook. Kolom pembuatan berikut harus tidak ada; string/array kosong, false, dan null juga menghasilkan HTTP 400: prompt, image_urls, image_with_roles, image, images, image_url, first_frame_image, last_frame_image, video_urls, audio_urls, duration, seconds, aspect_ratio, size, seed, audio, generate_audio, draft, omni_reference_task_type, return_last_frame, output_format, response_format, enhance_prompt. Gunakan draf dalam 24 jam sejak dibuat; kedua pembuatan dikenai biaya terpisah.

Status dan hasil tugas

cURL
Respons pengiriman berisi data sebagai array; respons status berisi data sebagai objek tugas. data.status: pending = antre, processing = dibuat, completed = berhasil, failed = gagal. Saat berhasil, baca alamat dari array data.result.videos[].url, misalnya data.result.videos[0].url[0]. Video disalin ke penyimpanan APIMart. Contoh berikut hanya menampilkan bidang utama respons yang berhasil.
Jika tugas gagal, baca alasannya di data.error.message. Biaya dikembalikan secara otomatis.

Aturan penagihan

Penagihan per detik menurut resolusi keluaran dan penggunaan video referensi. Tarif dan diskon di halaman harga. D adalah durasi keluaran yang digunakan untuk penagihan, dalam detik.
  • Total durasi video referensi R: periksa tiap durasi saat pengiriman, jumlahkan, lalu bulatkan total ke bawah ke detik bulat. Tidak disesuaikan lagi.
  • Tanpa video referensi: detik tertagih = D. Dengan referensi: D + max(R, ceil(D × 2/3)). ceil membulatkan ke atas ke bilangan bulat. Gunakan tarif dengan video referensi.
  • Contoh: meminta 8 detik tetap memberi D = 8 meskipun hasilnya 8.2 detik. Durasi otomatis 8.5 memberi D = 9. Referensi 2.8 dan 3.8 detik dijumlahkan menjadi 6.6 sebelum dibulatkan ke bawah: R = 6.
  • Draf (480p) dan video final (1080p) ditagih terpisah. Referensi draf tetap dihitung dengan durasi aslinya pada video final, tanpa unggah ulang.
  • Pengiriman gagal tidak ditagih. Biaya tugas gagal dikembalikan otomatis.

Kesalahan umum

Pengiriman gagal mengembalikan objek error: rincian di error.message, kode string di error.code, berbeda dari status HTTP. Tidak ada biaya.