Dokumentasi

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/v1

Autentikasi

# 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.

GET/v1/models

Daftar model yang dapat diakses kunci ini

POST/v1/chat/completions

OpenAI Chat Completions, streaming atau JSON

POST/v1/embeddings

Embedding vektor

POST/v1/messages

Permintaan Anthropic Messages

POST/v1/responses

Permintaan 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.

Bayar sesuai pemakaian60 permintaan per menit
Paket tanpa batas30 permintaan per menit
Batas token per kunciBatas token per menit, opsional
Batas belanja per kunciBatas harian atau bulanan, opsional
Ukuran body permintaan10 MB secara bawaan

Kode error

Kode stabil, sehingga retry dan fallback dapat bercabang berdasarkan kode.

invalid_api_key401

Kunci tidak ada, dicabut, ditangguhkan, atau kedaluwarsa

insufficient_credits402

Saldo tidak menutup biaya maksimum yang direservasi

model_not_found404

ID model tidak terbit atau tidak diizinkan untuk kunci ini

rate_limit_exceeded429

Batas laju atau limit terlampaui; coba lagi setelah jeda yang ditunjukkan

request_too_large413

Body permintaan melebihi batas kunci atau gateway

provider_unavailable503

Tidak ada akun provider yang bisa melayani permintaan

upstream_timeout504

Provider 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.

Dokumentasi API · Kita Router