Arusly API
Satu API kompatibel OpenAI untuk chat, gambar, video, dan audio — bayar per pakai dengan kredit.
Quick Start
Buat API key di halaman API Keys dashboard, lalu kirim request pertamamu dalam 2 menit:
curl https://arusly.my.id/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-arusly-..." \ -d '{ "model": "deepseek-v4-flash", "messages": [{"role": "user", "content": "Halo!"}] }'
Atau pakai SDK OpenAI apa pun — cukup ganti base_url:
from openai import OpenAI client = OpenAI( api_key="sk-arusly-...", base_url="https://arusly.my.id/v1" ) resp = client.chat.completions.create( model="deepseek-v4-flash", messages=[{"role": "user", "content": "Halo!"}] ) print(resp.choices[0].message.content)
FREE (mis. deepseek/deepseek-chat-v3.1:free) tidak memotong kredit — cocok untuk testing sebelum isi saldo.Autentikasi
Semua request ke endpoint /v1/* memakai API key di header Authorization:
Authorization: Bearer sk-arusly-xxxxxxxx- API key dibuat di dashboard → API Keys, format
sk-arusly-.... - Key bisa dibatasi per model, punya masa aktif, dan kuota sendiri.
- Jangan pernah menaruh API key di kode front-end — simpan di server.
Base URL
| Lingkungan | Base URL |
|---|---|
| Produksi | https://arusly.my.id/v1 |
| Semua endpoint relay | {base}/chat/completions · {base}/images/generations · … |
API sepenuhnya kompatibel dengan format OpenAI — tools seperti LangChain, LlamaIndex, Cursor, atau kode openai SDK apa pun bisa langsung dipakai.
Daftar Model
Ambil daftar model aktif + harga kredit per model:
curl https://arusly.my.id/api/pricingRespons berisi model_name, description, tags (chat / image / video / tts), vendor_id, quota_type (0 = per token, 1 = per request), dan harga. Katalog lengkap tersedia di dashboard.
Chat Completions
POST /v1/chat/completions
| Parameter | Tipe | Keterangan |
|---|---|---|
model | string | Wajib. Mis. deepseek-v4-flash, claude-opus-5, gemini-3-pro |
messages | array | Wajib. Riwayat percakapan (role: system/user/assistant) |
stream | boolean | true = streaming SSE |
temperature | number | 0–2, default 1 |
max_tokens | integer | Batas token keluaran |
curl https://arusly.my.id/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-arusly-..." \ -d '{ "model": "glm-5.2", "messages": [ {"role": "system", "content": "Kamu asisten yang menjawab singkat."}, {"role": "user", "content": "Jelaskan apa itu API dalam 1 kalimat."} ], "temperature": 0.7 }'
Respons (format OpenAI):
{
"id": "chatcmpl-...",
"choices": [{
"message": {"role": "assistant", "content": "API adalah..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 14, "completion_tokens": 52}
}Streaming
Set "stream": true — respons dikirim sebagai Server-Sent Events (SSE). Parse setiap baris data: sampai [DONE]; isi jawaban bertambah di choices[0].delta.content:
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Ceritakan kisah singkat"}],
stream=True
)
for chunk in stream:
part = chunk.choices[0].delta.content
if part:
print(part, end="", flush=True)Input Gambar (Vision)
Model vision (Gemini, Claude, GPT, dll.) menerima gambar lewat image_url — bisa URL publik atau data URL base64:
{
"model": "gemini-3.8-flash",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Apa isi gambar ini?"},
{"type": "image_url", "image_url": {"url": "https://…/foto.png"}}
]
}]
}Generate Gambar
Model gambar (Nano Banana 2, Seedream, Imagen, WAN Image, MiniMax H3 Image) dipanggil lewat Chat Completions — hasil berupa URL gambar di dalam jawaban:
curl https://arusly.my.id/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-arusly-..." \ -d '{ "model": "nano-banana-2", "messages": [{"role": "user", "content": "kucing astronaut, gaya sinematik"}], "aspect_ratio": "16:9" }'
Jawaban berisi URL gambar (PNG/JPG) — unduh langsung dari URL tersebut:
{
"choices": [{
"message": {"content": "https://…/hasil.png"}
}]
}| Parameter | Nilai | Keterangan |
|---|---|---|
aspect_ratio | 1:1 16:9 9:16 4:3 3:4 | Rasio gambar keluaran |
| model edit | — | Model *-edit menerima image (URL referensi) untuk mode edit |
Generate Video
Model video (Seedance, Kling, WAN, Veo, MiniMax H3) juga lewat Chat Completions. Prosesnya asinkron — request menunggu sampai video selesai (bisa beberapa menit), jawaban berisi URL video (MP4):
curl https://arusly.my.id/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-arusly-..." \ -d '{ "model": "seedance-2.5-10s", "messages": [{"role": "user", "content": "tim drone menerbangkan kota pesisir saat matahari terbit"}], "aspect_ratio": "16:9" }'
| Keluarga | Durasi | Resolusi | Image-to-video |
|---|---|---|---|
| Seedance 2 / 2.5 | 5s · 10s · 15s | 720p · 1080p | ✓ lewat image (URL gambar) |
| Kling 2.6 / 3.0 / O3 | 5s | — | ✓ |
| WAN 2.5 / 2.6 / 2.7 / 3.0 / 3.0 Prime | 5s | — | ✓ |
| MiniMax H3 | 3–15s | 480p–1080p | ✓ |
model varian yang sesuai — durasi & resolusi sudah mengikat pada nama varian (mis. seedance-2-1080p-5s = 1080p, 5 detik). Harga per varian berbeda; cek /api/pricing.Audio (TTS & Music)
Model TTS (Qwen3 TTS, Chatterbox, Seed Speech, MiniMax Speech HD) dan Music (MiniMax Music) mengubah teks menjadi audio — jawaban berupa URL file audio:
curl https://arusly.my.id/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-arusly-..." \ -d '{ "model": "chatterbox-tts", "messages": [{"role": "user", "content": "Selamat datang di Arusly!"}] }'
Kredit & Harga
Satu satuan untuk semua model: kredit. Top-up Rp10.000 = 300.000 kredit. Konversi: 1 USD = 495.000 kredit.
| Tipe model | Cara hitung | Contoh |
|---|---|---|
| Chat (per token) | model_ratio × token — ditampilkan per 1jt token di dashboard | deepseek-v4-flash ±41 kredit/chat |
| Gambar / Video / Audio (per request) | model_price × 495.000 | nano-banana-2 ±11.880 · seedance-2.5-15s ±561.330 |
| Model FREE | 0 kredit (kuota upstream, fair-use) | deepseek-chat-v3.1:free & 8 lainnya |
- Saldo berupa kredit, tidak kedaluwarsa.
- Request yang gagal (error upstream) tidak ditagih.
- Harga dapat berubah mengikuti tarif upstream.
Kode Error
Format error konsisten:
{
"error": {
"message": "…penjelasan…",
"type": "invalid_request_error",
"code": "…"
}
}| HTTP | Arti | Yang perlu dilakukan |
|---|---|---|
401 | API key tidak valid | Cek header Authorization & masa aktif key |
402 | Kredit/saldo upstream habis | Isi saldo — coba lagi nanti |
429 | Rate limit | Tunggu sesuai Retry-After lalu ulangi |
500/502 | Upstream gagal | Request tidak ditagih — ulangi |
Rate Limit
| Endpoint | Batas |
|---|---|
/v1/* (relay) | Mengikuti kuota & konfigurasi akun |
/api/* (dashboard) | Rate limit global per IP — hormati Retry-After |
SDK & Kompatibilitas
Karena 100% kompatibel OpenAI, semua tools berikut langsung jalan — cukup set base_url ke https://arusly.my.id/v1 dan API key Arusly:
- Python:
openaiSDK, LangChain, LlamaIndex - JavaScript:
openainpm, Vercel AI SDK - Aplikasi: Cherry Studio, Lobe Chat, OpenCat, AI as Workspace, dan klien OpenAI-compatible lainnya (semua sudah terhubung — lihat menu Chat di dashboard)