Skip to main content
POST
Text-to-image · tugas asinkron. Kirim POST /v1/images/generations, lalu polling Dapatkan status tugas.
Nama model tetap grok-imagine-2.0-ext. Tidak didukung: gambar referensi, stream, atau nilai response_format selain url.
Jangan menaruh API key di bundle browser (VITE_* / NEXT_PUBLIC_*, LocalStorage, dll.). Lebih baik browser memanggil BFF Anda sendiri; simpan key APIMart di server.

Kemampuan dan batasan

Autentikasi dan header yang direkomendasikan

string
wajib
Bearer token. Dapatkan key dari halaman API Key.

Parameter permintaan

string
wajib
Nilai tetap: grok-imagine-2.0-ext
string
wajib
Prompt. Harus non-kosong setelah trim. Trim sebelum submit.
integer
default:"1"
Jumlah gambar: 112. 0 eksplisit error. Abaikan untuk 1.
string
Rasio aspek. Lebih baik string rasio (UI sebaiknya hanya menampilkan rasio):Alias piksel: 1024x1024 (1:1), 1024x1792 (2:3), 1792x1024 (3:2), 720x1280 (9:16), 1280x720 (16:9).Nilai di luar whitelist mengembalikan 400 invalid_size (mis. 1:2, 2:1, 4:5, auto).
Piksel aktual untuk rasio tertentu dapat berbeda dari tabel alias (mis. 1:1 dapat mengembalikan 1408×1408). Percayai gambar yang dikembalikan; jangan menulis ulang size dari piksel terukur.
string
Bidang mode kualitas. Nilai terverifikasi: quality.
  • Abaikan (model default mode quality), atau
  • Kirim resolution: "quality" secara eksplisit
Bukan tier piksel 1K / 2K / 4K; framing dikontrol oleh size.
Jangan kirim bidang publik quality — Anda mendapat 400 invalid_quality. Gunakan resolution.
string
default:"url"
Hanya url yang diizinkan. Boleh diabaikan. b64_json / base64400 invalid_response_format.
string
Opsional. HTTPS base URL publik. Saat status terminal, platform POST ke {webhook}/callback. Hanya sisi server — lihat Webhook.

Parameter yang tidak didukung

Bangun permintaan dengan whitelist; jangan meneruskan objek form generik dari model gambar lain.

Contoh permintaan

Minimal

Direkomendasikan

Respons submit

Lebih baik X-APIMart-Response-Version: 2026-07-27. Sukses adalah HTTP 202; task id ada di data.id (jangan andalkan format lama data[0].task_id). Simpan:
  • data.id untuk polling
  • request_id untuk debugging gateway
  • Idempotency-Key untuk retry aman saat hasil tidak diketahui
  • parameter permintaan asli untuk UI / dukungan

Idempotensi dan retry aman

Pembuatan gambar ditagih — sangat disarankan Idempotency-Key (1–191 karakter ASCII yang dapat dicetak; UUID paling mudah; disimpan ~24 jam). Pada timeout jaringan POST saat Anda tidak tahu apakah server menerima pekerjaan, jangan langsung buat key baru — retry dengan key / body / versi respons yang sama.

Polling tugas

Opsional language: zh / en / ko / ja (hanya lokalisasi pesan kegagalan). Lihat Dapatkan status tugas.

Status

Polling sekitar setiap 2 detik; batas mendekati 10 menit atau 120 percobaan. Hormati Retry-After pada 429. Tugas disimpan ~3 hari secara default — simpan task id jika klien timeout.

Contoh selesai

Parsing url dan image_ids

  1. Gunakan url[] untuk tampilan; saat n>1, telusuri semua entri
  2. Pasangkan per indeks hanya jika image_ids.length === url.length
  3. image_ids yang hilang tetap memungkinkan tampilan
  4. Tautan berlaku 72 jam — unduh segera; juga percayai expires_at

Penagihan

Harga dasar $0.08 per gambar (pengiriman berhasil):
  • UI pra-submit sebaiknya mengatakan “estimasi”; USD final adalah data.cost
  • data.credits_cost adalah tampilan kredit (saat ini ~ USD × 10)
  • Pre-charge berdasarkan jumlah diminta; settle berdasarkan jumlah berhasil (refund parsial jika gagal parsial)
  • Gagal penuh: cost=0, pre-charge dikembalikan
  • Jangan membangun kunci harga dari resolution; model ini flat per gambar

Webhook (opsional)

  • Berikan base URL; platform memanggil {base}/callback
  • Harus publik dan lolos pemeriksaan SSRF
  • Jika webhook_secret diset, tanda tangan adalah hex(HMAC-SHA256(secret, raw_body)) atas byte mentah
  • Body callback cocok dengan data kueri tugas (tanpa wrapper ekstra {code,data})
  • Tetap sediakan polling frekuensi rendah sebagai fallback

Kesalahan umum

Lebih baik error.message untuk UI. Jangan tampilkan detail autentikasi internal ke pengguna akhir.

Perbedaan dari 1.5 (ringkasan)