curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": true,
"nsfw_check": true,
"return_last_frame": true
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": True,
"nsfw_check": True,
"return_last_frame": True
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": true,
"nsfw_check": true,
"return_last_frame": true
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KZOEEXAMPLE"
}
]
}
apimart-zoe
Pembuatan Video apimart-zoe
Buat dan edit video dari teks, bingkai, serta referensi gambar/video/audio: 480p–4k, gambar bingkai terakhir, MOV, dan pembuatan draf ke video final.
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": true,
"nsfw_check": true,
"return_last_frame": true
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": True,
"nsfw_check": True,
"return_last_frame": True
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": true,
"nsfw_check": true,
"return_last_frame": true
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KZOEEXAMPLE"
}
]
}
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.curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": true,
"nsfw_check": true,
"return_last_frame": true
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": True,
"nsfw_check": True,
"return_last_frame": True
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration": 8,
"audio": true,
"nsfw_check": true,
"return_last_frame": true
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KZOEEXAMPLE"
}
]
}
Pilih mode
| Mode | Parameter |
|---|---|
| Teks ke video | Kirim prompt tanpa media. |
| Bingkai ke video | Gunakan peran first_frame dan last_frame opsional di image_with_roles, atau first_frame_image / last_frame_image. |
| Referensi ke video | Gambar atau video referensi, opsional dengan audio. Audio saja tidak didukung. |
| Draf | draft: true menghasilkan keluaran 480p. |
| Video final | Gunakan draft_task_id dari draf yang berhasil untuk keluaran 1080p. |
| Pengeditan video | Gunakan omni_reference_task_type: "edit" dengan minimal satu video sumber. Durasi dan rasio mengikuti sumber. |
Header
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 publikhttp(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.
| Media | Persyaratan |
|---|---|
| Gambar referensi | Maksimal 30; JPEG / PNG / WebP / BMP / TIFF / GIF / HEIC / HEIF; rasio 0.4–2.5; lebar dan tinggi masing-masing 300–6000 piksel; tiap file < 30 MB. |
| Video referensi | Maksimal 10; MP4 / MOV (H.264 / H.265; trek audio: AAC / MP3); tiap file ≤ 200 MB. Aturan dimensi, durasi, dan laju bingkai ada di bawah. |
| Audio referensi | 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. |
Validasi video referensi
| Properti | Persyaratan |
|---|---|
| Lebar dan tinggi | Lebar dan tinggi masing-masing 300–6000 piksel. |
| Luas piksel (lebar × tinggi) | 409.600–8.295.044 piksel. |
| Rasio (lebar / tinggi) | 0.4–2.5. |
| Durasi tiap video | 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. |
| Laju bingkai | Bulatkan ke bilangan bulat terdekat (0.5 ke atas), lalu periksa rentang 24–60fps. 23.976 dan 59.94 diterima. |
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_urlsbersamaimage_with_roles. Kombinasi ini menghasilkan HTTP 400 (invalid_request_error) saat pengiriman, tanpa biaya. Aliasimage,images, danimage_urljuga dihitung sebagaiimage_urlsdan 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.2detik).duration/seconds: hilangkan atau-1;aspect_ratio/size: hilangkan atauadaptive. Jangan gabungkan dengandraft: 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
{
"model": "apimart-zoe",
"prompt": "Transisi alami dari bingkai awal ke bingkai akhir dengan pencahayaan yang konsisten",
"image_with_roles": [
{
"url": "https://example.com/start.jpg",
"role": "first_frame"
},
{
"url": "https://example.com/end.jpg",
"role": "last_frame"
}
],
"duration": 6
}
first_frame_image dan last_frame_image. Jangan tambahkan referensi gambar, video, atau audio pada permintaan yang sama.
Referensi gambar, video, dan audio
{
"model": "apimart-zoe",
"prompt": "Karakter pada gambar referensi bergerak alami di adegan video referensi, dengan musik mengikuti ritme visual",
"image_urls": [
"https://example.com/character.jpg"
],
"video_urls": [
"https://example.com/scene.mp4"
],
"audio_urls": [
"https://example.com/bgm.mp3"
],
"duration": -1
}
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.
{
"model": "apimart-zoe",
"prompt": "Ubah seluruh adegan menjadi film klasik hitam putih sambil mempertahankan gerakan kamera dan komposisi",
"video_urls": [
"https://example.com/source_20s.mp4"
],
"omni_reference_task_type": "edit"
}
Bingkai terakhir, keluaran MOV, dan optimasi prompt
{
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"duration": 5,
"return_last_frame": true,
"output_format": "mov",
"enhance_prompt": true
}
Draf → video final
- Kirim draf dengan
draft: true. Jikaresolutiondihilangkan, digunakan480p; jika diberikan, hanya480pyang didukung.
{
"model": "apimart-zoe",
"prompt": "Anak kucing oranye di ambang jendela menatap kamera, dengan sinar matahari dari samping dan gerakan kamera perlahan mendekat",
"draft": true
}
- Tunggu draf berhasil, lalu kirim
task_id-nya untuk membuat video final. Cukup kirimmodeldandraft_task_id. Jika menyertakanresolution, gunakan1080p.
{
"model": "apimart-zoe",
"draft_task_id": "task_01KZOEEXAMPLE"
}
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
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01KZOEEXAMPLE \
--header 'Authorization: Bearer <token>'
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.
{
"code": 200,
"data": {
"id": "task_01KZOEEXAMPLE",
"status": "completed",
"result": {
"videos": [
{
"url": [
"https://example.com/generated-video.mp4"
],
"expires_at": 1794475442
}
],
"last_frame_url": "https://example.com/generated-last-frame.png"
},
"progress": 100,
"completed": 1794389042
}
}
data.error.message. Biaya dikembalikan secara otomatis.
| Bidang | Keterangan |
|---|---|
data.progress | Progres tugas, 0–100. |
data.result.videos[].url | Array alamat video yang disalin ke penyimpanan APIMart. |
data.result.videos[].expires_at | Alamat kedaluwarsa 24 jam setelah tugas selesai. Segera unduh videonya. |
data.result.last_frame_url | URL PNG bingkai terakhir yang tersimpan di APIMart. Hanya ada saat tugas berhasil dan permintaan menyertakan return_last_frame: true. |
data.error.message | Alasan kegagalan, hanya untuk failed. |
data.error.code | String task_failed jika gagal. |
data.cost | Biaya tugas; 0 untuk tugas gagal setelah biaya cadangan dikembalikan. |
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.
| Kasus | Durasi keluaran tertagih D |
|---|---|
Pembuatan biasa: duration: 4–30 atau dihilangkan (default 5) | Tagih detik yang diminta, tanpa penyesuaian terhadap panjang hasil video. |
duration: -1 / pengeditan video edit | Cadangkan 30 detik, lalu sesuaikan dengan durasi aktual yang dibulatkan ke detik terdekat (0.5 ke atas). |
| Video final | Mewarisi durasi draf. Jika draf memakai duration: -1, durasi aktual hasil draf menjadi dasar, tanpa penyesuaian ulang terhadap video final. |
- 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)).ceilmembulatkan ke atas ke bilangan bulat. Gunakan tarif dengan video referensi. - Contoh: meminta 8 detik tetap memberi
D = 8meskipun hasilnya 8.2 detik. Durasi otomatis 8.5 memberiD = 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 objekerror: rincian di error.message, kode string di error.code, berbeda dari status HTTP. Tidak ada biaya.
| HTTP | error.code | Penyebab dan solusi |
|---|---|---|
| 400 | invalid_request_error | Periksa durasi, resolusi, rasio, jumlah/kombinasi media, parameter yang tidak didukung, dan aturan draf/final. Juga berlaku jika draft_task_id tidak ditemukan, bukan draf, belum selesai, atau lebih dari 24 jam sejak dibuat. Juga berlaku untuk dimensi, durasi presisi, atau laju bingkai video yang tidak valid, serta gabungan image_urls (termasuk alias) dan image_with_roles. Kesalahan video memuat nilai terukur. Periksa juga durasi audio, jenis tugas/aturan pengeditan, output_format, kesamaan alias audio, dan keberadaan kolom terlarang. |
| 400 | nsfw_content_detected | Penolakan moderasi konten. Kategori ada di error.message. Tampilkan penolakan dan ubah konten sebelum mengirim ulang. Tanpa biaya. |
| 400 | input_video_probe_failed | Video referensi tidak dapat diakses atau durasinya tidak terdeteksi. Periksa alamat dan isinya. |
| 402 | payment_required | Saldo tidak cukup; durasi otomatis mencadangkan 30 detik. |
| 503 | draft_channel_unavailable / draft_task_unavailable | Saluran draf tidak tersedia atau pencarian draf gagal sementara. Coba nanti atau buat draf baru. |