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": "happyhorse-1.0",
    "prompt": "A little girl walking down the road, cinematic feel",
    "resolution": "1080P",
    "size": "16:9",
    "duration": 5,
    "seed": 42
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}

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": "happyhorse-1.0",
    "prompt": "A little girl walking down the road, cinematic feel",
    "resolution": "1080P",
    "size": "16:9",
    "duration": 5,
    "seed": 42
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}

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 request:
Authorization: Bearer YOUR_API_KEY

Routing Mode

happyhorse-1.0 adalah entry terpadu untuk Teks-ke-Video / Gambar-ke-Video / Gambar-Referensi-ke-Video / Video Edit. Backend secara otomatis menentukan mode berdasarkan parameter yang masuk. Semua mode ditagih dengan aturan yang sama (hanya resolusi × detik):
Field yang Anda kirimDiarahkan KeDeskripsi Mode
hanya promptTeks-ke-Video (T2V)Membuat video murni dari teks
prompt + first_frame_imageGambar-ke-Video (I2V)Menganimasikan dari gambar frame pertama
prompt + image_urls (1–9 gambar)Gambar-Referensi-ke-Video (R2V)Membuat adegan baru dari gambar referensi
prompt + video_url (opsional image_urls 0–5 sebagai referensi gaya / audio_setting)Video Edit (EDIT)Menulis ulang / mengubah gaya video sumber
Prioritas routing (tinggi ke rendah): video_url > first_frame_image > image_urls > hanya prompt. Aturan saling eksklusif: tiga field media (first_frame_image / image_urls / video_url) saling eksklusif secara berpasangan. Satu-satunya kombinasi valid adalah video_url + image_urls (mode EDIT + gambar referensi). Mengirim dua field yang saling eksklusif akan mengembalikan 400 mixed_media_not_allowed.

Parameter Request

model
string
wajib
Nama model pembuatan video, tetap sebagai happyhorse-1.0
prompt
string
Deskripsi konten video, hingga 2500 karakter; tidak boleh berisi token khusus
  • Mode T2V / R2V / EDIT: wajib
  • Mode I2V: opsional, tetapi direkomendasikan untuk memandu gerakan kamera dan aksi
Contoh: "A little girl walking down the road, cinematic feel"
first_frame_image
string
Gambar frame pertama, memicu I2V (Gambar-ke-Video). Mendukung URL atau base64 (data:image/<mime>;base64,<payload>, gateway mengunggahnya ke OSS secara otomatis)Saling eksklusif dengan image_urls / video_url
Persyaratan gambar frame pertama:
  • Format: JPEG / JPG / PNG / BMP / WEBP
  • Sisi pendek: ≥ 300px
  • Rasio aspek: 1:2.5 hingga 2.5:1
  • Ukuran file: ≤ 10MB
image_urls
array<string>
Array gambar:
  • Mode R2V (hanya image_urls yang diberikan): 1–9 gambar, digunakan sebagai referensi subjek/gaya untuk membuat adegan baru
  • Mode EDIT (diberikan bersama video_url): 0–5 gambar, digunakan sebagai referensi gaya
Mendukung URL atau base64Saling eksklusif dengan first_frame_image; dapat digabungkan dengan video_url
Persyaratan gambar referensi:
  • Format: JPEG / JPG / PNG / BMP / WEBP
  • Sisi pendek: direkomendasikan ≥ 720p
  • Rasio aspek: sisi pendek / sisi panjang ≥ 0.4
  • Ukuran file: ≤ 10MB
  • Jumlah: R2V harus 1–9; EDIT hingga 5
video_url
string
URL video sumber, memicu EDIT (Video Edit). Base64 tidak didukung — berikan link langsung HTTP/HTTPSSaling eksklusif dengan first_frame_image; dapat digabungkan dengan image_urls (≤ 5)
Persyaratan video sumber:
  • Durasi: 3–60 detik (> 15 dtk akan otomatis dipotong oleh upstream dari 0 hingga 15 dtk)
  • Resolusi: minimum 480p, sisi pendek ≥ 360
  • Rasio aspek: 1:8 hingga 8:1
  • Format: MP4 / MOV (H.264 direkomendasikan)
  • Frame rate: > 8 fps
  • Ukuran file: ≤ 100MB
Dalam mode EDIT, durasi video yang dibuat mengikuti video sumber (dibatasi pada potongan 15 dtk saat sumber lebih panjang). Parameter duration tidak berpengaruh di sini. Untuk mengontrol panjang output, potong video sumber ke durasi target sebelum mengunggah.
audio_setting
string
default:"auto"
Pengaturan audio, hanya efektif dalam mode EDIT (harus mengirim video_url)Opsi:
  • auto - Buat audio otomatis (default)
  • origin - Pertahankan trek audio video sumber
Mengirim field ini di luar mode EDIT akan mengembalikan 400 audio_setting_only_for_edit
resolution
string
default:"1080P"
Resolusi video (memengaruhi penagihan)Opsi:
  • 720P - Standar
  • 1080P - Definisi tinggi (default)
duration
integer
default:"5"
Durasi video dalam detik (memengaruhi penagihan)Rentang yang didukung: bilangan bulat apa pun dari 3 hingga 15Default: 5
Tidak berpengaruh dalam mode EDIT (saat video_url diberikan): durasi video yang dibuat mengikuti video sumber (ditagih berdasarkan potongan 15 dtk saat sumber lebih panjang dari 15 dtk). Untuk mengontrol panjang output, potong video sumber terlebih dahulu.
size
string
default:"16:9"
Rasio aspekFormat yang didukung:
  • 16:9 - Lanskap widescreen (default)
  • 9:16 - Potret
  • 1:1 - Persegi
  • 4:3 - Lanskap
  • 3:4 - Potret
Diabaikan dalam mode I2V / EDIT — rasio aspek output ditentukan otomatis oleh media input (gambar frame pertama / video sumber)
watermark
boolean
default:"false"
Apakah menambahkan watermark ke video yang dibuat
  • true: Tambahkan watermark
  • false: Jangan tambahkan watermark (default)
seed
integer
Seed acak yang digunakan untuk mengontrol keacakan konten yang dibuatRentang nilai: [0, 2147483647]. Jika dihilangkan, seed acak akan digunakan.
  • Untuk request yang identik, model menghasilkan hasil berbeda ketika menerima nilai seed berbeda (misalnya seed dihilangkan)
  • Untuk request yang identik, model menghasilkan hasil mirip ketika menerima nilai seed yang sama, tetapi konsistensi persis tidak dijamin

Respons

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

Kasus Penggunaan

Kasus 1: Teks-ke-Video T2V (Request Paling Sederhana)

{
  "model": "happyhorse-1.0",
  "prompt": "A little girl walking down the road, cinematic feel"
}

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

{
  "model": "happyhorse-1.0",
  "prompt": "A coastal road at sunset, slow-motion camera push-in, cinematic feel",
  "resolution": "1080P",
  "size": "16:9",
  "duration": 8,
  "seed": 42
}

Kasus 3: Gambar-ke-Video I2V (first_frame_image)

{
  "model": "happyhorse-1.0",
  "prompt": "Bring the scene in the image to life",
  "first_frame_image": "https://example.com/first_frame.png",
  "resolution": "1080P",
  "duration": 5
}

Kasus 4: Gambar-Referensi-ke-Video R2V (beberapa referensi)

{
  "model": "happyhorse-1.0",
  "prompt": "The protagonist from image 1 runs through the scene from image 2, then picks up the prop from image 3. Keep a 3D cartoon style with smooth motion.",
  "image_urls": [
    "https://example.com/img_01.jpg",
    "https://example.com/img_02.png",
    "https://example.com/img_03.jpeg"
  ],
  "resolution": "1080P",
  "size": "16:9",
  "duration": 5
}

Kasus 5: Edit Video EDIT (pertahankan audio asli + referensi gaya)

{
  "model": "happyhorse-1.0",
  "prompt": "Convert the character in the video to a cartoon style, preserving the original motion",
  "video_url": "https://example.com/source.mp4",
  "image_urls": [
    "https://example.com/style_ref.jpg"
  ],
  "resolution": "1080P",
  "audio_setting": "origin",
  "seed": 42
}

Kasus 6: 720P untuk Menghemat Biaya

{
  "model": "happyhorse-1.0",
  "prompt": "Waves crashing on the beach at sunset",
  "resolution": "720P",
  "size": "16:9",
  "duration": 5
}

Panduan Pemilihan Mode

KebutuhanPendekatan yang Direkomendasikan
Membuat video hanya dari teksKirim hanya prompt (T2V)
Membuat gambar “hidup” (menggunakannya sebagai frame pertama)Kirim first_frame_image (I2V)
Membuat adegan baru dari sekumpulan gambar referensiKirim image_urls (1–9, R2V)
Menulis ulang / mengubah gaya video yang adaKirim video_url (EDIT), opsional gabungkan dengan image_urls (0–5) sebagai referensi gaya
Menghemat biayaGunakan resolution: "720P"

Tips Penggunaan

  1. Logika entry terpadu: field input menentukan mode. Perhatikan bahwa tiga field media (first_frame_image / image_urls / video_url) saling eksklusif secara berpasangan
  2. size hanya efektif di T2V/R2V: dalam mode I2V / EDIT, size diabaikan — rasio aspek output ditentukan oleh media input
  3. Durasi: 5–10 detik adalah rentang yang ideal. Terlalu pendek menyebabkan gerakan patah-patah; terlalu panjang meningkatkan waktu pemrosesan upstream secara signifikan
  4. Kualitas gambar frame pertama: jelas, komposisi baik, subjek berada di tengah — sangat meningkatkan output I2V
  5. Penulisan prompt: jelaskan gerakan / kamera / suasana (mis. “slow push-in, cinematic, warm tones”) untuk hasil yang lebih baik daripada deskripsi adegan statis saja
  6. Video input EDIT: > 15 detik akan otomatis dipotong oleh upstream dari 0 hingga 15 dtk. Jika memerlukan segmen lain, potong video terlebih dahulu sendiri
Kueri Hasil TugasPembuatan video adalah tugas asinkron yang mengembalikan task_id saat dikirim. Gunakan endpoint Dapatkan Status Tugas untuk mengueri progres dan hasil pembuatan.