Dokumentasi API
API GanzAi Store memakai format OpenAI. Kalau tool atau library lu bisa pakai OpenAI, cukup ganti base URL dan API key.
Mulai cepat
- Daftar dan salin API key lu. Key cuma ditampilkan sekali.
- Pilih model di halaman model, lalu salin ID-nya.
- Kirim request pertama:
curl /chat/completions \
-H "Authorization: Bearer $GANZAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-oss-20b","messages":[{"role":"user","content":"Halo!"}]}'Base URL & autentikasi
Authorization: Bearer API_KEY_LUapplication/jsonSimpan key di environment variable, jangan ditulis langsung di kode yang di-upload ke GitHub.
export GANZAI_API_KEY="sk-hganz-..."Endpoint
| Method | Path | Kegunaan |
|---|---|---|
POST | /v1/chat/completions | Kirim percakapan, terima jawaban model |
GET | /v1/models | Daftar model aktif beserta tarifnya |
GET | /v1/keys/me | Sisa credits dan statistik pemakaian |
Chat completions
| Parameter | Tipe | Keterangan |
|---|---|---|
model | string | ID model, boleh versi pendek seperti gpt-oss-20b atau lengkap seperti @cf/openai/gpt-oss-20b. Kalau kosong, dipakai Qwen 2.5 Coder. |
messages | array | Wajib. Daftar pesan dengan role (system, user, assistant) dan content. |
max_tokens | number | Batas panjang jawaban. Maksimal 8.192 dan otomatis diperkecil kalau credits nggak cukup. |
temperature | number | Tingkat kreativitas, 0 sampai 2. |
top_p | number | Alternatif pengatur variasi jawaban. |
stream | boolean | Kirim jawaban sebagai server-sent events. Lihat bagian Streaming. |
# pip install openai
import os
from openai import OpenAI
client = OpenAI(
base_url="",
api_key=os.environ["GANZAI_API_KEY"],
)
res = client.chat.completions.create(
model="gpt-oss-120b",
messages=[{"role": "user", "content": "Jelaskan rekursi dengan contoh Python"}],
)
print(res.choices[0].message.content)// npm install openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "",
apiKey: process.env.GANZAI_API_KEY,
});
const res = await client.chat.completions.create({
model: "gpt-oss-120b",
messages: [{ role: "user", content: "Jelaskan rekursi dengan contoh JavaScript" }],
});
console.log(res.choices[0].message.content);curl /chat/completions \
-H "Authorization: Bearer $GANZAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-oss-120b",
"messages": [{"role": "user", "content": "Halo!"}],
"max_tokens": 512
}'Selain field standar OpenAI, respons juga berisi credits_charged (potongan request ini) dan credits_remaining (sisa saldo).
Streaming
Set "stream": true dan jawaban dikirim dalam format server-sent events, diakhiri data: [DONE]. Library OpenAI membacanya seperti biasa.
Saat ini jawaban dikirim sekaligus setelah model selesai, bukan per kata. Format tetap kompatibel, cuma belum terasa mengetik real-time.
Pakai di Cursor, Cline, Aider, OpenCode
Semua tool di bawah memakai base URL dan API key lu.
Cline (VS Code)
Buka pengaturan Cline, pilih API Provider OpenAI Compatible, isi Base URL dan API Key, lalu tulis Model ID, misalnya gpt-oss-120b.
Cursor
Buka Settings, bagian Models. Masukkan API key di kolom OpenAI API Key, aktifkan opsi override base URL, isi dengan base URL di atas, lalu tambahkan nama model secara manual.
Aider
export OPENAI_API_BASE=""
export OPENAI_API_KEY="$GANZAI_API_KEY"
aider --model openai/gpt-oss-120bOpenCode
Tambahkan provider di opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ganzai": {
"npm": "@ai-sdk/openai-compatible",
"name": "GanzAi Store",
"options": {
"baseURL": "",
"apiKey": "{env:GANZAI_API_KEY}"
},
"models": {
"gpt-oss-120b": { "name": "gpt-oss-120b" },
"qwen2.5-coder-32b-instruct": { "name": "Qwen 2.5 Coder" }
}
}
}
}Mode agent yang mengandalkan tool calling bawaan model belum didukung. Mode chat dan edit kode biasa bisa dipakai.
Credits & tarif
Tiap request memotong credits sesuai jumlah token masuk dan keluar, dengan tarif berbeda per model. Tarif lengkap ada di halaman model. Request yang gagal di sisi server tidak memotong credits.
Cek saldo kapan saja lewat dashboard atau:
curl /keys/me -H "Authorization: Bearer $GANZAI_API_KEY"Kode error
Error dikirim dalam format {"error": {"message": "...", "type": "..."}}.
| Kode | Artinya | Yang perlu dilakukan |
|---|---|---|
400 | Request tidak valid atau model tidak dikenal | Cek field messages dan ID model |
401 | API key salah atau tidak dikirim | Cek header Authorization |
402 | Credits tidak cukup untuk model ini | Pakai model lebih hemat atau isi ulang |
429 | Terlalu banyak request | Tunggu beberapa detik lalu ulangi |
502 | Model gagal merespons | Ulangi atau pilih model lain |
503 | Model belum dibuka atau kuota harian penuh | Coba model lain atau tunggu jam 07.00 WIB |
Batasan
- Maksimal 20 request per menit untuk tiap API key.
- Panjang jawaban maksimal 8.192 token per request.
- Layanan punya kuota harian bersama yang reset setiap jam 07.00 WIB.
- Tool calling dan input gambar belum didukung.