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

  1. Daftar dan salin API key lu. Key cuma ditampilkan sekali.
  2. Pilih model di halaman model, lalu salin ID-nya.
  3. 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

Base URL
HeaderAuthorization: Bearer API_KEY_LU
Formatapplication/json

Simpan key di environment variable, jangan ditulis langsung di kode yang di-upload ke GitHub.

export GANZAI_API_KEY="sk-hganz-..."

Endpoint

MethodPathKegunaan
POST/v1/chat/completionsKirim percakapan, terima jawaban model
GET/v1/modelsDaftar model aktif beserta tarifnya
GET/v1/keys/meSisa credits dan statistik pemakaian

Chat completions

ParameterTipeKeterangan
modelstringID model, boleh versi pendek seperti gpt-oss-20b atau lengkap seperti @cf/openai/gpt-oss-20b. Kalau kosong, dipakai Qwen 2.5 Coder.
messagesarrayWajib. Daftar pesan dengan role (system, user, assistant) dan content.
max_tokensnumberBatas panjang jawaban. Maksimal 8.192 dan otomatis diperkecil kalau credits nggak cukup.
temperaturenumberTingkat kreativitas, 0 sampai 2.
top_pnumberAlternatif pengatur variasi jawaban.
streambooleanKirim 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)

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-120b

OpenCode

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": "..."}}.

KodeArtinyaYang perlu dilakukan
400Request tidak valid atau model tidak dikenalCek field messages dan ID model
401API key salah atau tidak dikirimCek header Authorization
402Credits tidak cukup untuk model iniPakai model lebih hemat atau isi ulang
429Terlalu banyak requestTunggu beberapa detik lalu ulangi
502Model gagal meresponsUlangi atau pilih model lain
503Model belum dibuka atau kuota harian penuhCoba 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.