Dokumentasi Developer

Bangun dengan satu API key

Semua yang Anda butuhkan untuk integrasi llm-kita — autentikasi, endpoint, contoh, dan penanganan error.

Ringkasan

llm-kita adalah gateway API yang kompatibel dengan OpenAI. Satu API key memberi Anda akses ke chat completions, image generation, video generation, text-to-speech, dan speech-to-text dari berbagai penyedia.

Karena API-nya kompatibel dengan OpenAI, Anda bisa memakai SDK resmi OpenAI (Python, Node.js, dan lainnya) cukup dengan mengarahkannya ke base URL kami. Tanpa vendor lock-in — ganti model atau penyedia cukup dengan mengubah satu field.

Base URL

Semua request menuju base URL produksi di bawah ini. Tambahkan path endpoint setelahnya (contoh https://api.llm-kita.com/api/v1/chat/completions).

Untuk SDK OpenAI, berikan base URL di constructor client. Jangan pernah hardcode URL staging atau lokal di kode produksi.

text
https://api.llm-kita.com/api/v1

Autentikasi

Setiap request wajib menyertakan API key. Buat key dari dashboard (bagian API Keys) — key plaintext hanya ditampilkan sekali saat pembuatan, jadi simpan dengan aman.

Kirim key sebagai token Bearer di header Authorization. Request tanpa key valid akan ditolak dengan HTTP 401.

bash
curl https://api.llm-kita.com/api/v1/models \
  -H "Authorization: Bearer sk-kita-..."

Mulai Cepat

Cara tercepat adalah dengan OpenAI Python SDK. Ganti sk-kita-... dengan key Anda sendiri.

1. Install SDK

pip install openai

2. Buat client

Arahkan client OpenAI ke base URL llm-kita dan gunakan API key Anda.

3. Kirim request pertama

Kirim chat completion dengan model "auto" — akan dirutekan ke model terbaik yang tersedia.

Tips: dashboard juga menampilkan snippet copy-paste untuk Python, cURL, Claude Code, dan Node.js.

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.llm-kita.com/api/v1",
    api_key="sk-kita-...",
)

resp = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Say hello in 5 words"}],
)
print(resp.choices[0].message.content)
bash
curl https://api.llm-kita.com/api/v1/chat/completions \
  -H "Authorization: Bearer sk-kita-..." \
  -H "Content-Type: application/json" \
  -d '{"model": "auto", "messages": [{"role": "user", "content": "Say hello in 5 words"}]}'
javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.llm-kita.com/api/v1",
  apiKey: "sk-kita-...",
});

const resp = await client.chat.completions.create({
  model: "auto",
  messages: [{ role: "user", content: "Say hello in 5 words" }],
});
console.log(resp.choices[0].message.content);
bash
# Use llm-kita as an OpenAI-compatible backend for Claude Code
export ANTHROPIC_BASE_URL=https://api.llm-kita.com/api/v1
export ANTHROPIC_API_KEY=sk-kita-...
export ANTHROPIC_MODEL=auto
claude

Chat Completions

Kirim percakapan dan dapatkan balasan dari model. Ini endpoint utama untuk fitur chat dan teks berbasis AI.

Body request mengikuti format OpenAI Chat Completions. Respons berupa objek JSON standar ala OpenAI.

Setel stream ke true untuk menerima token secara bertahap melalui Server-Sent Events (SSE) — direkomendasikan untuk UI chat.

Request

bash
curl https://api.llm-kita.com/api/v1/chat/completions \
  -H "Authorization: Bearer sk-kita-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Explain quantum computing in one sentence."}
    ]
  }'

Response

json
{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1725000000,
  "model": "auto",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Quantum computing uses qubits to process information in ways classical bits cannot."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 21, "completion_tokens": 14, "total_tokens": 35 }
}

Streaming (SSE)

Setel "stream": true di body untuk menerima Server-Sent Events. Setiap chunk membawa delta dengan potongan teks berikutnya.

Chunk terakhir berisi finish_reason "stop" beserta usage. Saat memakai SDK OpenAI, streaming ditangani otomatis oleh client.

bash
curl https://api.llm-kita.com/api/v1/chat/completions \
  -H "Authorization: Bearer sk-kita-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "messages": [{"role": "user", "content": "Count from 1 to 5"}],
    "stream": true
  }'

Parameters

ParameterTypeDescription
modelstringNama model yang dipakai. "auto" memilih model terbaik yang tersedia untuk request Anda.
messagesarrayRiwayat percakapan. Setiap item punya role (system/user/assistant) dan content.
streambooleanJika true, token dialirkan via SSE. Default false.
max_tokensintegerOpsional. Token maksimum pada respons. Biarkan kosong untuk default model.

Daftar Model

Lihat model yang bisa diakses key Anda. Mengembalikan daftar model bergaya OpenAI.

Respons berisi id, object, created, dan owned_by untuk setiap model aktif. Gunakan id sebagai field model di chat completions.

Model dan harga yang tersedia juga tampil di dashboard — bagian Model & Harga.

bash
curl https://api.llm-kita.com/api/v1/models \
  -H "Authorization: Bearer sk-kita-..."

Penyimpanan Media

Upload media

Simpan file hasil generate (video, gambar, presentasi, atau suara) ke cloud storage pribadi Anda. Objek ditulis di folder customer Anda — tenant lain tidak bisa membaca atau menimpanya.

Kirim file sebagai base64 di body JSON. Respons berisi signed URL berumur pendek (15 menit) untuk unduh langsung.

bash
curl https://api.llm-kita.com/api/v1/media/upload \
  -H "Authorization: Bearer sk-kita-..." \
  -H "Content-Type: application/json" \
  -d '{
    "modality": "image",
    "filename": "output.png",
    "contentType": "image/png",
    "data": "<base64-encoded-file>"
  }'

Daftar media

Lihat aset media yang tersimpan, terbaru dulu (hingga 100 item). Setiap item menyertakan metadata plus signed URL bila objek masih bisa diakses.

bash
curl https://api.llm-kita.com/api/v1/media/list \
  -H "Authorization: Bearer sk-kita-..."

Modality harus salah satu dari: video, image, ppt, voice. Ukuran payload maksimum 25 MiB (setelah decode).

Penanganan Error

Error memakai format kompatibel OpenAI: objek error dengan message dan type. Selalu cek kode status HTTP terlebih dahulu.

StatusDescription
400Request tidak valid — field hilang atau salah format, JSON rusak, atau modality tidak valid.
401API key hilang atau tidak valid. Periksa header Authorization Anda.
404Endpoint tidak ditemukan.
413Body request melebihi batas ukuran.
429Rate limit terlampaui atau saldo tidak cukup.
500Kesalahan server internal — coba lagi dengan backoff.
502Gagal di upstream atau error penyimpanan media.
503Layanan belum dikonfigurasi (misalnya penyimpanan media nonaktif).

Rate Limit & Tagihan

Pemakaian bersifat prepaid: request menahan kredit dari saldo lalu menyelesaikan setelah selesai. Cek saldo di dashboard.

Jika saldo habis, request ditolak. Top-up dari dashboard untuk melanjutkan layanan.

Jaga request tetap idempoten bila memungkinkan — gateway mendukung header opsional X-Request-Id untuk mencegah duplikasi penulisan ledger.

Siap membangun?

Buat akun dan dapatkan API key pertama Anda dalam waktu kurang dari satu menit.

Mulai Sekarang