1. Base URL dan autentikasi
Semua request dikirim ke https://api.relayer.id/v1 dengan header Authorization: Bearer berisi API key dari dashboard.
# endpoint utama https://api.relayer.id/v1/chat/completions # header wajib Authorization: Bearer $RELAYER_API_KEY
2. Request pertama dengan curl
curl https://api.relayer.id/v1/chat/completions \ -H "Authorization: Bearer $RELAYER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"Halo"}]}'
3. Memakai SDK OpenAI
SDK resmi OpenAI bisa langsung dipakai. Yang berubah hanya baseURL dan apiKey.
import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.RELAYER_API_KEY, baseURL: "https://api.relayer.id/v1", }); const res = await client.chat.completions.create({ model: "deepseek-v4.1-flash", messages: [{ role: "user", content: "Halo" }], });
4. Streaming
Tambahkan "stream": true untuk menerima Server-Sent Events seperti di API OpenAI. Format event-nya identik, jadi parser yang sudah ada tetap bekerja.
const stream = await client.chat.completions.create({ model: "deepseek-v4.1-flash", messages, stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ""); }
5. Daftar model
Nama model yang bisa dipakai ada di katalog model. Kalau kamu butuh daftar terprogram, ambil dari endpoint publik GET https://api.relayer.id/status.
deepseek-v4.1-flash— DeepSeek V4.1 Flashglm-5.3-flash— GLM 5.3 Flashminimax-m3.1-flash— MiniMax M3.1 Flashkimi-k2.7— Kimi K2.7 Codeglm-5v-turbo— GLM 5V Turboglm-5.3— GLM 5.3kimi-k3.1-pro— Kimi K3.1 Proclaude-opus-4.7-1m— Claude Opus 4.7 (1M)
6. Batas pemakaian
Secara bawaan tiap akun dibatasi sekitar 60 request per menit, 1.000 request per hari, dan 5 request bersamaan. Batas ini bisa dinaikkan untuk kebutuhan produksi — hubungi [email protected].
Kalau batas tercapai, API membalas kode RATE_LIMITED dengan petunjuk retry_after dalam detik.
7. Penanganan error
Semua error memakai bentuk yang sama, jadi satu handler cukup:
{
"error": {
"message": "Saldo habis. Tambah saldo dulu.",
"type": "insufficient_balance",
"code": "INSUFFICIENT_BALANCE"
}
}INSUFFICIENT_BALANCE— saldo tidak cukup untuk request ini. Tambah saldo di dashboard.RATE_LIMITED— batas per menit, per hari, atau concurrency tercapai. Tunggu sesuairetry_after.UPSTREAM_ERROR— penyedia model sedang bermasalah. Coba lagi sebentar lagi.BAD_REQUEST— body request tidak valid. Periksa nama field dan tipe datanya.
8. Biaya dan saldo
Saldo dipotong dalam Rupiah mengikuti tarif per model. Tiga jenis token dihitung terpisah: cache-hit (paling murah), input baru, dan output (termasuk reasoning, paling mahal). Rincian tiap request bisa dilihat di dashboard.
API key aktif 28 hari sejak top-up terakhir, dan setiap top-up memperpanjangnya. Saldo sendiri tidak punya masa kedaluwarsa.