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.

Base URL
https://domain-kamu.com/v1
API Key (Valid Acak / Bebas)
sk-arlen-bansos-free

Langkah-langkah di 9router / One API:

  1. Buka menu Channels / Providers pada dashboard 9router.
  2. Pilih tipe provider: OpenAI (atau OpenAI-Compatible).
  3. Masukkan Base URL: https://domain-kamu.com/v1
  4. Masukkan API Key: sk-arlen-bansos-free (atau teks acak bebas lainnya, router selalu memvalidasi).
  5. 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).
  6. Klik Simpan & Tes. Status channel akan langsung hijau (Online).
POST/v1/chat/completions

Kirim prompt teks & gambar ke model AI dengan standar OpenAI API. Mendukung streaming SSE. Kompatibel dengan 9router, NextChat, OpenWebUI, dan script cURL.

Parameter:
  • 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
Contoh Pemanggilan:
cURL (Chat)
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?" }
    ]
  }'
JavaScript Fetch
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);
Python (OpenAI SDK)
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)
GET/listmodel

Mengambil daftar seluruh ID model AI yang aktif di router secara bersih dan ringkas tanpa teks berantakan. Alias: /api/listmodel.

Parameter:
  • Tidak memerlukan parameter query.
Contoh Pemanggilan:
cURL
curl -s "https://domain-kamu.com/listmodel"
JavaScript
const res = await fetch("https://domain-kamu.com/listmodel");
const { models } = await res.json();
console.log(models); // ["big-pickle", "bansos-5/deepseek-v4-pro", ...]
GET/listvoice

Mengambil 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.

Parameter:
  • Tidak memerlukan parameter query.
Contoh Pemanggilan:
cURL
curl -s "https://domain-kamu.com/listvoice"
JavaScript
const res = await fetch("https://domain-kamu.com/listvoice");
const { voices } = await res.json();
voices.forEach(v => console.log(v.id, v.name));
Python
import requests

res = requests.get("https://domain-kamu.com/listvoice")
voices = res.json().get("voices", [])
for v in voices:
    print(v["id"], "-", v["name"])
GET / POST/api/tts

Generate audio suara manusia dari teks. Bisa query string (GET) atau JSON body (POST).

Parameter:
  • 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
Contoh Pemanggilan:
cURL
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.wav
JavaScript
const 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();
POST/api/clonevoice

Buat kloning model suara baru menggunakan sampel audio (multipart/form-data).

Parameter:
  • 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
Contoh Pemanggilan:
cURL
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"