GenZiAI

Pakai GenZi AI di coding agent

Satu API key GenZi untuk Claude Code, Codex CLI, Cursor, Cline, Continue, Aider, dan klien OpenAI/Anthropic apa pun. Semua jalur lewat billing yang sama: hold → upstream → settle, dan request yang gagal tidak ditagih.

1. Ringkasan — 3 jalur, 1 kunci

JalurBase URLAuthDipakai oleh
OpenAI-compatible Chat Completionshttps://ai.genzicorp.com/v1Authorization: BearerCodex CLI (wire_api="chat"), Cursor, Cline, Roo, Continue, Aider, SDK openai
Anthropic Messages APIhttps://ai.genzicorp.comx-api-key atau AuthorizationClaude Code, Agent SDK, SDK anthropic, Cline mode Anthropic
Responses APIhttps://ai.genzicorp.com/v1Authorization: BearerCodex CLI (wire_api="responses"), klien yang bicara protokol Responses

Langkah awalnya sama untuk semua tool:

1. Daftar / login      → https://ai.genzicorp.com/app?auth=register
2. Top up saldo        → QRIS / VA / DANA / OVO (minimum Rp10.000)
3. Konversi IDR → USD  → tombol manual di tab Billing (konversi TIDAK otomatis)
4. Buat API key        → tab "API Keys" (format gzi_...)
5. Tempel base URL + key ke coding agent kamu (contoh di bawah)
6. Cek saldo & pemakaian di console (tab Usage)
Catatan saldo: top up masuk sebagai saldo Rupiah. Model chat/vision menagih USD per 1M token, jadi konversi ke credit USD dulu lewat tombol manual di console — biarkan lewat jalur manual itu, jangan dialihkan otomatis.

2. Claude Code (Anthropic Messages API)

Claude Code menerima base URL gateway lewat environment variable. Set sekali di shell profile:

export ANTHROPIC_BASE_URL="https://ai.genzicorp.com"
export ANTHROPIC_AUTH_TOKEN="gzi_..."        # API key GenZi
export ANTHROPIC_MODEL="claude-sonnet-5"     # slug apa pun dari GET /v1/models

Atau lewat ~/.claude/settings.json supaya ikut ke semua sesi:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://ai.genzicorp.com",
    "ANTHROPIC_AUTH_TOKEN": "gzi_...",
    "ANTHROPIC_MODEL": "claude-sonnet-5"
  }
}

Cek koneksi: jalankan claude lalu perintah /status — kalau base URL GenZi kelihatan di sana, request sudah lewat gateway. Model non-Anthropic (DeepSeek, Qwen, GLM, Kimi, dsb.) juga bisa dipakai: ganti ANTHROPIC_MODEL ke slug katalog, contoh deepseek-v4.1-flash untuk menghemat.

Kalau model tidak muncul di picker: sebagian versi CLI memfilter nama model. Kirim slug GenZi apa pun lewat ANTHROPIC_MODEL, atau tambahkan ANTHROPIC_CUSTOM_MODEL_OPTION (fitur resmi CLI) agar slug katalog ikut tampil di daftar /model.

3. OpenAI Codex CLI

Codex CLI membaca ~/.codex/config.toml. Daftarkan GenZi sebagai provider, lalu pilih model dari katalog:

model = "gpt-5.3-codex"
model_provider = "genzi"

[model_providers.genzi]
name = "GenZi AI"
base_url = "https://ai.genzicorp.com/v1"
env_key = "GENZI_API_KEY"      # isi env-nya: export GENZI_API_KEY="gzi_..."
wire_api = "responses"

Ganti wire_api jadi "chat" kalau kamu pakai model non-codex (mis. claude-sonnet-5, deepseek-v4.1-flash) — jalur chat completions biasa. Bisa juga dipilih saat menjalankan:

codex --config model_provider=genzi --model gpt-5.1-codex "refactor fungsi ini"
codex --config model_provider=genzi --model deepseek-v4.1-flash "tulis unit test"
Keluarga codex: model tipe codex/reasoning (gpt-5.x-codex, gpt-5.4-pro) dilayani lewat protokol Responses → wire_api="responses". Model chat biasa pakai wire_api="chat".

4. Cursor

Settings → Models → bagian OpenAI API Key:

FieldNilai
API Keygzi_...
Override OpenAI Base URLhttps://ai.genzicorp.com/v1
Add modeltulis slug dari GET /v1/models, mis. claude-sonnet-5, gpt-6.1-sol, deepseek-v4.1-flash
Yang tidak ikut lewat override: Tab autocomplete dan indexing/embeddings Cursor tetap jalan di infrastruktur Cursor — gateway ini tidak menyediakan /v1/embeddings. Yang diarahkan ke GenZi adalah model chat/agent kamu.

5. Cline / Roo Code (VS Code)

Buka panel Cline → ikon gear → Providers:

FieldNilai
API ProviderOpenAI Compatible (bukan "OpenAI" — yang itu terkunci ke api.openai.com)
Base URLhttps://ai.genzicorp.com/v1
API Keygzi_...
Model IDslug katalog, mis. claude-sonnet-5

Klik Verify. Roo Code (fork Cline) memakai kolom yang sama. Alternatif jalur Anthropic: pilih provider Anthropic → centang "Use custom base URL" → https://ai.genzicorp.com + API key GenZi di kolom Anthropic API Key.

6. Continue (VS Code / JetBrains)

Edit ~/.continue/config.yaml:

name: GenZi
version: 1.0.0
schema: v1
models:
  - name: "Claude Sonnet 5 (GenZi)"
    provider: openai
    model: claude-sonnet-5
    apiBase: "https://ai.genzicorp.com/v1"
    apiKey: "gzi_..."
    roles: [chat, edit, apply]
  - name: "DeepSeek V4.1 Flash (GenZi) — murah"
    provider: openai
    model: deepseek-v4.1-flash
    apiBase: "https://ai.genzicorp.com/v1"
    apiKey: "gzi_..."
    roles: [chat, edit, apply]
Role autocomplete: pakai model chat biasa juga bisa, tapi FIM/autocomplete khusus tidak disediakan gateway — pakai role chat/edit/apply dulu.

7. Aider

# ~/.aider.conf.yml  atau flag CLI
openai-api-base: "https://ai.genzicorp.com/v1"
openai-api-key: "gzi_..."
model: "openai/claude-sonnet-5"     # prefix openai/ = endpoint OpenAI-compatible
weak-model: "openai/deepseek-v4.1-flash"
aider --openai-api-base https://ai.genzicorp.com/v1 --openai-api-key gzi_... \
      --model openai/claude-sonnet-5

Aider menghapus prefix openai/ sebelum mengirim ke endpoint — jadi slug akhirnya tetap slug katalog GenZi.

8. SDK & curl

# Python (SDK openai)
from openai import OpenAI
client = OpenAI(base_url="https://ai.genzicorp.com/v1", api_key="gzi_...")
r = client.chat.completions.create(model="claude-sonnet-5",
      messages=[{"role":"user","content":"jelaskan fungsi ini"}])
print(r.choices[0].message.content)
# Python (SDK anthropic → jalur Messages API)
from anthropic import Anthropic
client = Anthropic(base_url="https://ai.genzicorp.com", api_key="gzi_...")
msg = client.messages.create(model="claude-sonnet-5", max_tokens=512,
      messages=[{"role":"user","content":"ping"}])
print(msg.content[0].text)
# Node / TypeScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://ai.genzicorp.com/v1", apiKey: process.env.GENZI_API_KEY });

# curl (OpenAI-compatible)
curl https://ai.genzicorp.com/v1/chat/completions \
  -H "Authorization: Bearer gzi_..." -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"halo"}]}'

# curl (Anthropic Messages API)
curl https://ai.genzicorp.com/v1/messages \
  -H "x-api-key: gzi_..." -H "anthropic-version: 2023-06-01" -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"halo"}]}'

Klien OpenAI-compatible lain (OpenHands, n8n, LangChain, LlamaIndex, Zed, dsb.) cukup diberi base URL https://ai.genzicorp.com/v1 + API key GenZi.

9. Pilih model

Harga di bawah ditarik live dari GET /v1/models saat halaman ini dibuka (USD per 1M token). Kolom "cocok untuk" = rekomendasi praktis, bukan klaim vendor.

SlugInput / OutputKonteksCocok untuk
claude-sonnet-5 vision——default coding agent: kualitas/biaya seimbang
claude-opus-5 vision——tugas berat: refactor besar, arsitektur
claude-haiku-5-5 vision——model kecil/cepat: sub-task, ringkas, judul commit
gpt-6.1-sol vision——alternatif OpenAI-family yang murah
gpt-5.3-codex responses——agent coding CLI (Codex) — jalur Responses
gpt-5.1-codex responses——versi codex lebih murah
gpt-5.4-pro responses——reasoning terkuat (tier mahal) — pakai hemat
deepseek-v4.1-flash vision——agent loop panjang & murah (konteks 1M)
glm-5.3-flash vision——paling murah untuk task massal
qwen3.7-plus vision——murah + bisa lihat gambar/screenshot
gemini-3.8-flash vision——konteks ~1jt token, gambar/screenshot
kimi-k3.1-pro-highspeed——output sangat panjang (maks output besar)
kimi-k2.7-code-highspeed——khusus kerja coding, konteks 256k
deepseek-v4-pro-0813——maks output 384k, harga menengah
mimo-v2.6-pro vision——viable murah untuk chat/edit rutin

Memuat harga live… katalog penuh: /catalog · JSON: /v1/models

10. Tips & batasan

HalPerilaku
StreamingDidukung di /v1/chat/completions, /v1/messages, dan /v1/responses — agent CLI butuh ini untuk output bertahap.
Gambar / screenshotKirim sebagai data: URL (inline base64) atau URL publik, pada model ber-badge vision.
Ukuran bodyMaks 4 MB per request (di atas itu 413 request_too_large). Repo besar: kirim per-file / pakai /v1/messages/count_tokens untuk estimasi dulu.
Estimasi tokenPOST /v1/messages/count_tokens — perkiraan chars/4, tanpa inference dan tanpa tagihan.
Rate limit120 request/menit per API key + cap biaya per key (lihat header X-RateLimit-Limit).
Retry amanKirim header Idempotency-Key — retry dengan key sama tidak menghasilkan tagihan dobel.
Request gagalTidak ditagih: error upstream, koneksi putus, atau respons kosong dicatat sebagai waived (biaya 0).
Bukan bagian gatewayEmbeddings (/v1/embeddings = 404), Batch API, Files API, dan server-side prompt caching. Blok cache_control pada format Anthropic dibuang dan dicatat di log server.
Paket tokenKalau volume besar, ada paket token (Token Plan) yang dihitung satuan unit — halaman console tab paket token.

11. Error yang sering muncul

StatusArtiYang dilakukan
401API key salah / sudah dicabutBuat key baru di console, perbarui konfigurasi agent
402Saldo tidak cukup untuk hold request itu (insufficient_balance)Top up, lalu konversi IDR → USD di tab Billing
404Slug model tidak dikenal di jalur ituPakai slug persis dari GET /v1/models
409model_unpriced — model belum punya harga (tidak bisa ditagih)Pilih model lain, atau laporkan slug-nya
413Body > 4 MBPecah request / kurangi konteks
429Kena rate limit atau cap biaya keyTunggu, atau naikkan cap di console
5xxError upstream/transport (mis. supplier sedang gangguan)Retry dengan Idempotency-Key; request gagal tidak ditagih

Butuh detail format dan field lengkap? Lihat /docs · jalur Anthropic: /anthropic · base URL & contoh lain: /connect · katalog: /catalog