Referensi API

Semua endpoint gateway LokaRouter — bentuk request dan respons kompatibel OpenAI.

Autentikasi

Semua endpoint gateway menerima API key Anda sebagai Bearer token di header Authorization. Buat key di dashboard; key terikat ke workspace dan bisa memiliki guardrails.

Authorization: Bearer sk-lkr-your-key

Endpoint

  • POST/v1/chat/completions— Buat chat completion (mendukung streaming via stream: true)
  • POST/v1/completions— Buat text completion gaya lama (mendukung streaming)
  • POST/v1/embeddings— Buat vektor embedding untuk input teks
  • GET/v1/key— Info key ini — sisa budget dan rate limit (gratis, tanpa token)
  • GET/v1/credits— Kredit akun — saldo dan rekap pemakaian bulan ini (gratis, tanpa token)
  • GET/v1/generation?id=req_…— Lacak biaya, token, dan model satu request lewat x-request-id
  • GET/v1/models— Daftar model yang tersedia melalui gateway
  • GET/v1/models/{id}— Detail model — context window, harga, tag
  • GET/v1/files— Daftar file yang Anda unggah (Beta)
  • POST/v1/files— Unggah file (multipart/form-data atau JSON base64, maks 5 MB)
  • GET/v1/files/{id}— Ambil metadata file
  • GET/v1/files/{id}/content— Unduh isi file
  • DELETE/v1/files/{id}— Hapus file

Chat completions

POST /v1/chat/completions dengan payload kompatibel OpenAI apa pun. Field tak dikenal (temperature, tools, response_format, …) diteruskan ke penyedia hulu tanpa diubah. Set "stream": true untuk server-sent events.

curl https://api.lokarouter.id/v1/chat/completions \  -H "Authorization: Bearer sk-lkr-your-key" \  -H "Content-Type: application/json" \  -d '{    "model": "openai/gpt-5-mini",    "messages": [{ "role": "user", "content": "Hello" }],    "stream": false  }'

Respons

{  "id": "lkr_…",  "object": "chat.completion",  "model": "openai/gpt-5-mini",  "choices": [{    "index": 0,    "message": { "role": "assistant", "content": "Hi!" },    "finish_reason": "stop"  }],  "usage": { "prompt_tokens": 9, "completion_tokens": 2, "total_tokens": 11 }}

Setiap respons membawa x-request-id (pelacakan per-request) dan x-lokarouter-latency-ms (latency gateway end-to-end).

Routing otomatis

Set "model": "lokarouter/auto" dan gateway mengklasifikasi request Anda secara heuristik (kode, terjemahan, konteks panjang, reasoning, sensitif latency) lalu mengarahkannya ke model katalog terbaik. Tanpa biaya tambahan dan tanpa latency ekstra.

{  "model": "lokarouter/auto",  "messages": [{ "role": "user", "content": "Refactor this function…" }]}

Model terpilihlah yang tercatat di log pemakaian. Izinkan lokarouter/auto di guardrails key untuk mengizinkan semua model konkret lewat auto.

Files (Beta)

Simpan file kecil (maks 5 MB) untuk dipakai ulang — mis. input fine-tune atau batch. Tujuan: batch, fine-tune, vision, assistants, user_data.

curl https://api.lokarouter.id/v1/files \  -H "Authorization: Bearer sk-lkr-your-key" \  -F "file=@training.jsonl" \  -F "purpose=fine-tune"

Menampilkan daftar file

curl https://api.lokarouter.id/v1/files \  -H "Authorization: Bearer sk-lkr-your-key"

Batas rate

Key diizinkan 60 request per menit secara default. Saat limit tercapai gateway mengembalikan 429 dengan header retry-after plus x-ratelimit-limit dan x-ratelimit-remaining agar SDK bisa back off dengan benar.

Error

Error memakai bentuk OpenAI — objek error dengan message, type, dan code. Kode yang umum:

{  "error": {    "message": "Key budget exhausted: $5.00 spent of $5.00 budget.",    "type": "insufficient_quota",    "code": "budget_exhausted"  }}
HTTPKodeArti
400invalid_json / missing_required_parameterRequest rusak — JSON tidak valid atau model/messages kurang.
401invalid_api_keyAPI key hilang atau tidak valid.
402budget_exhausted / workspace_budget_exhaustedBudget key atau workspace habis.
403model_not_allowed / tool_not_allowedModel atau tool diblokir guardrail milik key.
404model_not_found / file_not_foundId model atau id file tidak dikenal.
429rate_limit_exceededBatas rate terlampaui — coba lagi setelah jeda yang ditandai.
502provider_failed / upstream_unavailableSemua penyedia hulu gagal atau belum ada yang dikonfigurasi.

← Kembali ke Dokumentasi