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:
curl https://router.classai.id/v1/chat/completions \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"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 |
|---|---|---|---|
| glm-5.3GLM 5.3 | 1M | 2,5 TOKS | 3,5 TOKS |
| deepseek-v4.1-flashDeepSeek V4.1 Flash | 1M | 1,2 TOKS | 2,4 TOKS |
| kimi-k3Kimi K3 | 256K | 4 TOKS | 5 TOKS |
| glm-5.2GLM 5.2 | 1M | 2 TOKS | 4,4 TOKS |
| minimax-m3MiniMax M3 | 1M | 1,8 TOKS | 3 TOKS |
| kimi-k2.7-codeKimi K2.7 Code | 250K | 3,7 TOKS | 6 TOKS |
| deepseek-v4-flashDeepSeek V4 Flash | 1M | 1,2 TOKS | 2,4 TOKS |
| deepseek-v4-flash-0731DeepSeek V4 Flash 0731 | 1M | 1,2 TOKS | 2,4 TOKS |
| deepseek-v4-proDeepSeek V4 Pro | 1M | 2 TOKS | 4 TOKS |
| deepseek-v4-pro-0813DeepSeek V4 Pro 0813 | 1M | 2 TOKS | 4 TOKS |
| glm-5.3-flashGLM 5.3 Flash | 1M | 1,4 TOKS | 3 TOKS |
| glm-5.1GLM 5.1 | 200K | 1,8 TOKS | 4 TOKS |
| kimi-k2.6Kimi K2.6 | 256K | 3 TOKS | 5 TOKS |
| gpt-oss-120bGPT-OSS 120B | 128K | 1 TOKS | 1 TOKS |
| gemini-3.8-flashGemini 3.8 Flash | 1M | 2 TOKS | 8 TOKS |
| claude-sonnet-4.6Claude Sonnet 4.6 | 200K | 49,5 TOKS | 247,5 TOKS |
| claude-opus-4.6-thinkingClaude Opus 4.6 Thinking | 200K | 82,5 TOKS | 412,5 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 glm-5.3 = Rp4,25 ≈ 0,0043 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 | Body bukan JSON yang valid atau parameter salah. |
| 401 | missing_api_key · invalid_api_key | Header Authorization kosong atau key salah. |
| 402 | insufficient_balance | Saldo habis dan tidak ada paket aktif untuk model itu — top up atau beli paket. |
| 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 | Terlalu banyak request per menit untuk satu key. |
| 502 | upstream_error · upstream_unreachable | Mesin model sedang bermasalah. Aman untuk dicoba ulang. |
| 503 | maintenance | Pemeliharaan singkat. Coba lagi sebentar. |
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="glm-5.3"
export ANTHROPIC_SMALL_FAST_MODEL="glm-5.3"
claudeBatasan
- 60 request per menit per API key.
- Body request maksimal 25 MB; satu request maksimal 15 menit.
- Maksimal 25 API key per akun (termasuk key default dan fork).