curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "pixverse-v6",
prompt: "A cinematic shot of a corgi running through a sunflower field at golden hour",
size: "16:9",
resolution: "540p",
duration: 5
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JWXXXXXXXXXXXX"
}
]
}
{
"error": {
"type": "invalid_request_error",
"message": "invalid duration 20, allowed range: 1-15 seconds"
}
}
{
"error": {
"code": 401,
"message": "Autentikasi gagal, silakan periksa API key Anda",
"type": "authentication_error"
}
}
{
"error": {
"code": 403,
"message": "insufficient quota: balance=0, required=0.25",
"type": "quota_not_enough"
}
}
{
"error": {
"code": 429,
"message": "Terlalu banyak permintaan, silakan coba lagi nanti",
"type": "rate_limit_error"
}
}
Pixverse v6
Pixverse v6 Pembuatan Video
- Model pembuatan video terpadu Pixverse v6
- Mendukung teks-ke-video, gambar-ke-video, transisi frame awal/akhir, fusi gambar referensi multipel, dan perpanjangan video
- Mendukung resolusi 360p/540p/720p/1080p, durasi 1–15 detik
- API tugas asinkron: setelah pengiriman, kueri hasil melalui ID tugas
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": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "pixverse-v6",
prompt: "A cinematic shot of a corgi running through a sunflower field at golden hour",
size: "16:9",
resolution: "540p",
duration: 5
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JWXXXXXXXXXXXX"
}
]
}
{
"error": {
"type": "invalid_request_error",
"message": "invalid duration 20, allowed range: 1-15 seconds"
}
}
{
"error": {
"code": 401,
"message": "Autentikasi gagal, silakan periksa API key Anda",
"type": "authentication_error"
}
}
{
"error": {
"code": 403,
"message": "insufficient quota: balance=0, required=0.25",
"type": "quota_not_enough"
}
}
{
"error": {
"code": 429,
"message": "Terlalu banyak permintaan, silakan coba lagi nanti",
"type": "rate_limit_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "pixverse-v6",
prompt: "A cinematic shot of a corgi running through a sunflower field at golden hour",
size: "16:9",
resolution: "540p",
duration: 5
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JWXXXXXXXXXXXX"
}
]
}
{
"error": {
"type": "invalid_request_error",
"message": "invalid duration 20, allowed range: 1-15 seconds"
}
}
{
"error": {
"code": 401,
"message": "Autentikasi gagal, silakan periksa API key Anda",
"type": "authentication_error"
}
}
{
"error": {
"code": 403,
"message": "insufficient quota: balance=0, required=0.25",
"type": "quota_not_enough"
}
}
{
"error": {
"code": 429,
"message": "Terlalu banyak permintaan, silakan coba lagi nanti",
"type": "rate_limit_error"
}
}
Autentikasi
string
wajib
Semua endpoint memerlukan autentikasi menggunakan Bearer Token.Mendapatkan API Key:Kunjungi halaman pengelolaan API Key untuk mendapatkan API Key Anda.Tambahkan header berikut pada permintaan:
Authorization: Bearer YOUR_API_KEY
Parameter Permintaan
string
wajib
Nama model pembuatan video. Tetap
pixverse-v6.boolean
default:"false"
Menentukan apakah moderasi konten dijalankan sebelum tugas video dikirim.
true: periksa prompt dan gambar input denganomni-moderation-latestfalseatau dihilangkan: tidak mengirim permintaan moderasi, tanpa biaya atau latensi moderasi tambahan (default)
string
wajib
Deskripsi konten video, hingga 5000 karakter. Wajib di semua mode.
string
default:"540p"
Tingkat resolusi video. Memengaruhi penagihan secara langsung.
360p: SD540p: Standar (default)720p: HD1080p: Full HD
Nilai resolusi lain akan mengembalikan kesalahan parameter.
integer
default:"5"
Durasi video dalam detik, rentang
1–15.Mode transisi frame awal/akhir hanya mendukung
5 atau 8 detik.string
default:"16:9"
Rasio aspek video. Hanya berlaku pada mode teks-ke-video dan fusi gambar referensi multipel.
16:9: Lanskap layar lebar (default)4:3: Lanskap 4:31:1: Persegi3:4: Potret 3:49:16: Potret vertikal2:3: Potret 2:33:2: Lanskap 3:221:9: Sinema layar lebar
integer
default:"0"
Seed acak, rentang
0–2147483647. Prompt dan seed yang sama dapat menghasilkan kembali hasil yang serupa.string
Prompt negatif untuk mengecualikan konten yang tidak diinginkan. Hingga 2048 karakter.
boolean
default:"false"
Apakah trek audio dihasilkan.
true: Hasilkan audio (menaikkan harga)false: Tanpa audio (default)
boolean
default:"false"
Apakah watermark ditambahkan di pojok kanan bawah video.
true: Tambahkan watermarkfalse: Tanpa watermark (default)
string
Mode gerakan.
normal: Mode standar (pixverse-v6hanya mendukung nilai ini)
fast hanya berlaku untuk model lama dan akan ditolak oleh upstream pada pixverse-v6.boolean
default:"false"
Apakah menghasilkan video multi-klip yang berkelanjutan. Hanya didukung pada teks-ke-video dan gambar-ke-video.
true: Hasilkan video multi-klip berkelanjutanfalse: Klip tunggal (default)
array<url>
Array URL gambar masukan untuk gambar-ke-video. Hanya gambar pertama yang digunakan.Gambar harus berupa URL HTTP/HTTPS yang dapat diakses publik.
url
URL frame awal pada mode transisi. Harus disertakan bersama
last_frame_image.url
URL frame akhir pada mode transisi. Harus disertakan bersama
first_frame_image.array<url>
Array URL gambar referensi untuk mode fusi gambar referensi multipel. Mendukung 1–7 gambar.Mengirimkan kolom ini akan memicu mode fusi gambar referensi multipel.
string
ID tugas sumber untuk perpanjangan video. Mengirimkan kolom ini akan memicu mode perpanjangan video.Tugas sumber harus milik pengguna saat ini, menggunakan model
pixverse-v6, dan berstatus completed.Mode Pembuatan
Adapter secara otomatis mengarahkan ke mode pembuatan yang sesuai berdasarkan kolom permintaan. Pencocokan dilakukan berdasarkan urutan prioritas; mode pertama yang cocok yang dipilih.| Mode | Kondisi pemicu | Deskripsi |
|---|---|---|
| Teks-ke-video | Tidak ada kolom gambar atau perpanjangan | Membuat video dari prompt |
| Gambar-ke-video | image_urls berisi satu gambar | Menggunakan gambar pertama sebagai input |
| Transisi frame awal/akhir | first_frame_image dan last_frame_image keduanya disertakan | Menghasilkan transisi mulus antara dua frame |
| Fusi gambar referensi multipel | Array img_references disertakan | Menggabungkan 1–7 gambar referensi menjadi video |
| Perpanjangan video | extend_from_task_id disertakan | Melanjutkan dari tugas Pixverse yang telah selesai |
Semua input gambar hanya menerima URL HTTP/HTTPS yang dapat diakses publik. base64 atau Data URI tidak didukung. Jika Anda hanya memiliki gambar lokal, unggah dulu ke object storage lalu kirimkan URL-nya.
Aturan Parameter
| Batasan | Deskripsi |
|---|---|
| Durasi video | 1 ≤ duration ≤ 15 detik; mode transisi hanya 5 atau 8 detik |
| Resolusi | Hanya 360p, 540p, 720p, 1080p yang didukung |
| Rasio aspek | size hanya berlaku pada teks-ke-video dan fusi gambar referensi multipel |
| Panjang prompt | prompt hingga 5000 karakter, negative_prompt hingga 2048 karakter |
| Gambar-ke-video | image_urls hanya menggunakan gambar pertama |
| Transisi | first_frame_image dan last_frame_image harus dikirim berpasangan |
| Mode gerakan | pixverse-v6 hanya mendukung normal |
| Fusi gambar referensi multipel | img_references mendukung 1–7 gambar |
| Perpanjangan video | extend_from_task_id harus mengarah ke tugas pixverse-v6 berstatus completed milik pengguna saat ini |
Respons
integer
Kode status respons.
200 jika berhasil.array
Mengueri Hasil Tugas
Pembuatan video adalah tugas asinkron. Setelah pengiriman,task_id dikembalikan. Gunakan endpoint Dapatkan Status Tugas untuk mengueri progres dan hasil.
cURL
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01JWXXXXXXXXXXXX \
--header 'Authorization: Bearer <token>'
completed atau failed.
Contoh hasil sukses
{
"code": 200,
"data": {
"id": "task_01KSPX48B8V1M6C2ZN0D0T4BKB",
"status": "completed",
"progress": 100,
"cost": 0.2,
"credits_cost": 2,
"created": 1779958948,
"completed": 1779958999,
"estimated_time": 100,
"actual_time": 51,
"result": {
"videos": [
{
"url": ["https://upload.apimart.ai/f/video/xxxx.mp4"],
"expires_at": 1780045399
}
]
}
}
}
data.result.videos[0].url[0]. Kolom url itu sendiri merupakan array. Tautan video biasanya kedaluwarsa setelah 24 jam — segera unduh atau transfer.
Contoh hasil gagal
{
"code": 200,
"data": {
"id": "task_01KSPX48B8V1M6C2ZN0D0T4BKB",
"status": "failed",
"progress": 100,
"cost": 0,
"credits_cost": 0,
"created": 1779958948,
"completed": 1779958960,
"error": {
"code": "task_failed",
"message": "pixverse error 400063: moderation failed",
"type": "task_failed"
}
}
}
cost umumnya 0. Penyebab kesalahan terdapat pada data.error.message.
Skenario Penggunaan
Skenario 1: Teks-ke-video
{
"model": "pixverse-v6",
"prompt": "A neon-lit alley in Tokyo at night, light rain, anamorphic lens flare",
"size": "21:9",
"resolution": "720p",
"duration": 8,
"seed": 42,
"audio": true
}
Skenario 2: Gambar-ke-video
{
"model": "pixverse-v6",
"prompt": "Camera slowly zooms in, gentle wind moves the leaves",
"image_urls": ["https://example.com/first-frame.jpg"],
"resolution": "540p",
"duration": 5
}
Skenario 3: Transisi frame awal/akhir
{
"model": "pixverse-v6",
"prompt": "transform smoothly from a puppy to a cat",
"first_frame_image": "https://example.com/puppy.jpg",
"last_frame_image": "https://example.com/cat.jpg",
"resolution": "540p",
"duration": 5,
"motion_mode": "normal"
}
Skenario 4: Fusi gambar referensi multipel
{
"model": "pixverse-v6",
"prompt": "A girl wearing the outfit from image 2, holding the cat from image 3",
"img_references": [
"https://example.com/character.jpg",
"https://example.com/outfit.jpg",
"https://example.com/cat.jpg"
],
"size": "9:16",
"resolution": "720p",
"duration": 5
}
Skenario 5: Perpanjangan video
{
"model": "pixverse-v6",
"prompt": "the character now walks into a forest",
"extend_from_task_id": "task_01JWXXXXXXXXXXXX",
"resolution": "540p",
"duration": 5
}