Skip to main content
POST
Halaman ini untuk model resmi grok-imagine-video dan grok-imagine-video-1.5. Keduanya berbeda dari grok-imagine-1.5-video-ext; jangan campur nama atau parameternya.
Jangan paparkan API Key di browser, variabel publik, LocalStorage, URL, atau log. Panggil APIMart melalui backend atau BFF.

Ringkasan integrasi

Semua mode memakai endpoint asinkron yang sama:
Setelah mengirim, simpan data[0].task_id, lalu polling:
Jangan kirim X-APIMart-Response-Version; header ini mengaktifkan respons HTTP 202. Halaman ini memakai format asinkron HTTP 200 lama.

Kemampuan model

Kontrak publik tidak menetapkan batas tetap jumlah gambar. Gunakan array URL valid yang tidak kosong dan pertahankan urutannya; jangan gunakan batas model gambar.

Header permintaan

string
wajib
Bearer <APIMART_API_KEY>
string
wajib
Selalu gunakan application/json.
string
application/json
string
Idempotency-Key opsional dan sangat disarankan untuk permintaan berbayar. Mendukung 1–191 karakter ASCII terlihat; UUID disarankan. Retry jaringan memakai key dan body asli. Jangan ganti key jika hasil belum pasti.Gunakan Key baru untuk operasi logis baru. Percobaan ulang harus memakai Key dan body asli.

Parameter

Field umum

string
wajib
Nama model resmi; edit hanya model dasar
  • grok-imagine-video
  • grok-imagine-video-1.5
string
wajib
Instruksi tidak kosong, maksimal 8000 UnicodeArray.from(prompt).length
boolean
default:false
Menentukan apakah moderasi konten dijalankan sebelum tugas video dikirim.
  • true: Gunakan omni-moderation-latest untuk memeriksa prompt dan gambar masukan
  • false atau dihilangkan: Tidak meminta moderasi sehingga tidak menambah biaya atau latensi pemeriksaan (default)

Field pembuatan

integer
default:8
Hanya generasi; integer 1–15, default 8
string
default:"480p"
Base: 480p/720p; 1.5: 480p/720p/1080p; default 480p
  • grok-imagine-video: 480p, 720p
  • grok-imagine-video-1.5: 480p, 720p, 1080p
string
default:"auto"
Hanya generasi; auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, atau 2:3
  • auto
  • 1:1, 16:9, 9:16
  • 4:3, 3:4, 3:2, 2:3
string[]
Array opsional; setiap item URL HTTPS publik; hilangkan jika kosong
  • Setiap item harus berupa URL HTTPS publik; URL relatif, Data URL, dan Base64 mentah tidak didukung.
  • Jangan kirim alias seperti image, images, atau input_reference.
  • Urutan dipertahankan; URL duplikat memakai beberapa slot dan dapat ditagih lebih dari sekali.

Field pengeditan video

object
Video sumber {url} HTTPS publik; hanya Base
Pengeditan video memerlukan model, prompt, dan video, serta dapat menyertakan nsfw_check secara opsional. Jangan kirim duration, resolution, aspect_ratio, atau image_urls; platform mendeteksi durasi sumber.

Tipe permintaan TypeScript

Gunakan discriminated union agar field pembuatan tidak terkirim ke pengeditan.

Contoh

Tugas asinkron

Berhasil membuat

Pembuatan berhasil mengembalikan HTTP 200. Simpan data[0].task_id; pengiriman belum berarti video selesai. ID tugas berarti terkirim, bukan selesai.

Periksa tugas

Poll GET /v1/tasks/{task_id} tiap 3–5 detik. Setelah reload, lanjutkan dengan ID tersimpan.

Respons selesai

result.videos[0].url adalah array string, bukan string tunggal. Validasi setiap nilai sebagai URL HTTPS. Validasi runtime disarankan:
Gunakan expires_at untuk masa berlaku. Jangan hard-code durasi; minta pengguna mengunduh atau menyimpan.

Respons gagal

Kueri dapat memberi HTTP 200 saat data.status=failed. Tentukan hasil dari data.status; tugas gagal memiliki cost=0.

Katalog harga

Baca GET /api/pricing/models/all dan cari id di data.models.video. Harga hanya estimasi; jumlah final adalah data.cost.

Harga video keluaran

  • Key harga memakai 480P/720P/1080P, sedangkan nilai permintaan huruf kecil; normalkan saat mencari.
  • default adalah metadata kompatibilitas, bukan resolusi pilihan.
  • Gunakan after_discount langsung; jangan terapkan diskon lagi.

Harga material masukan

Harga input video berupa objek skalar. Jangan wajibkan items, billing_mode, atau max_billable_seconds. Model 1.5 tidak memiliki harga input video.

Rumus estimasi

Harga khusus dan pembulatan server dapat berbeda. Nilai akhir selalu data.cost.

Aturan frontend

Peralihan model

  • Base hanya 480p/720p; 1.5 juga 1080p.
  • Dari 1.5 1080p ke Base kembali ke 480p.
  • Mode edit mengunci grok-imagine-video.

Peralihan mode

nsfw_check bersifat opsional di semua mode. Kirim true saat moderasi aktif; hilangkan atau kirim false saat nonaktif. Nonaktifkan tombol jika salah satu kondisi berikut terpenuhi:
  • Mode teks menghilangkan image_urls dan video.
  • Mode referensi mengirim image_urls tanpa video.
  • Mode edit membersihkan field generasi.
  • Nonaktifkan untuk prompt, durasi, resolusi, URL tidak valid, upload aktif, atau kiriman duplikat.
  • Prompt ≤8000 Unicode dan durasi integer 1–15.
  • Hanya URL HTTPS publik; hilangkan image_urls kosong.

Error umum

Checklist frontend

  • API Key hanya di backend atau BFF.
  • Jangan campur model resmi dengan grok-imagine-1.5-video-ext.
  • Prompt ≤8000 Unicode dan durasi integer 1–15.
  • Hanya URL HTTPS publik; hilangkan image_urls kosong.
  • Untuk pengeditan, kirim hanya model/prompt/video ditambah nsfw_check opsional dan gunakan model Base.
  • Baca data[0].task_id dan akhir dari data.status.
  • Baca result.videos[].url[] dan patuhi expires_at.
  • Tampilkan katalog dan gunakan data.cost final.