Generation API — Overview & Kredit
Generate gambar dan video secara async, dipotong kredit. Submit job, poll sampai kelar, kredit kepotong di depan — otomatis balik kalau gagal atau macet.
Alur hidup job
ℹ️
Generation sepenuhnya async — gambar dan video sama-sama ikutin pola submit → poll
Submit langsung balik (HTTP 201) dengan job berstatus
processing. Nggak ada tunggu sinkron atau webhook callback — pemanggil wajib poll GET /api/gen/media/:id sampai job-nya nyampe status akhir.- Submit —
POST /api/gen/imageatauPOST /api/gen/video. Kredit langsung direservasi; response-nya balik denganstatus: "processing",waiting: true, danpollUrlbuat dipanggil selanjutnya. - Processing — job-nya di-render di server; ada tick background yang majuin tiap 2 menit.
- Poll — panggil
pollUrl(GET /api/gen/media/:id) kira-kira tiappollAfterSeconds(~10 detik) sampaiwaitingberubah jadifalse. - Status akhir —
completed(bacavideoUrl— medianya di-rehost ke URL permanen Kanzen Ads, soalnya URL dari provider aslinya kedaluwarsa) |failed(liaterrorMessage, kredit otomatis balik) |stalled(timeout — 15 menit gambar / 30 menit video, kredit otomatis balik, ke-log diCreditTransaction).
Detail lengkap tiap field di response poll — termasuk hint waiting, progress, nextAction, dan message — ada di Retrieve Media.
Cek saldo
GET
/api/gen/creditsbash
curl -H "x-api-key: hsk_your_key" https://kanzenads.com/api/gen/credits
Response 200
{
"balance": 49600,
"transactions": [
{ "id": "tx_1", "amount": -400, "reason": "image_generation", "refId": "clx...", "refType": "generated_media", "balanceAfter": 49600, "txHash": "...", "createdAt": "2026-07-08T10:00:00Z" }
]
}Tabel biaya
| Tipe | Parameter | Biaya |
|---|---|---|
| Gambar | per gambar, ukuran apa aja | 400 kredit × n |
| Video | SD, 6s | 1,000 kredit |
| Video | SD, 10s | 1,300 kredit |
| Video | HD, 6s | 2,000 kredit |
| Video | HD, 10s | 2,600 kredit |
| Video | SD, 15s | 1,950 kredit |
| Video | HD, 15s | 3,900 kredit |
ℹ️
Biaya dihitung di server dan nggak bisa di-override dari request body. Kredit kepotong atomik pas submit (request yang bakal bikin saldo minus langsung ditolak dengan 402), dan otomatis balik kalau job-nya nggak pernah kelar.
Endpoint
- Generate Image —
POST /api/gen/image - Generate Video —
POST /api/gen/video - Retrieve Media —
GET /api/gen/media/:id