Semua integrasi
Agen AI & gateway

9Router

Router/gateway AI lokal (open-source). Pasang RouterKu sebagai provider custom OpenAI-compatible, lalu arahkan tool CLI ke 9Router.

Base URL dan API key diambil dari dasbor RouterKu (menu Integrasi & Kunci API). Pada contoh, ganti BASE_URL_DARI_DASBOR (berakhiran /v1), HOST_DARI_DASBOR (tanpa /v1) dan qdr-... dengan nilai milikmu.

9Router adalah router/gateway AI open-source (MIT) yang berjalan lokal di komputermu (http://localhost:20128). Ia menyatukan puluhan penyedia AI di balik satu endpoint OpenAI-compatible, plus fitur fallback otomatis dan hemat token. RouterKu dipasang di dalam 9Router sebagai provider custom, lalu semua tool CLI/IDE (Claude Code, Cursor, Cline, Codex, dll) yang menunjuk ke 9Router bisa memakai model RouterKu.

Nilai koneksi

Base URLBASE_URL_DARI_DASBOR
API Keyqdr-... (buat di menu Kunci API)
Modelsonnet-5 / opus-5
Dua endpoint berbeda. RouterKu (BASE_URL_DARI_DASBOR) dipasang di dalam 9Router sebagai provider. Tool codingmu justru menunjuk ke 9Router (http://localhost:20128/v1), dan 9Router yang meneruskan permintaan ke RouterKu.

Langkah-langkah

  1. Pasang & jalankan 9Router

    terminal
    npm install -g 9router
    9router

    Butuh Node.js 20+. Dasbor otomatis terbuka di http://localhost:20128.

  2. Buat kunci RouterKu

    Di RouterKu buka tab Kunci API → Buat kunci → salin (qdr-...). Kunci hanya tampil sekali.

  3. Tambah RouterKu sebagai provider (OpenAI-compatible)

    Di dasbor 9Router buka Providers → tambah penyedia baru bertipe OpenAI-compatible / Custom endpoint (9Router menyediakan opsi endpoint kompatibel-OpenAI kustom di daftar 40+ provider-nya). Isi:

    Base URLBASE_URL_DARI_DASBOR
    API Keyqdr-...
    Modelsonnet-5 / opus-5 / haiku-45

    9Router mendukung custom OpenAI/Anthropic compatible endpoints, jadi RouterKu masuk sebagai provider penuh — bisa dipakai langsung maupun di dalam Combo.

  4. (Opsional) Buat Combo untuk fallback

    Lewat fitur Combos, gabungkan RouterKu dengan penyedia lain jadi satu "model virtual" berfallback otomatis — mis. opus-5 (RouterKu) sebagai utama, lalu provider gratis/murah sebagai cadangan saat kuota habis.

  5. Arahkan tool CLI/IDE ke 9Router

    Set editor/CLI (Claude Code, Cursor, Cline, Codex, OpenClaw, dll) agar menunjuk ke 9Router, bukan langsung ke RouterKu:

    Base URLhttp://localhost:20128/v1
    API Key(kunci lokal dari dasbor 9Router)
    Model(model RouterKu, mis. sonnet-5, atau nama Combo)

    Kirim satu pesan untuk menguji. Balasan diteruskan 9Router ke RouterKu.

Model yang disarankan

opus-5Terkuat — penalaran mendalam untuk tugas berat, banyak tool, dan agen coding.
sonnet-5Andalan harian (default) — seimbang antara kualitas, kecepatan, dan biaya.
haiku-45Tercepat & termurah — balasan chat ringan, klasifikasi, dan boilerplate.

Tips

  • Fitur RTK & Caveman Mode bawaan 9Router memampatkan token — hemat 20–65% saat memakai model RouterKu.
  • Pakai Combo untuk fallback bertingkat: opus-5 untuk tugas berat, haiku-45 untuk balasan ringan.
  • Jalankan GET http://localhost:20128/v1/models untuk melihat semua model & Combo yang aktif di router.

Kalau bermasalah

  • 401 / authentication failed / invalid_api_key — cek dulu apakah kuncinya memang mati, atau cuma tidak sampai ke permintaan. Jalankan uji mandiri di bawah: kalau balasannya 200, kunci kamu SEHAT dan masalahnya ada di konfigurasi 9Router (lihat 3 poin berikutnya). Kalau bukan 200, buat kunci baru di menu Kunci API.
  • 401 padahal kunci sehat (1) — belum restart 9Router. Banyak aplikasi hanya membaca file .env/variabel lingkungan saat start. Setelah mengubah kunci, tutup penuh lalu jalankan ulang 9Router.
  • 401 padahal kunci sehat (2) — penulisan kunci kotor. Di file .env tulis polos tanpa kutip/spasi: ROUTERKU_API_KEY=qdr-... (bukan = "qdr-..."). Pastikan tidak ada spasi di ujung dan kunci tersalin utuh (tanpa terpotong).
  • 401 padahal kunci sehat (3) — nama variabel salah. Rujukan seperti ${ROUTERKU_API_KEY} umumnya hanya dikenali bila namanya HURUF BESAR dan variabelnya benar-benar ada; kalau tidak, teks ${...} terkirim mentah sebagai kunci → 401. Saat ragu, isi kunci qdr-... langsung untuk memastikan.
  • 402 / insufficient_balance — saldo habis. Isi lewat menu Isi Saldo.
  • 404 / model_not_found — ID model salah. Pakai persis, mis. sonnet-5 (daftar di GET /v1/models).
  • Tidak konek / timeout — pastikan Base URL berakhiran /v1 dan bisa diakses dari mesin 9Router.
  • 429 / rate_limited — melewati 240 permintaan/menit atau 24 paralel. Beri jeda atau kurangi konkurensi.

Uji mandiri kunci — jalankan di terminal mesin yang sama. Ganti qdr-... dengan kuncimu:

Terminal
curl -s -o /dev/null -w "%{http_code}\n" BASE_URL_DARI_DASBOR/chat/completions \
  -H "Authorization: Bearer qdr-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"haiku-45","max_tokens":10,"messages":[{"role":"user","content":"ping"}]}'
Hasil 200 = kunci dan saldo RouterKu sehat, jadi penyebab 401 ada di konfigurasi aplikasinya (paling sering: aplikasi belum di-restart setelah kunci diubah). Hasil 401 = kunci salah/dicabut → buat ulang di menu Kunci API. Hasil 402 = saldo habis → menu Isi Saldo.

Uji langsung ke RouterKu (opsional)

bash
curl BASE_URL_DARI_DASBOR/chat/completions \
  -H "Authorization: Bearer qdr-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"sonnet-5","messages":[{"role":"user","content":"Halo!"}]}'

Siap mulai pakai AI tanpa ribet?

Daftar gratis, isi saldo mulai Rp20.000 lewat QRIS, dan langsung tancap gas di editor atau aplikasimu.