REST API · v18 mode generate

Ship AI into
your product.

Satu REST API untuk video, gambar, musik, dan voice over. Kirim satu request, pantau job, unduh hasilnya. Tanpa SDK, tanpa antrean rumit — cukup HTTP.

0.15kredit / request
14paralel (Unlimited)
8mode generate
30suara TTS
Ambil API key
request.sh202 Accepted
$ curl -X POST https://nexabot.id/api/v1/api
  -H "x-api-key: nxb_••••"
  -d {
    "mode": "t2v",
    "prompt": "neon city at night"
  }

# response
{ "job_id": "a1b2c3d4", "status": "queued" }
job selesai ~60s · unduh sebelum 60 menit
01

Quickstart

Empat langkah dari nol sampai file video tersimpan di server kamu.

01

Buat API key

Login ke dashboard, buka API Keys, buat key baru. Simpan — hanya tampil sekali.

02

Kirim pekerjaan

POST /api/v1/api dengan mode dan prompt. Response 202 berisi job_id.

03

Pantau status

Polling GET /api/v1/jobs/:id tiap 2–5 detik sampai status done.

04

Unduh hasil

GET /api/v1/jobs/:id/download. Simpan file sebelum TTL 60 menit habis.

Semua endpoint memakai JSON. Hasil generate tidak dikembalikan langsung — kamu menerima job_id lalu menanyakan statusnya. Ini supaya request tidak menggantung menit-an dan aman untuk server produksi.

02

Autentikasi

Satu header untuk semuanya. Buat key di halaman API Keys setelah login — key hanya ditampilkan sekali.

Header
x-api-key: nxb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// atau
Authorization: Bearer nxb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Simpan di server

Jangan pernah menaruh API key di kode frontend atau repo publik.

Bisa dicabut kapan saja

Hapus key di dashboard bila bocor. Key lama langsung tidak berlaku.

Endpoint tanpa autentikasi:GET /api/v1/public/members
03

Daftar endpoint

Delapan endpoint publik. Tujuh di antaranya memerlukan header x-api-key.

POST/api/v1/api
Submit generate0.15 kredit / request
GET/api/v1/jobs/:id
Status job
GET/api/v1/jobs/:id/download
Download hasil
GET/api/v1/api/credit
Saldo kredit
GET/api/v1/modes
Daftar mode & suara
POST/api/v1/gpt-image
GPT Image 2.50.1 kredit / gambar
GET/api/v1/gpt-image-jobs
Riwayat GPT Image
GET/api/v1/public/members
Jumlah memberpublik

Detail tiap endpoint dijelaskan pada bagian berikutnya. Base URL: https://nexabot.id

04

Mode generate

Pilih mode untuk melihat parameter, catatan penting, dan contoh request-nya.

t2v

Text to Video

~60s

Membuat video pendek (≈10 detik) hanya dari deskripsi teks.

Media
—
Parameter
prompt, ratio, resolution
Catatan
  • Hasil 1280×720 (resolution 720) atau 1920×1080 (resolution 1080).
  • ratio 1 = landscape (16:9), ratio 2 = portrait (9:16).
  • Tidak butuh upload — paling cepat & paling stabil dari semua mode.
Request body
{
  "mode": "t2v",
  "prompt": "cinematic drone shot over a neon city at night, rain reflections",
  "ratio": 1,
  "resolution": 1080
}
Suara TTS30 suara
AchernarAchirdAlgenibAlgiebaAlnilamAoedeAutonoeCallirrhoeCharonDespinaEnceladusErinomeFenrirGacruxIapetusKoreLaomedeiaLedaOrusPuckPulcherrimaRasalgethiSadachbiaSadaltagerSchedarSulafatUmbrielVindemiatrixZephyrZubenelgenubi
05

Parameter request

Semua field dikirim sebagai JSON body pada POST /api/v1/api.

modestring · Ya

t2v · sfv · i2v · r2v · extend · img · music · tts

promptstring · Kondisional

Deskripsi/teks. Wajib untuk semua mode kecuali extend (opsional).

rationumber · Tidak

1 = landscape 16:9, 2 = portrait 9:16. Default 1. (t2v · sfv · i2v · r2v · extend)

resolutionnumber · Tidak

720 atau 1080. Default 720. Diabaikan untuk extend (selalu 1080).

aspectnumber · Tidak

1 = 1:1, 2 = 16:9, 5 = 9:16. Hanya untuk mode img.

voicestring · Tidak

Nama suara untuk tts. Default Achernar. Lihat daftar di GET /api/v1/modes.

mediaarray · Kondisional

Array data URI base64. sfv: 1 gambar · i2v: 1–3 gambar · r2v: 1 video + opsional 1 gambar · extend: 1 video.

Response submit — 202 Accepted

200 / 202
{
  "ok": true,
  "job_id": "a1b2c3d4e5f6a7b8",
  "status": "queued",
  "download_url": "/api/v1/jobs/a1b2c3d4e5f6a7b8/download",
  "credit_cost": 0.15,
  "unlimited": false,
  "credit_balance": 24.75,
  "est_seconds": 60
}

Response status job

GET /api/v1/jobs/:id
{
  "ok": true,
  "job": {
    "id": "a1b2c3d4e5f6a7b8",
    "status": "processing",        // queued | processing | done | failed
    "mode": "t2v",
    "prompt": "cinematic drone shot...",
    "progress": "menghasilkan video",
    "error": null,
    "width": null,
    "height": null,
    "size_bytes": null,
    "created_at": 1761193200000,
    "finished_at": null
  }
}

Idempotensi. Untuk mode tanpa media (t2v, img, music, tts), request identik yang dikirim ulang saat job sebelumnya masih berjalan akan mengembalikan job_id yang sama dengan credit_cost: 0 — tidak memotong kredit dua kali.

06

Contoh kode lengkap

Alur penuh: kirim pekerjaan → polling → unduh. Pilih bahasa yang kamu pakai.

bash
curl -X POST https://nexabot.id/api/v1/api \
  -H "x-api-key: nxb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "t2v",
    "prompt": "cinematic drone shot over a neon city at night",
    "ratio": 1,
    "resolution": 1080
  }'
Jeda polling 2–5s

Lebih rapat membebani server tanpa manfaat.

Unduh segera

File dihapus otomatis 60 menit setelah selesai.

Timeout > 10 menit

Mode r2v bisa butuh sampai 6 menit.

07

Biaya & batas

Bayar per request memakai kredit, atau aktifkan plan API Unlimited agar tidak memotong kredit sama sekali.

Pay as you go
0.15kredit / request
  • Berlaku untuk semua mode
  • Kredit tidak kedaluwarsa
  • Otomatis di-refund bila gagal
  • GPT Image 2.5: 0.1 kredit / gambar
API UnlimitedUNLIMITED
Rp 250.000/ 24 jam
  • Tanpa potong kredit
  • 14 request paralel
  • Kelebihan otomatis masuk antrean
  • Berlaku hanya untuk request API
Lihat paket

Kapan plan berlaku

Jenis planBerlaku diBiayaParalel
API UnlimitedAPI sajaGratis14
Unlimited (web)Web saja—1 / user
KreditAPI & web0.15 / requestTanpa batas
  • Plan API Unlimited hanya berlaku untuk request dengan header x-api-key — tidak memberi unlimited di web.
  • Plan Unlimited yang dibeli di web hanya berlaku di web, tidak untuk request API.
  • GPT Image 2.5 selalu memakai kredit (0.1 / gambar) walau plan apa pun sedang aktif.
  • Bila plan kedaluwarsa, request kembali memotong kredit — atau ditolak 402 bila saldo kurang.
08

Kode error

Semua error mengembalikan JSON { ok: false, error: string } dengan status HTTP yang sesuai.

400Bad Request

Mode tidak valid, body bukan JSON, atau media salah format.

Periksa nilai mode dan pastikan media berupa data URI base64 yang benar.

401Unauthorized

Header x-api-key tidak ada atau key tidak dikenali.

Kirim key yang dibuat di halaman API Keys. Key hanya ditampilkan sekali saat dibuat.

402Payment Required

Saldo kredit tidak cukup (butuh 0.15 per request, 0.1 untuk GPT Image).

Top up kredit, atau aktifkan plan API Unlimited agar request tidak memotong kredit.

403Forbidden

Job milik akun lain, atau endpoint internal dipanggil dengan API key reseller.

Gunakan key pemilik job. Endpoint internal hanya untuk session operator.

404Not Found

Job ID tidak ditemukan, atau sudah dihapus karena melewati TTL 6 jam.

Simpan job_id dan unduh hasil dalam 1 jam setelah selesai.

410Gone

File hasil sudah kedaluwarsa (dihapus otomatis setelah 60 menit).

Unduh segera setelah status done. Record job tetap ada tapi filenya sudah hilang.

429Too Many Requests

Terlalu banyak permintaan beruntun pada endpoint tertentu (rate limit).

Beri jeda antar request. Endpoint /api/v1/api sendiri tidak memiliki rate limit.

500Internal Error

Kesalahan tak terduga di server.

Coba lagi. Bila berulang, hubungi kami lewat Telegram dengan job_id terkait.

502Upstream Error

Mesin AI sedang tidak tersedia atau menolak permintaan.

Coba lagi beberapa saat lagi. Kredit otomatis dikembalikan bila job gagal.

Bentuk error
{
  "ok": false,
  "error": "Kredit tidak cukup (perlu 0.15 kredit per request). Silakan top up dulu."
}
09

Pertanyaan umum

Hal-hal yang paling sering ditanyakan saat integrasi.

Belum. Semua endpoint memakai HTTP + JSON standar, jadi bisa dipakai dari bahasa apa pun tanpa SDK. Contoh cURL, Node.js, Python, dan PHP tersedia di bagian Contoh kode.

Siap mengirim request pertama?

Buat API key, salin contoh kode, dan hasilkan video pertamamu dalam beberapa menit.