Dokumentasi
Classai Router API
Kompatibel dengan OpenAI Chat Completions dan Anthropic Messages. Kalau kodemu sudah jalan dengan salah satu SDK itu, cukup ganti base URL dan API key.
Mulai cepat
Base URL:
https://router.classai.id/v1Salin key default di Dashboard → API Keys (dibuat otomatis saat daftar), isi saldo atau beli paket, lalu jalankan — cukup base URL dan API key ini, tidak perlu aplikasi lain:
curl https://router.classai.id/v1/chat/completions \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5.5",
"messages": [
{"role": "user", "content": "Halo! Jelaskan AI dalam 1 kalimat."}
]
}'Autentikasi
Kirim key di header Authorization: Bearer sk_live_…. Header x-api-key juga diterima (dipakai Anthropic SDK). Setiap akun otomatis punya satu key default; buat key tambahan atau fork key yang ada untuk aplikasi/anggota tim lain — semuanya memakai saldo & paket yang sama, dengan catatan pemakaian terpisah. Simpan key di server atau environment variable — jangan di kode frontend.
Endpoint
| Metode & path | Format |
|---|---|
| POST /v1/chat/completions | OpenAI Chat Completions (messages, tools, stream) |
| POST /v1/messages | Anthropic Messages (Claude Code, Anthropic SDK) |
| POST /v1/completions | OpenAI legacy completions |
| GET /v1/models | Daftar model aktif + harga per 1M token |
Streaming
Kirim "stream": true untuk menerima jawaban bertahap lewat Server-Sent Events. Chunk terakhir berisi usage (jumlah token) — kami menambahkan stream_options.include_usage otomatis supaya pemakaian tercatat akurat.
Model & harga
Harga per 1 juta token. 1 TOKS = Rp1.000. Katalog lengkap ada di halaman model.
| ID model | Konteks | Input / 1M | Output / 1M |
|---|---|---|---|
| 1M | 7,7 TOKS | 38,4 TOKS | |
| 200K | 0,16 TOKS | 0,8 TOKS | |
| 200K | 0,16 TOKS | 0,8 TOKS | |
| 128K | 0,5 TOKS | 2,5 TOKS | |
| 1M | 2 TOKS | 10,2 TOKS | |
| 200K | 0,16 TOKS | 0,8 TOKS | |
| 200K | 17,3 TOKS | 86,6 TOKS | |
| 200K | 0,16 TOKS | 0,8 TOKS | |
| 1M | 0,5 TOKS | 2,5 TOKS | |
| 128K | 0,9 TOKS | 3,5 TOKS | |
| 1M | 2,5 TOKS | 3,5 TOKS | |
| 1M | 0,16 TOKS | 0,8 TOKS | |
| 256K | 4 TOKS | 5 TOKS | |
| 1M | 2 TOKS | 4,4 TOKS | |
| 1M | 1,8 TOKS | 3 TOKS | |
| 250K | 3,7 TOKS | 6 TOKS | |
| 1M | 1,2 TOKS | 2,4 TOKS | |
| 1M | 1,2 TOKS | 2,4 TOKS | |
| 1M | 2 TOKS | 4 TOKS | |
| 1M | 2 TOKS | 4 TOKS | |
| 1M | 1,4 TOKS | 3 TOKS | |
| 200K | 1,8 TOKS | 4 TOKS | |
| 256K | 3 TOKS | 5 TOKS | |
| 128K | 1 TOKS | 1 TOKS | |
| 1M | 2 TOKS | 8 TOKS | |
| 200K | 0,16 TOKS | 0,8 TOKS | |
| 200K | 0,16 TOKS | 0,8 TOKS | |
| 400K | 2,24 TOKS | 11,2 TOKS | |
| 400K | 2,24 TOKS | 11,2 TOKS | |
| 1M | 2,24 TOKS | 11,2 TOKS | |
| 1M | 0,16 TOKS | 0,8 TOKS | |
| 1M | 0,16 TOKS | 0,8 TOKS | |
| 256K | 0,16 TOKS | 0,8 TOKS | |
| 1M | 0,16 TOKS | 0,8 TOKS |
Cara biaya dihitung
Biaya = token masuk × harga input + token keluar × harga output. Jumlah token diambil dari usage yang dilaporkan model; kalau model tidak mengirim usage saat streaming, kami memperkirakannya dari panjang teks (≈ 4 karakter per token).
Contoh: 1.000 token masuk + 500 token keluar di claude-opus-5.5 = Rp27 ≈ 0,027 TOKS.
Request yang gagal (error dari model atau gateway) tidak ditagih. Beberapa model menambahkan system prompt internal, sehingga token masuk bisa sedikit lebih besar dari teks yang kamu kirim.
Saldo & paket token
Semua API key di akunmu memakai sumber yang sama. Untuk setiap request, saldo paket token untuk model itu dipakai lebih dulu (paket khusus satu model didahulukan dari bundel); kalau tidak ada paket atau tokennya habis, biaya dipotong dari saldo TOKS. Tidak perlu key khusus per paket atau per model.
Paket aktif 30 hari. Membeli paket yang sama lagi sebelum masa aktif habis menambahkan tokennya ke sisa yang ada dan memperpanjang masa aktif 30 hari dari tanggal berakhir sebelumnya. Setelah masa aktif lewat, sisa token hangus dan pembelian berikutnya mulai dari nol.
Kode error
Error mengikuti format OpenAI: {"error": {"message", "type", "code"}}.
| HTTP | code | Arti |
|---|---|---|
| 400 | invalid_request_error · unsupported_endpoint | Body bukan JSON yang valid, parameter ditolak model, atau model itu tidak melayani /v1/completions. |
| 401 | missing_api_key · invalid_api_key | Header Authorization kosong atau key salah. |
| 402 | insufficient_balance · package_required · package_insufficient | Saldo habis dan tidak ada paket aktif untuk model itu — top up atau beli paket. Model khusus paket hanya jalan dengan paket aktif. package_insufficient: sisa token paket tidak cukup untuk request ini (kecilkan max_tokens, atau tambah paket / saldo). |
| 403 | key_disabled · key_expired · account_disabled | Key dinonaktifkan/kedaluwarsa, atau akun ditangguhkan. |
| 403 | model_not_allowed | Key ini dibatasi untuk model lain. |
| 404 | model_not_found | ID model tidak ada atau sedang nonaktif. Cek GET /v1/models. |
| 413 | — | Body lebih dari 25 MB. |
| 429 | rate_limited · concurrency_limited | Terlalu banyak request per menit, atau terlalu banyak request bersamaan dengan paket Unlimited. |
| 502 | upstream_error · upstream_unreachable | Mesin model sedang bermasalah. Aman untuk dicoba ulang. |
| 503 | maintenance · model_unavailable | Pemeliharaan singkat, atau model sedang tidak lolos tes (dicek ulang tiap 5 menit). Coba lagi sebentar atau pilih model lain. |
Integrasi tools
Tools yang mendukung "OpenAI compatible" cukup diisi base URL https://router.classai.id/v1. Untuk Claude Code, pakai ANTHROPIC_BASE_URL tanpa /v1 dan pilih model dari katalog lewat ANTHROPIC_MODEL.
export ANTHROPIC_BASE_URL="https://router.classai.id"
export ANTHROPIC_AUTH_TOKEN="sk_live_…"
export ANTHROPIC_MODEL="claude-opus-5.5"
export ANTHROPIC_SMALL_FAST_MODEL="claude-opus-5.5"
claudePakai opencode? Lihat Prompt opencode di bawah — API key dan semua model sudah terisi, tinggal salin & tempel. Bagian 9router hanya untuk yang menjalankan aplikasi 9router sendiri — selain itu tidak perlu.
Prompt opencode
Satu prompt untuk memasang Classai Router beserta semua modelnya ke opencode. Salin, tempel ke opencode (atau AI coding agent lain), selesai — config lamamu tetap aman.
Prompt ini berisi API key-mu, jadi hanya tampil setelah masuk. Masuk ke dashboard lalu buka Dokumentasi → Prompt opencode.
Hubungkan ke 9router (opsional)
Tidak menjalankan aplikasi 9router? Lewati bagian ini.
Claude Code, Cursor, Cline, opencode, dan tool lain cukup diisi Base URL https://router.classai.id/v1 dan API key Classai sk_live_… — tanpa localhost, tanpa key 9router.
Sudah menjalankan 9router di komputermu?
9router adalah aplikasi router AI yang kamu jalankan sendiri. Tambahkan Classai Router sebagai salah satu provider-nya — semua model Classai bisa dipakai dari 9router, termasuk sebagai cadangan di combo.
Alurnya lewat 9router
- localhost:20128 = alamat aplikasi 9router di komputermu sendiri (port bawaannya), bukan server Classai. Kalau 9router tidak sedang berjalan, alamat itu memang tidak bisa dibuka.
- Ada dua key. Key Classai
sk_live_…dipasang sekali di 9router (langkah 3). Tool-mu bicara ke 9router, jadi tool memakai key milik 9router — bukan key Classai. - Pilih salah satu jalur per tool. Kalau tool sudah tersambung langsung ke Classai Router, jangan ditambah lewat 9router juga — modelnya akan muncul dobel (mis.
claude-opus-5.5danclassai/claude-opus-5.5).
Langkah memasang Classai di 9router
Untuk yang menjalankan 9router — salin isian di tiap langkah.
- 1
Buka Providers → Add OpenAI Compatible
Jalankan 9router (
npx 9router), buka dashboardhttp://localhost:20128/dashboard, masuk ke Providers, lalu klik Add OpenAI Compatible.Lebih suka format Anthropic (mis. untuk Claude Code)? Pilih Add Anthropic Compatible — isiannya sama, 9router menambahkan
/messagessendiri. - 2
Isi form provider
Add OpenAI Compatible9routerNameClassai RouterPrefixclassaiDipakai di ID model: classai/<model>
Base URLhttps://router.classai.id/v1Harus diakhiri /v1.
API TypeChat CompletionsSimpan.
- 3
Add Connection → tempel API key
Buka provider Classai Router yang baru dibuat → Add Connection → beri nama (mis.
utama) → tempel API keysk_live_…dari menu API Keys → Test Connection sampai statusnya hijau. - 4
Add Model — daftarkan model Classai
Klik Add Model dan isi ID model persis seperti di bawah. Pilih model yang mau dipakai lalu klik Salin di barisnya — satu model satu kali Add Model — atau Salin semua. Format
ID modeluntuk Add Model di 9router; formatclassai/IDuntuk dipanggil dari tool (langkah 5).Claude Opus 5.5
claude-opus-5.5Claude Opus 5
claude-opus-5Claude Sonnet 5
claude-sonnet-5GPT-4o
gpt-4oGemini 3.1 Pro
gemini-3.1-proGLM 5.3
glm-5.3DeepSeek V4.1 Flash
deepseek-v4.1-flashKimi K3
kimi-k3
Daftar ini hanya model yang sedang aktif dijual. Harga & konteks tiap model ada di Katalog Model (atau
GET /v1/models). - 5
Pakai dengan prefix
classai/Di tool yang diarahkan ke 9router (Base URL
http://localhost:20128/v1), pilih modelclassai/claude-opus-5.5. Isi API key dengan key milik 9router (dari dashboard 9router), bukansk_live_…— key Classai sudah kamu pasang di langkah 3, dan 9router yang meneruskannya ke Classai Router.curl http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer <API key 9router>" \ -H "Content-Type: application/json" \ -d '{ "model": "classai/claude-opus-5.5", "messages": [{"role": "user", "content": "Halo dari 9router!"}] }' - 6
(Opsional) Jadikan cadangan di combo
Di Combos, buka atau buat combo lalu Add Model to Combo →
classai/claude-opus-5.5. Kalau provider lain kena limit atau error, 9router otomatis pindah ke Classai Router.
Biaya tetap dihitung di Classai: request lewat 9router memakai paket token yang aktif dulu, lalu saldo TOKS — semuanya tercatat di menu Pemakaian.
Batasan
- 60 request per menit per API key.
- Paket Unlimited (fair use): 60 request per menit dan maksimal 5 request bersamaan per akun — semua key dan playground dihitung bersama.
- Body request maksimal 25 MB; satu request maksimal 15 menit.
- Maksimal 25 API key per akun (termasuk key default dan fork).
Ketentuan lengkap soal penagihan, paket, pemakaian wajar, dan refund ada di Syarat & Ketentuan dan Kebijakan Privasi.