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.
$ 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" }Quickstart
Empat langkah dari nol sampai file video tersimpan di server kamu.
Buat API key
Login ke dashboard, buka API Keys, buat key baru. Simpan — hanya tampil sekali.
Kirim pekerjaan
POST /api/v1/api dengan mode dan prompt. Response 202 berisi job_id.
Pantau status
Polling GET /api/v1/jobs/:id tiap 2–5 detik sampai status done.
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.
Autentikasi
Satu header untuk semuanya. Buat key di halaman API Keys setelah login — key hanya ditampilkan sekali.
x-api-key: nxb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// atau
Authorization: Bearer nxb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxJangan pernah menaruh API key di kode frontend atau repo publik.
Hapus key di dashboard bila bocor. Key lama langsung tidak berlaku.
GET /api/v1/public/membersDaftar endpoint
Delapan endpoint publik. Tujuh di antaranya memerlukan header x-api-key.
/api/v1/api/api/v1/jobs/:id/api/v1/jobs/:id/download/api/v1/api/credit/api/v1/modes/api/v1/gpt-image/api/v1/gpt-image-jobs/api/v1/public/membersDetail tiap endpoint dijelaskan pada bagian berikutnya. Base URL: https://nexabot.id
Mode generate
Pilih mode untuk melihat parameter, catatan penting, dan contoh request-nya.
t2vText to Video
~60sMembuat video pendek (≈10 detik) hanya dari deskripsi teks.
- Media
- —
- Parameter
- prompt, ratio, resolution
- 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.
{
"mode": "t2v",
"prompt": "cinematic drone shot over a neon city at night, rain reflections",
"ratio": 1,
"resolution": 1080
}Parameter request
Semua field dikirim sebagai JSON body pada POST /api/v1/api.
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
mode | string | Ya | t2v · sfv · i2v · r2v · extend · img · music · tts |
prompt | string | Kondisional | Deskripsi/teks. Wajib untuk semua mode kecuali extend (opsional). |
ratio | number | Tidak | 1 = landscape 16:9, 2 = portrait 9:16. Default 1. (t2v · sfv · i2v · r2v · extend) |
resolution | number | Tidak | 720 atau 1080. Default 720. Diabaikan untuk extend (selalu 1080). |
aspect | number | Tidak | 1 = 1:1, 2 = 16:9, 5 = 9:16. Hanya untuk mode img. |
voice | string | Tidak | Nama suara untuk tts. Default Achernar. Lihat daftar di GET /api/v1/modes. |
media | array | Kondisional | Array data URI base64. sfv: 1 gambar · i2v: 1–3 gambar · r2v: 1 video + opsional 1 gambar · extend: 1 video. |
modestring · Yat2v · sfv · i2v · r2v · extend · img · music · tts
promptstring · KondisionalDeskripsi/teks. Wajib untuk semua mode kecuali extend (opsional).
rationumber · Tidak1 = landscape 16:9, 2 = portrait 9:16. Default 1. (t2v · sfv · i2v · r2v · extend)
resolutionnumber · Tidak720 atau 1080. Default 720. Diabaikan untuk extend (selalu 1080).
aspectnumber · Tidak1 = 1:1, 2 = 16:9, 5 = 9:16. Hanya untuk mode img.
voicestring · TidakNama suara untuk tts. Default Achernar. Lihat daftar di GET /api/v1/modes.
mediaarray · KondisionalArray data URI base64. sfv: 1 gambar · i2v: 1–3 gambar · r2v: 1 video + opsional 1 gambar · extend: 1 video.
Response submit — 202 Accepted
{
"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
{
"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.
Contoh kode lengkap
Alur penuh: kirim pekerjaan → polling → unduh. Pilih bahasa yang kamu pakai.
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
}'Lebih rapat membebani server tanpa manfaat.
File dihapus otomatis 60 menit setelah selesai.
Mode r2v bisa butuh sampai 6 menit.
Biaya & batas
Bayar per request memakai kredit, atau aktifkan plan API Unlimited agar tidak memotong kredit sama sekali.
- Berlaku untuk semua mode
- Kredit tidak kedaluwarsa
- Otomatis di-refund bila gagal
- GPT Image 2.5: 0.1 kredit / gambar
- Tanpa potong kredit
- 14 request paralel
- Kelebihan otomatis masuk antrean
- Berlaku hanya untuk request API
Kapan plan berlaku
| Jenis plan | Berlaku di | Biaya | Paralel |
|---|---|---|---|
| API Unlimited | API saja | Gratis | 14 |
| Unlimited (web) | Web saja | — | 1 / user |
| Kredit | API & web | 0.15 / request | Tanpa 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.
Kode error
Semua error mengembalikan JSON { ok: false, error: string } dengan status HTTP yang sesuai.
Mode tidak valid, body bukan JSON, atau media salah format.
Periksa nilai mode dan pastikan media berupa data URI base64 yang benar.
Header x-api-key tidak ada atau key tidak dikenali.
Kirim key yang dibuat di halaman API Keys. Key hanya ditampilkan sekali saat dibuat.
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.
Job milik akun lain, atau endpoint internal dipanggil dengan API key reseller.
Gunakan key pemilik job. Endpoint internal hanya untuk session operator.
Job ID tidak ditemukan, atau sudah dihapus karena melewati TTL 6 jam.
Simpan job_id dan unduh hasil dalam 1 jam setelah selesai.
File hasil sudah kedaluwarsa (dihapus otomatis setelah 60 menit).
Unduh segera setelah status done. Record job tetap ada tapi filenya sudah hilang.
Terlalu banyak permintaan beruntun pada endpoint tertentu (rate limit).
Beri jeda antar request. Endpoint /api/v1/api sendiri tidak memiliki rate limit.
Kesalahan tak terduga di server.
Coba lagi. Bila berulang, hubungi kami lewat Telegram dengan job_id terkait.
Mesin AI sedang tidak tersedia atau menolak permintaan.
Coba lagi beberapa saat lagi. Kredit otomatis dikembalikan bila job gagal.
{
"ok": false,
"error": "Kredit tidak cukup (perlu 0.15 kredit per request). Silakan top up dulu."
}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.