DOKUMENTASI API ARLEN ROUTER
Router AI OpenAI-compatible dan engine Text-To-Speech gratis tanpa masking.
Cara Menghubungkan ke 9router & Router Eksternal
Arlen Router menyediakan endpoint standar OpenAI (`/v1`) yang dapat langsung didaftarkan ke 9router, One API, New API, NextChat, atau aplikasi AI client lainnya.
https://domain-kamu.com/v1sk-arlen-bansos-freeLangkah-langkah di 9router / One API:
- Buka menu Channels / Providers pada dashboard 9router.
- Pilih tipe provider: OpenAI (atau OpenAI-Compatible).
- Masukkan Base URL:
https://domain-kamu.com/v1 - Masukkan API Key:
sk-arlen-bansos-free(atau teks acak bebas lainnya, router selalu memvalidasi). - Pada daftar model, masukkan model yang ingin kamu teruskan (misal:
big-pickle,bansos-5/deepseek-v4-pro,agnes-2.5-flash, atau klik Sync Models). - Klik Simpan & Tes. Status channel akan langsung hijau (Online).
/v1/chat/completionsKirim prompt teks & gambar ke model AI dengan standar OpenAI API. Mendukung streaming SSE. Kompatibel dengan 9router, NextChat, OpenWebUI, dan script cURL.
- model (wajib) — ID model, misal: 'big-pickle', 'bansos-5/deepseek-v4-pro', 'agnes-2.5-flash'
- messages (wajib) — Array pesan [{ role: 'user' | 'assistant', content: string | array }]
- stream (opsional, default: false) — boolean streaming event-stream
- temperature (opsional) — float
curl -X POST "https://domain-kamu.com/v1/chat/completions" \
-H "Authorization: Bearer sk-arlen-bansos-free" \
-H "Content-Type: application/json" \
-d '{
"model": "bansos-5/deepseek-v4-pro",
"messages": [
{ "role": "user", "content": "Halo Arlen Router, apa kabar?" }
]
}'const res = await fetch("https://domain-kamu.com/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer sk-arlen-bansos-free",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "bansos-5/deepseek-v4-pro",
messages: [{ role: "user", content: "Buatkan contoh kode binary search di Python" }]
})
});
const data = await res.json();
console.log(data.choices[0].message.content);from openai import OpenAI
client = OpenAI(
base_url="https://domain-kamu.com/v1",
api_key="sk-arlen-bansos-free" # bebas isi apa saja, router menerima semua key
)
response = client.chat.completions.create(
model="big-pickle",
messages=[{"role": "user", "content": "Jelaskan konsep caching"}]
)
print(response.choices[0].message.content)/listmodelMengambil daftar seluruh ID model AI yang aktif di router secara bersih dan ringkas tanpa teks berantakan. Alias: /api/listmodel.
- Tidak memerlukan parameter query.
curl -s "https://domain-kamu.com/listmodel"const res = await fetch("https://domain-kamu.com/listmodel");
const { models } = await res.json();
console.log(models); // ["big-pickle", "bansos-5/deepseek-v4-pro", ...]/listvoiceMengambil seluruh daftar model suara (voice) yang tersedia (termasuk default VoxCPM dan voice komunitas). ID model suara yang didapat bisa langsung dipakai untuk parameter voice di endpoint /api/tts. Alias: /api/listvoice.
- Tidak memerlukan parameter query.
curl -s "https://domain-kamu.com/listvoice"const res = await fetch("https://domain-kamu.com/listvoice");
const { voices } = await res.json();
voices.forEach(v => console.log(v.id, v.name));import requests
res = requests.get("https://domain-kamu.com/listvoice")
voices = res.json().get("voices", [])
for v in voices:
print(v["id"], "-", v["name"])/api/ttsGenerate audio suara manusia dari teks. Bisa query string (GET) atau JSON body (POST).
- text (wajib) — teks yang mau diucapkan
- voice (opsional, default: 'default') — id model dari /listvoice
- control_instruction (opsional) — instruksi gaya bicara (misal: bisik-bisik, bicara pelan)
- format (opsional) — binary | base64 | url
curl -G "https://domain-kamu.com/api/tts" \
--data-urlencode "text=Halo dunia, ini bansos AI gratis." \
--data-urlencode "voice=default" \
--data-urlencode "format=binary" \
--output hasil.wavconst res = await fetch("https://domain-kamu.com/api/tts", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
text: "Halo dunia, apa kabar?",
voice: "default",
control_instruction: "bicara tenang",
format: "binary"
})
});
const blob = await res.blob();
const audio = new Audio(URL.createObjectURL(blob));
audio.play();/api/clonevoiceBuat kloning model suara baru menggunakan sampel audio (multipart/form-data).
- name (wajib) — nama model suara
- file (opsional) — file audio sampel (WAV/MP3/M4A)
- promptText (opsional) — teks yang diucapkan pada file audio
- description (opsional) — deskripsi karakter suara
curl -X POST "https://domain-kamu.com/api/clonevoice" \
-F "name=Suara Naruto" \
-F "file=@/path/sampel.wav" \
-F "promptText=Aku tidak akan pernah menarik kata-kataku" \
-F "description=Suara karakter anime bersemangat"