// dokumentasi
Integrasi dalam hitungan menit.
NusaGate kompatibel dengan API OpenAI: ganti baseURL, pakai SDK resmi apa pun, dan bayar per token dalam Rupiah. Semua contoh di halaman ini bisa langsung dijalankan.
// agent harness
OpenCode dan Hermes
NusaGate memakai endpoint OpenAI-compatible. Set API key melalui environment, lalu arahkan provider harness ke gateway.
OpenCode
Simpan konfigurasi provider berikut di file OpenCode Anda. Gunakan model publik NusaGate, bukan ID upstream.
export NUSAGATE_API_KEY="nsk_..."
# opencode.json
{
"provider": {
"nusagate": {
"baseURL": "https://api.nusagate.rafiakem.tech/v1",
"apiKey": "{env:NUSAGATE_API_KEY}",
"model": "gpt-5.6-terra"
}
}
}Jalankan OpenCode, pilih provider nusagate, lalu tes request.
Hermes
Arahkan konfigurasi model Hermes ke base URL yang sama. Nama field dapat berbeda حسب versi Hermes, tetapi nilainya tetap sama.
export NUSAGATE_API_KEY="nsk_..." export OPENAI_BASE_URL="https://api.nusagate.rafiakem.tech/v1" export OPENAI_MODEL="deepseek-v4-flash" hermes --provider openai-compatible
Jika instalasi Hermes memakai file config, salin nilai OPENAI_BASE_URL dan OPENAI_MODEL.
// mulai cepat
Request pertama Anda
Dua langkah: buat API key di dashboard, lalu kirim request ke gateway. Tidak ada SDK khusus yang perlu diinstal.
curl https://api.nusagate.rafiakem.tech/v1/chat/completions \
-H "Authorization: Bearer nsk_kunci_anda" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3-flash",
"messages": [
{ "role": "user", "content": "Halo, perkenalkan dirimu!" }
]
}'SDK OpenAI resmi (JavaScript maupun Python) langsung jalan tanpa adaptasi, cukup arahkan baseURL ke https://api.nusagate.rafiakem.tech/v1 dan apiKey ke key nsk_ Anda.
// katalog
Model yang tersedia
Harga per 1 juta token, dibayar prabayar dalam Rupiah. Katalog resmi selalu bisa diambil lewat GET /v1/models.
deepseek-v4-flash
DeepSeek V4 Flash
Konteks 1M untuk coding, RAG, dan pemrosesan volume besar.
- Input
- Rp 1.141/1M
Rp 2.282official- Output
- Rp 2.282/1M
Rp 4.564official
Konteks: 1M token
- Coding agent
- RAG dokumen panjang
- Batch processing
glm-5.3-flash
GLM 5.3 Flash
Model multimodal 1M untuk coding dan workflow agent.
- Input
- Rp 450/1M
- Output
- Rp 900/1M
Konteks: 1M token
- Coding agent
- Visual coding
- Tool calling
gpt-5.6-luna
GPT-5.6 Luna
Model hemat untuk workflow agent dengan volume tinggi.
- Input
- Rp 1.630/1M
Rp 3.260official- Output
- Rp 9.780/1M
Rp 19.560official
Konteks: 1.05M token
- Routine coding
- Background agents
- Klasifikasi
gpt-5.6-terra
GPT-5.6 Terra
Keseimbangan kualitas, reasoning, dan biaya.
- Input
- Rp 16.300/1M
Rp 32.600official- Output
- Rp 97.800/1M
Rp 195.600official
Konteks: 1.05M token
- Coding harian
- Analisis dokumen
- Agent production
gpt-5.6-sol
GPT-5.6 Sol
Flagship untuk pekerjaan kompleks dan long-horizon agent.
- Input
- Rp 40.750/1M
Rp 81.500official- Output
- Rp 244.500/1M
Rp 489.000official
Konteks: 1.05M token
- Arsitektur sistem
- Research agent
- Task kompleks
* Harga 50% di bawah official (kurs Rp16.300/USD). GLM 5.3 Flash tidak memiliki harga per-token resmi — “Hemat 98%” dibandingkan GLM-5.2 (USD 1,40/4,40). Harga dapat berubah.
// keamanan
Autentikasi & API key
Satu key berlaku untuk semua model. Key di-hash sebelum disimpan, sehingga kebocoran database tidak membocorkan kunci pelanggan.
// langkah 01
Daftar & buat API key
Registrasi di dashboard, buka menu API Keys, lalu buat key baru. Kunci berformat nsk_ dan hanya ditampilkan sekali saat dibuat. Simpan langsung di secret manager.
// langkah 02
Kirim di header
Setiap request ke gateway menyertakan header berikut. Jangan pernah menaruh API key di parameter URL, body, atau kode frontend yang terekspose ke browser.
Authorization: Bearer nsk_xxxxxxxx...// langkah 03
Topup & pantau usage
Isi saldo lewat topup manual (BCA, Mandiri, QRIS, DANA) di dashboard. Setelah diverifikasi, saldo aktif dan tiap request tercatat di halaman usage, rinci per model per hari.
Saldo kosong mengembalikan 402 insufficient_balance, bukan 500.
// endpoint utama
Chat Completions
POST /v1/chat/completions menerima body bergaya OpenAI. Semua parameter opsional mengikuti default model bila tidak dikirim.
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
model | string | wajib | Id model. Ambil daftar lengkap dari GET /v1/models, misalnya glm-5.3-flash atau gpt-5.6-luna. |
messages | array | wajib | Riwayat percakapan berupa objek { role, content }, role bisa system, user, atau assistant. |
stream | boolean | opsional | Default false. Bila true, respons dikirim sebagai Server-Sent Events. |
temperature | number | opsional | Kreativitas jawaban, 0 sampai 2. Default mengikuti model. |
max_tokens | integer | opsional | Batas maksimum token pada jawaban. |
Contoh streaming
curl https://api.nusagate.rafiakem.tech/v1/chat/completions \
-H "Authorization: Bearer nsk_kunci_anda" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3-flash",
"messages": [
{ "role": "user", "content": "Tulis puisi tiga baris tentang hujan." }
],
"stream": true
}'// referensi
Referensi Endpoint
Endpoint gateway publik yang kompatibel dengan format OpenAI dan dapat dipanggil langsung dari aplikasi Anda.
Gateway API
Endpoint publik untuk request dari aplikasi Anda. Autentikasi memakai API key nsk_... di header Authorization: Bearer.
// penanganan error
Error contract
Semua error mengikuti format { error, message } dengan status HTTP yang jelas, sehingga retry dan alerting bisa otomatis.
| Status | Kode error | Arti | Yang perlu dilakukan |
|---|---|---|---|
| 400 | validation_error | Body request tidak valid, misalnya messages kosong. | Perbaiki payload sesuai field details di respons. |
| 401 | invalid_api_key | API key salah, dicabut, atau header Authorization tidak ada. | Buat key baru di dashboard dan cek format header Bearer. |
| 402 | insufficient_balance | Saldo prabayar habis. | Topup lewat dashboard, saldo aktif setelah diverifikasi. |
| 404 | model_not_found | id model tidak ada di katalog. | Ambil daftar id resmi dari GET /v1/models. |
| 429 | rate_limit | Melebihi 60 request per menit per key. | Tunggu sesuai retry_after sebelum mencoba lagi. |
| 503 | upstream_busy | Upstream sedang sibuk atau tidak tersedia. | Coba ulang setelah retry_after, gateway sudah melakukan satu retry internal. |
| 500 | internal_error | Kesalahan tak terduga di sisi NusaGate. | Coba ulang, bila berlanjut hubungi support dengan requestId. |
HTTP/1.1 429 Too Many Requests
{
"error": "rate_limit",
"message": "Terlalu banyak request",
"retry_after": 60
}Siap mencoba?
Buat API key, isi saldo mulai Rp 20.000, dan kirim request pertama Anda.