Dokumentasi API
Satu API key untuk 23 model AI. Kompatibel penuh dengan format OpenAI — kalau aplikasimu sudah pakai SDK OpenAI, cukup ganti base_url dan api_key.
Pengenalan
ARZASTORE AI Router menyediakan endpoint tunggal ke banyak model AI (Claude, DeepSeek, GLM, Grok, Qwen, dan lainnya). Routing antar penyedia dilakukan otomatis di belakang layar, jadi kamu tidak perlu mengurus banyak akun atau langganan.
| Base URL | https://router.arzastore.com/v1 |
|---|---|
| Format | OpenAI-compatible (/chat/completions, /embeddings, /models) |
| Autentikasi | Header Authorization: Bearer <API_KEY> |
| Model tersedia | 23 model — lihat daftar model |
| Token | Lifetime — tidak hangus, tidak ada reset bulanan |
Autentikasi
Setiap request wajib menyertakan API key di header Authorization. Jangan taruh key di URL atau kode frontend — simpan di environment variable.
# Benar Authorization: Bearer sk-arzastore-xxxxxxxxxxxxxxxxxxxxxxxxxxxx # Salah (jangan taruh key di browser / URL) https://router.arzastore.com/v1/chat/completions?api_key=sk-...
Mulai cepat
Request pertama, pilih bahasamu:
curl https://router.arzastore.com/v1/chat/completions \ -H "Authorization: Bearer $ARZASTORE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-5", "messages": [ {"role": "user", "content": "Jelaskan HTTP/3 dalam 3 kalimat."} ] }'
# pip install openai from openai import OpenAI client = OpenAI( base_url="https://router.arzastore.com/v1", api_key="sk-arzastore-...", # pakai os.environ ) resp = client.chat.completions.create( model="claude-opus-5", messages=[{"role": "user", "content": "Jelaskan HTTP/3 dalam 3 kalimat."}], ) print(resp.choices[0].message.content)
// npm install openai import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://router.arzastore.com/v1", apiKey: process.env.ARZASTORE_API_KEY, }); const resp = await client.chat.completions.create({ model: "claude-opus-5", messages: [{ role: "user", content: "Jelaskan HTTP/3 dalam 3 kalimat." }], }); console.log(resp.choices[0].message.content);
Chat Completions
POST /v1/chat/completions
Endpoint utama untuk mengobrol dengan model. Menerima format pesan OpenAI standar.
Contoh request
{
"model": "claude-opus-5",
"messages": [
{"role": "system", "content": "Kamu asisten yang ringkas."},
{"role": "user", "content": "Apa itu edge computing?"}
],
"max_tokens": 800,
"temperature": 0.7
}
Contoh respons
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "claude-opus-5",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "Edge computing adalah..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 42, "completion_tokens": 180, "total_tokens": 222}
}
Streaming
Tambahkan "stream": true untuk menerima jawaban bertahap (Server-Sent Events). Cocok untuk chatbot agar terasa responsif.
curl -N https://router.arzastore.com/v1/chat/completions \ -H "Authorization: Bearer $ARZASTORE_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"claude-opus-5","stream":true, "messages":[{"role":"user","content":"Hitung 1-10"}]}' # respons (potongan): data: {"choices":[{"delta":{"content":"1,"}}]} data: {"choices":[{"delta":{"content":" 2,"}}]} data: [DONE]
Daftar Model
GET /v1/models
Mengembalikan semua model yang bisa kamu pakai dengan API key ini.
Daftar model tersedia
auto kalau ingin router memilih dan mengalihkan model terbaik secara otomatis — paling aman untuk produksi.Embeddings
POST /v1/embeddings
Untuk pencarian semantik, klasifikasi, atau clustering.
curl https://router.arzastore.com/v1/embeddings \ -H "Authorization: Bearer $ARZASTORE_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"auto","input":"teks yang mau di-embed"}'
Parameter
| Parameter | Tipe | Keterangan |
|---|---|---|
model | string | Wajib. Nama model, mis. claude-opus-5 atau auto. |
messages | array | Wajib. Daftar pesan {role, content}. Role: system, user, assistant. |
stream | boolean | Default false. Set true untuk respons bertahap (SSE). |
max_tokens | integer | Batas panjang jawaban. Router menaikkan otomatis bila terlalu kecil untuk tugas berat. |
temperature | number | 0–2. Semakin tinggi semakin kreatif. Default mengikuti model. |
top_p | number | Alternatif temperature (nucleus sampling). |
tools | array | Definisi function/tool calling (format OpenAI). |
stop | string/array | Sekuens yang menghentikan generasi. |
Penanganan Error
Semua error dikembalikan dalam format JSON yang konsisten:
{
"error": "Kuota API key kamu sudah habis. Silakan topup atau beli paket baru.",
"code": "QUOTA_EXCEEDED",
"hint": "Kelola langganan Anda melalui @Umarstorebot"
}
Contoh penanganan (Python)
import time from openai import OpenAI, APIStatusError, APIConnectionError client = OpenAI(base_url="https://router.arzastore.com/v1", api_key=KEY) def chat(prompt, retries=3): for i in range(retries): try: return client.chat.completions.create( model="auto", messages=[{"role": "user", "content": prompt}], timeout=120, ).choices[0].message.content except APIStatusError as e: if e.status_code == 429: # kuota habis / terlalu cepat raise RuntimeError("Kuota habis — topup dulu.") if e.status_code >= 500 and i < retries - 1: time.sleep(2 ** i) # backoff 1s, 2s, 4s continue raise except APIConnectionError: if i < retries - 1: time.sleep(2 ** i) continue raise
auto untuk produksi, set timeout ≥120s, dan terapkan exponential backoff untuk error 5xx. Router sudah punya fallback internal, jadi retry di sisi klien cukup 2–3 kali.Kode Status
| Kode | Arti | Yang harus dilakukan |
|---|---|---|
200 | Sukses | — |
400 | Request tidak valid | Periksa model & format messages |
401 | API key salah/nonaktif | Cek key, atau ganti key di dashboard |
402 | Saldo tidak cukup (pembelian) | Topup dulu |
429 | Kuota habis / terlalu banyak request | Topup paket baru atau tunggu sesaat |
500 | Gangguan internal | Coba lagi dengan backoff |
502 / 503 / 504 | Penyedia sedang bermasalah | Coba lagi; router otomatis pindah jalur cadangan |
Harga & Paket
Semua paket token bersifat lifetime — tidak ada tagihan bulanan. Harga di bawah diambil langsung dari sistem kami.
Pertanyaan Umum
Apakah kompatibel dengan Cursor / Cline / Continue / Windsurf?
Ya. Semuanya mendukung format OpenAI — cukup ganti base URL ke https://router.arzastore.com/v1 dan masukkan API key.
Apa bedanya auto dengan nama model spesifik?
auto membiarkan router memilih dan mengalihkan model secara otomatis bila ada gangguan. Nama spesifik mengunci ke satu model.
Berapa lama timeout yang disarankan?
Minimal 120 detik untuk chat, dan lebih longgar lagi untuk model penalaran atau konteks sangat panjang.
Apakah kuota hangus kalau tidak dipakai?
Tidak. Kuota bersifat lifetime dan dapat dipakai kapan saja.
Bagaimana kalau API key saya bocor?
Masuk ke dashboard lalu tekan “Ganti API key”. Key lama langsung tidak berlaku.