Dokumentasi

Cara memakai API Relayer

Relayer memakai format request yang sama dengan OpenAI. Kalau kode kamu sudah jalan dengan SDK OpenAI, cukup ganti base URL dan API key — sisanya tidak perlu diubah.

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.

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 sesuai retry_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.

Ada yang belum terjawab? Lihat FAQ atau hubungi [email protected].

Siap kirim request pertama?

Daftar, buat API key, lalu isi saldo. Selesai dalam beberapa menit.

Daftar sekarang