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.1",
    "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"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.1",
    "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.1 adalah entry terpadu untuk Teks-ke-Video / Gambar-ke-Video / Gambar-Referensi-ke-Video. 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
Prioritas routing (tinggi ke rendah): first_frame_image > image_urls > hanya prompt. Aturan saling eksklusif: dua field media (first_frame_image / image_urls) saling eksklusif. Mengirim dua field yang saling eksklusif secara bersamaan akan mengembalikan 400 mixed_media_not_allowed.

Parameter Request

model
string
wajib
Nama model pembuatan video, tetap sebagai happyhorse-1.1
prompt
string
Deskripsi konten video, hingga 2500 karakter; tidak boleh berisi token khususContoh: "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
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): 1–9 gambar, digunakan sebagai referensi subjek/gaya untuk membuat adegan baruMendukung URL atau base64Saling eksklusif dengan first_frame_image
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: 1–9 gambar
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
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 — rasio aspek output ditentukan otomatis oleh media input (gambar frame pertama)
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.1",
  "prompt": "A little girl walking down the road, cinematic feel"
}

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

{
  "model": "happyhorse-1.1",
  "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.1",
  "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.1",
  "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: 720P untuk Menghemat Biaya

{
  "model": "happyhorse-1.1",
  "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)
Menghemat biayaGunakan resolution: "720P"

Tips Penggunaan

  1. Logika entry terpadu: field input menentukan mode. Perhatikan bahwa dua field media (first_frame_image / image_urls) saling eksklusif
  2. size hanya efektif di T2V/R2V: dalam mode I2V, 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
Kueri Hasil TugasPembuatan video adalah tugas asinkron yang mengembalikan task_id saat dikirim. Gunakan endpoint Dapatkan Status Tugas untuk mengueri progres dan hasil pembuatan.