Dokumentasi
Endpoint kami mengikuti format Chat Completions milik OpenAI. Ganti base URL dan API key, kode yang sudah jalan tidak perlu ditulis ulang.
1. Base URL dan autentikasi
Semua permintaan memakai header Authorization: Bearer berisi API key Anda.
Authorization: Bearer labs-xxxxxxxx Content-Type: application/json
Belum punya API key? Daftar lalu generate di dashboard.
2. Chat Completions
POST https://labs.ai.sidajaya.biz.id/v1/chat/completions
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
| model | string | ya | Nama model dari katalog |
| messages | array | ya | Daftar pesan dengan role dan content |
| stream | boolean | tidak | true untuk balasan bertahap (SSE) |
| temperature | number | tidak | 0 sampai 2 |
| max_tokens | integer | tidak | Batas panjang balasan |
curl https://labs.ai.sidajaya.biz.id/v1/chat/completions \
-H "Authorization: Bearer labs-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [{"role": "user", "content": "Jelaskan singkat apa itu API"}],
"temperature": 0.7
}'
3. Pakai SDK OpenAI
from openai import OpenAI
klien = OpenAI(
base_url="https://labs.ai.sidajaya.biz.id/v1",
api_key="labs-xxxxxxxx",
)
balas = klien.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Halo"}],
)
print(balas.choices[0].message.content)
import OpenAI from "openai";
const klien = new OpenAI({
baseURL: "https://labs.ai.sidajaya.biz.id/v1",
apiKey: "labs-xxxxxxxx",
});
const balas = await klien.chat.completions.create({
model: "kimi-k3",
messages: [{ role: "user", content: "Halo" }],
});
console.log(balas.choices[0].message.content);
4. Streaming
Tambahkan "stream": true. Balasan dikirim sebagai Server-Sent Events dengan format yang sama seperti OpenAI.
curl -N https://labs.ai.sidajaya.biz.id/v1/chat/completions \
-H "Authorization: Bearer labs-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"model":"kimi-k3","stream":true,"messages":[{"role":"user","content":"Hitung 1 sampai 5"}]}'
5. Daftar model
GET https://labs.ai.sidajaya.biz.id/v1/models mengembalikan model yang boleh dipakai API key Anda.
curl https://labs.ai.sidajaya.biz.id/v1/models -H "Authorization: Bearer labs-xxxxxxxx"
6. Perhitungan biaya token
Saldo Anda dihitung dalam satuan token. Setiap model punya pengali.
biaya_token = total_token (prompt + completion) x multiplier_model saldo_baru = saldo_lama - biaya_token
Contoh: model dengan pengali 2, satu permintaan memakai 1.500 token. Biaya yang terpotong 1.500 x 2 = 3.000 token. Angka pengali tiap model ada di katalog model.
7. Kode galat
| Kode | Tipe | Arti dan tindakan |
|---|---|---|
| 401 | invalid_api_key | API key salah atau tidak aktif. Generate ulang di dashboard. |
| 402 | insufficient_balance | Saldo token habis. Lakukan topup di halaman topup. |
| 403 | model_not_allowed | Model tidak dibuka untuk akun Anda. Lihat katalog. |
| 429 | rate_limit | Terlalu banyak permintaan. Beri jeda lalu ulangi. |
| 502 | upstream_error | Model sedang bermasalah di sisi penyedia. Coba model lain. |
8. Batas dan kebijakan
- Satu akun satu API key. Generate ulang kapan saja dari dashboard, key lama langsung mati.
- Saldo dinyatakan dalam token dan dipotong setiap permintaan selesai.
- Permintaan yang gagal di sisi penyedia tidak dihitung sebagai pemakaian Anda.
- Pemakaian dapat dilihat pada grafik di halaman pemakaian.