Langsung ke konten utama
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": "skyreels-v4-fast",
    "prompt": "A serene forest at sunset with golden light filtering through the trees.",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "prompt_optimizer": true
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "skyreels-v4-fast",
    "prompt": "A serene forest at sunset with golden light filtering through the trees.",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "prompt_optimizer": true
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
    }
  ]
}

Otorisasi

Authorization
string
wajib
Semua endpoint API memerlukan autentikasi Bearer TokenDapatkan API Key Anda:Kunjungi Halaman Manajemen API Key untuk mendapatkan API Key AndaTambahkan ke header permintaan:
Authorization: Bearer YOUR_API_KEY

Mode Pembuatan

SkyReels V4 otomatis merutekan ke mode yang benar berdasarkan field permintaan — tanpa mode field diperlukan:
ModePemicuKemampuan
T2V (Teks-ke-Video)Hanya prompt + field umumPembuatan murni berbasis teks
I2V (Gambar-ke-Video)Salah satu dari first_frame_image / end_frame_image / mid_frame_imagesKontrol frame pertama/akhir/kunci
Omni (Referensi Multimodal)Salah satu dari ref_images / ref_videosSubjek referensi, kolase grid, gerakan referensi, perpanjangan video, sinkronisasi audio
Saling eksklusif secara ketat: Field I2V (first_frame_image / end_frame_image / mid_frame_images) dan field Omni (ref_images / ref_videos) tidak dapat digunakan bersama, jika tidak akan mengembalikan 422.
Mekanisme @tag: Saat menggunakan mid_frame_images / ref_images / ref_videos, setiap elemen harus mendeklarasikan tag yang dimulai dengan @ (misalnya, @image1, @Actor-1, @video1), dan tag harus muncul di prompt.Anggap prompt sebagai “skrip” dan tag sebagai “penunjuk karakter” ke aset tertentu (gambar / video). Misalnya, prompt seperti "@Actor-1 walks into the scene of @video1" menginstruksikan sistem untuk memasukkan gambar referensi subjek yang ditautkan ke @Actor-1 dan gerakan referensi yang ditautkan ke @video1 ke dalam proses pembuatan.

Parameter Permintaan

Field Umum

model
string
wajib
Tersedia dua tingkat model:
ModelPosisiKasus Penggunaan
skyreels-v4-fastPrioritas kecepatanPratinjau cepat, pembuatan batch, konten harian
skyreels-v4-stdPrioritas kualitas (25~30% lebih mahal daripada Cepat)Shot penting, kebutuhan detail tinggi, pengiriman formal
Field model harus disediakan secara eksplisit — tidak ada nilai default.
Harga sangat terkait dengan resolusi dan apakah ref_videos digunakan: 1080p jauh lebih mahal daripada 480p / 720p; tier dengan ref_videos (input video) berbiaya ~1,5 ~ 2× dibandingkan yang tanpa itu. Output audio dan video secara bersamaan belum didukung.
prompt
string
wajib
Prompt teks, maksimum 1280 tokensJelaskan adegan, subjek, aksi, dan gaya secara detail untuk hasil pembuatan yang lebih baik.Saat menggunakan ref_images / ref_videos / mid_frame_images, prompt harus berisi @tag terkait (misalnya, @Actor-1, @video1, @image1).Contoh: "@Actor-1 walks through a neon-lit street at night."
duration
integer
default:"5"
Durasi video output (detik)
  • Rentang: [3, 15]
  • Default: 5
Saat ref_videos.type=reference disediakan, duration ditimpa oleh durasi video referensi (maks. 10 detik).
resolution
string
default:"1080p"
Resolusi videoOpsi:
  • 480p
  • 720p
  • 1080p (default)
aspect_ratio
string
default:"16:9"
Rasio aspekOpsi:
  • 16:9 (default)
  • 4:3
  • 1:1
  • 9:16
  • 3:4
aspect_ratio diabaikan dalam mode I2V (rasio output ditentukan oleh gambar input); juga diabaikan saat Omni dikombinasikan dengan ref_videos.
prompt_optimizer
boolean
default:"true"
Apakah mengoptimalkan prompt secara otomatisJika diaktifkan, sistem otomatis mengoptimalkan prompt Anda untuk hasil pembuatan yang lebih baik.

Field Khusus I2V

first_frame_image
string
URL gambar frame pertama (jpg / jpeg / png / gif / bmp)Saat disediakan, gambar ini digunakan sebagai frame awal video.
end_frame_image
string
URL gambar frame akhir (jpg / jpeg / png / gif / bmp)Saat disediakan, gambar ini digunakan sebagai frame akhir video. Dapat dikombinasikan dengan first_frame_image untuk kontrol frame pertama dan terakhir.
mid_frame_images
object[]
Daftar keyframe tengah, hingga 6. Setiap elemen memiliki struktur berikut:

Field Khusus Omni

ref_images
object[]
Daftar gambar referensi (semua elemen harus memiliki type). Setiap elemen memiliki struktur berikut:
ref_videos
object[]
Daftar video referensi, hingga 1. Setiap elemen memiliki struktur berikut:

Skenario yang Didukung

Skenario berikut didukung oleh keduanya skyreels-v4-fast dan skyreels-v4-std:
SkenarioModeField WajibKasus Penggunaan Umum
Teks-ke-VideoT2VpromptMurni berbasis teks, shot konsep cepat
Gambar-ke-Video - Frame PertamaI2Vfirst_frame_imageStill-to-video dengan frame awal yang ditentukan
Gambar-ke-Video - Frame AkhirI2Vend_frame_imageMenentukan frame penutup
Gambar-ke-Video - KeyframesI2Vmid_frame_images (1 ~ 6)Frame pertama + akhir + tengah untuk pengaturan tempo yang presisi
Omni Subjek Tunggal/MultiOmniref_images (type=image)Konsistensi karakter, framing multi-subjek
Omni Kolase GridOmniref_images (type=grid, 1 gambar)Video proses langkah demi langkah (tutorial, resep, demo)
Omni Gerakan ReferensiOmniref_videos (type=reference)Mereplikasi gerakan, subjek, atau gaya video referensi
Omni Perpanjangan VideoOmniref_videos (type=extend)Melanjutkan video yang ada dengan konten baru
Omni Sinkronisasi AudioOmniref_images (type=image) + audio_urlNarasi manusia digital, lip-sync berbasis audio

Batasan Parameter

Melanggar salah satu di bawah ini akan menyebabkan permintaan ditolak dengan respons 422, tidak ada biaya yang dikenakan:
ParameterBatasan
promptMaks. 1280 token
duration[3, 15] detik; ditimpa oleh durasi video referensi (maks. 10 dtk) saat ref_videos.type=reference
resolutionHanya 480p / 720p / 1080p
aspect_ratio16:9 / 4:3 / 1:1 / 9:16 / 3:4; diabaikan dalam I2V; diabaikan saat Omni membawa ref_videos
mid_frame_imagesHingga 6; time_stamp harus -1 atau dalam (0, duration)
ref_images secara keseluruhanSemua elemen harus berbagi type yang sama; tidak dapat berdampingan dengan field I2V
ref_images.type=gridPanjang daftar harus = 1; image_urls harus 1 gambar
ref_images.type=imagePanjang daftar 1 ~ 3; panjang setiap image_urls 1 ~ 5
ref_images.audio_urlHanya didukung saat type=image, audio ≤ 15 detik
ref_videosHingga 1; video_url MP4 / MOV, ≤ 15 detik
ref_videos.type=referenceMenimpa duration yang diminta (maks. 10 dtk), dapat dikombinasikan dengan ref_images.type=image, membawa audio video input secara default
ref_videos.type=extendDitagih berdasarkan duration yang diminta; tidak dapat dikombinasikan dengan ref_images
Field tagHarus dimulai dengan @ dan muncul di prompt
Eksklusi I2V / OmniField I2V dan field Omni tidak dapat digunakan bersama

Respons

code
integer
Kode status respons, 200 jika berhasil
data
array
Array data respons

Contoh Permintaan

Kasus 1: Teks-ke-Video (Minimal)

{
  "model": "skyreels-v4-fast",
  "prompt": "A serene forest at sunset with golden light filtering through the trees."
}

Kasus 2: Teks-ke-Video (Parameter Lengkap)

{
  "model": "skyreels-v4-std",
  "prompt": "A serene forest at sunset.",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "16:9",
  "prompt_optimizer": true
}

Kasus 3: Gambar-ke-Video - Frame Pertama

{
  "model": "skyreels-v4-fast",
  "prompt": "Slowly pull the camera back to reveal the entire scene.",
  "first_frame_image": "https://example.com/start.png",
  "duration": 5
}

Kasus 4: Gambar-ke-Video - Frame Pertama/Akhir + Keyframe Tengah

{
  "model": "skyreels-v4-std",
  "prompt": "The King summons a flying dragon. @image1 The dragon lowers. The King mounts and flies away.",
  "duration": 8,
  "resolution": "1080p",
  "first_frame_image": "https://example.com/k2v_0.png",
  "end_frame_image":   "https://example.com/k2v_2.png",
  "mid_frame_images": [
    { "tag": "@image1", "image_url": "https://example.com/k2v_1.png", "time_stamp": 3 }
  ]
}

Kasus 5: Omni - Subjek Referensi Tunggal

{
  "model": "skyreels-v4-fast",
  "prompt": "@Actor-1 walks through a neon-lit street at night.",
  "ref_images": [
    { "tag": "@Actor-1", "type": "image", "image_urls": ["https://example.com/actor.jpg"] }
  ]
}

Kasus 6: Omni - Multi-Subjek + Video Gerakan Referensi

{
  "model": "skyreels-v4-fast",
  "prompt": "The man from @image_1 imitates the move on the left in @video_1. The woman from @image_2 imitates the right side.",
  "duration": 5,
  "ref_images": [
    { "tag": "@image_1", "type": "image", "image_urls": ["https://example.com/a.png"] },
    { "tag": "@image_2", "type": "image", "image_urls": ["https://example.com/b.png"] }
  ],
  "ref_videos": [
    { "tag": "@video_1", "type": "reference", "video_url": "https://example.com/motion.mp4" }
  ]
}
Kasus ini menggunakan ref_videos.type=reference, sehingga ** duration akan ditimpa oleh durasi aktual video referensi** (maks. 10 detik). Meskipun "duration": 5 dikirim di sini, durasi video final mengikuti video referensi.

Kasus 7: Omni - Kolase Grid

{
  "model": "skyreels-v4-fast",
  "prompt": "Create a video showing how to make tomato and egg noodles based on @image1.",
  "ref_images": [
    { "tag": "@image1", "type": "grid", "image_urls": ["https://example.com/recipe_grid.png"] }
  ]
}

Kasus 8: Omni - Perpanjangan Video (extend)

{
  "model": "skyreels-v4-fast",
  "prompt": "Video extended @video1, someone walks over and sits on the sofa.",
  "duration": 8,
  "ref_videos": [
    { "tag": "@video1", "type": "extend", "video_url": "https://example.com/source.mp4" }
  ]
}

Kasus 9: Omni - Sinkronisasi Audio (Berbasis Suara)

{
  "model": "skyreels-v4-std",
  "prompt": "@Actor-1 speaks with a calm tone.",
  "ref_images": [
    {
      "tag": "@Actor-1",
      "type": "image",
      "image_urls": ["https://example.com/actor.jpg"],
      "audio_url":  "https://example.com/voice.mp3"
    }
  ]
}
Kueri Hasil TugasPembuatan video adalah tugas asinkron yang mengembalikan task_id saat dikirim. Gunakan endpoint Dapatkan Status Tugas untuk mengueri progres dan hasil pembuatan.