Dokumentasi API
Kita Router menyediakan REST API yang kompatibel dengan OpenAI. Autentikasi dengan kunci API bearer, lalu panggil model mana pun yang terbit. Streaming, embeddings, Anthropic Messages, dan OpenAI Responses semuanya didukung.
Base URL
Gunakan base URL ini dengan klien apa pun yang kompatibel OpenAI. Jalur di bawah ini relatif terhadapnya.
https://api.kitarouter.web.id/v1Autentikasi
# Every request carries your API key as a bearer token. # Keys are shown once at creation and stored only as a hash. Authorization: Bearer sk-ai-router-… # Base URL https://api.kitarouter.web.id/v1
Chat completions (non-streaming)
curl https://api.kitarouter.web.id/v1/chat/completions \
-H "Authorization: Bearer $AI_ROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [
{"role": "system", "content": "You are helpful."},
{"role": "user", "content": "Say hello."}
],
"max_tokens": 256
}'Streaming (server-sent events)
curl -N https://api.kitarouter.web.id/v1/chat/completions \
-H "Authorization: Bearer $AI_ROUTER_KEY" \
-d '{"model":"deepseek-v4.1-flash","stream":true,
"messages":[{"role":"user","content":"Hi"}]}'
# data: {"choices":[{"delta":{"content":"Hel"}}]}
# data: {"choices":[{"delta":{"content":"lo"}}]}
# data: [DONE]Embeddings
curl https://api.kitarouter.web.id/v1/embeddings \
-H "Authorization: Bearer $AI_ROUTER_KEY" \
-d '{"model":"qwen3.7-text-embedding","input":["hello world"]}'Daftar model
curl https://api.kitarouter.web.id/v1/models \ -H "Authorization: Bearer $AI_ROUTER_KEY"
Kompatibilitas Anthropic Messages
curl https://api.kitarouter.web.id/v1/messages \
-H "Authorization: Bearer $AI_ROUTER_KEY" \
-d '{"model":"deepseek-v4.1-flash","max_tokens":256,
"messages":[{"role":"user","content":"Hi"}]}'Contoh SDK OpenAI
Atur base URL dan kuncinya. Sisanya tetap sama.
from openai import OpenAI
client = OpenAI(
base_url="https://api.kitarouter.web.id/v1",
api_key="sk-ai-router-…",
)
response = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Say hello."}],
)Referensi endpoint
Sebuah model dapat diakses melalui setiap endpoint yang didukung kemampuannya.
/v1/models/v1/modelsDaftar model yang dapat diakses kunci ini
/v1/chat/completions/v1/chat/completionsOpenAI Chat Completions, streaming atau JSON
/v1/embeddings/v1/embeddingsEmbedding vektor
/v1/messages/v1/messagesPermintaan Anthropic Messages
/v1/responses/v1/responsesPermintaan OpenAI Responses
Batas laju
Batas berlaku per kunci API, dan batas paling ketat yang berlaku. Paket tanpa batas menukar tarif tetap dengan batas wajar 30 rpm; kunci bayar sesuai pemakaian mendapat 60 rpm.
Kode error
Kode stabil, sehingga retry dan fallback dapat bercabang berdasarkan kode.
invalid_api_key401Kunci tidak ada, dicabut, ditangguhkan, atau kedaluwarsa
insufficient_credits402Saldo tidak menutup biaya maksimum yang direservasi
model_not_found404ID model tidak terbit atau tidak diizinkan untuk kunci ini
rate_limit_exceeded429Batas laju atau limit terlampaui; coba lagi setelah jeda yang ditunjukkan
request_too_large413Body permintaan melebihi batas kunci atau gateway
provider_unavailable503Tidak ada akun provider yang bisa melayani permintaan
upstream_timeout504Provider upstream tidak menjawab tepat waktu
Header permintaan
Kirim Authorization: Bearer <kunci>. Klien Anthropic boleh mengirim x-api-key. Setiap respons membawa x-request-id — sertakan saat menghubungi dukungan.
Penagihan
Permintaan mereservasi biaya maksimum, lalu menyelesaikan pemakaian tepat. Saldo tidak cukup mengembalikan 402 insufficient_credits. Batas laju mengembalikan 429 rate_limit_exceeded.
Error memakai envelope OpenAI: { "error": { "message", "type", "code" } }. Endpoint Anthropic mengembalikan bentuk error Anthropic.
Secara bawaan hanya metadata pemakaian yang disimpan — bukan konten prompt atau completion.