Dokumentasi API

Integrasi OpenAI-compatible lewat satu base URL.

Gunakan API key dari dashboard user. Header, request body, dan respons mengikuti format OpenAI-compatible untuk endpoint yang sudah aktif.

Base URL

https://router.ranpaycash.com/v1

Authentication

Kirim API key user pada header Authorization.

Authorization: Bearer sk-your-api-key
Content-Type: application/json

Endpoint aktif

Endpoint berikut sudah tersedia di gateway saat ini.

List models

Mengambil katalog model aktif yang bisa dipakai user.

GET /models

Chat completions

Mengirim request chat OpenAI-compatible, non-stream atau stream.

POST /chat/completions

Embeddings

Membuat embeddings dari input teks melalui provider terpilih.

POST /embeddings

Chat completions

Contoh request non-stream menggunakan curl.

curl https://router.ranpaycash.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [
      {"role": "user", "content": "Tulis ringkasan singkat tentang Laravel"}
    ],
    "stream": false
  }'

JavaScript SDK style

Gunakan base URL gateway pada OpenAI-compatible client.

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-your-api-key",
  baseURL: "https://router.ranpaycash.com/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-5.5",
  messages: [{ role: "user", content: "Halo" }],
});

Embeddings

Endpoint embeddings memakai header auth yang sama.

curl https://router.ranpaycash.com/v1/embeddings \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "AI gateway dengan billing token"
  }'

Error format

Gateway mengembalikan error OpenAI-compatible dan menyembunyikan error mentah upstream.

{
  "error": {
    "message": "Insufficient balance.",
    "type": "gateway_error",
    "code": "insufficient_balance"
  }
}