Dokumentasi · diperbarui 15 Oktober 2026

Dokumentasi API

Satu base URL untuk semua model. Endpoint kompatibel dengan SDK OpenAI dan Anthropic — cukup tukar base_url dan pakai API key dari CFrouter.

Mulai cepat

  1. Ambil API key lewat bot Telegram @CFrouter_bot (pilih paket, lalu bayar).
  2. Tukar base_url ke https://api.cfrouter.my.id/v1.
  3. Kirim permintaan seperti biasa ke SDK OpenAI/Anthropic, dengan Authorization: Bearer sk-....
Base URL: https://api.cfrouter.my.id/v1 · Autentikasi: header Authorization: Bearer sk-... (atau x-api-key untuk gaya Anthropic).

Endpoint

MethodPathKeterangan
GET/v1/modelsDaftar model yang bisa dipakai key kamu. Setiap item memuat id dan context_length.
POST/v1/chat/completionsChat standar gaya OpenAI. Mendukung stream: true, tools (function calling), dan temperature/max_tokens.
POST/v1/messagesChat gaya Anthropic (dipakai SDK anthropic). Streaming SSE dengan event message_start, content_block_delta, message_stop.

Contoh kode

cURL

curl https://api.cfrouter.my.id/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-5.3-flash",
    "messages": [{"role": "user", "content": "Halo"}],
    "max_tokens": 256
  }'

Python — SDK OpenAI

from openai import OpenAI

client = OpenAI(base_url="https://api.cfrouter.my.id/v1", api_key="sk-...")
r = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "Halo"}],
)
print(r.choices[0].message.content)
print(r.usage)          # prompt_tokens, completion_tokens, total_tokens

Python — SDK Anthropic

from anthropic import Anthropic

client = Anthropic(base_url="https://api.cfrouter.my.id/v1", api_key="sk-...")
m = client.messages.create(
    model="claude-haiku-5-5",
    max_tokens=256,
    messages=[{"role": "user", "content": "Halo"}],
)
print(m.content)

Streaming (SSE)

stream = client.chat.completions.create(
    model="qwen3.8-max", stream=True,
    messages=[{"role": "user", "content": "Tulis 3 kalimat"}],
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Function calling

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Ambil cuaca sebuah kota",
        "parameters": {"type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"]},
    },
}]
client.chat.completions.create(model="glm-5.3", messages=[{"role": "user", "content": "Cuaca Jakarta?"}], tools=tools)

Daftar model

Daftar terkini selalu bisa dibaca langsung dari API:

curl https://api.cfrouter.my.id/v1/models -H "Authorization: Bearer sk-..."

Katalog publik saat ini berisi 24 model, mulai GLM 5.3 dan DeepSeek V4.1 Flash sampai GPT-6 Series, Claude, dan Gemini.

Ringkasan lengkap beserta harga list resmi vendor ada di halaman katalog.

Kuota & top up

Batas teknis

BatasNilai
Ukuran body requestmaksimal 2 MiB
Jumlah pesan per requestmaksimal 1024
Jumlah tools per requestmaksimal 128
Kontekshingga 1.000.000 token (tergantung model)
Batas RPM & TPM saat trafik tinggi Batas RPM dan TPM diberlakukan sementara ketika trafik sedang tinggi untuk menjaga layanan tetap stabil dan merata bagi seluruh pengguna.

Kode error

KodeArtiYang perlu dilakukan
400Request tidak valid (model kosong/parameter salah)Periksa model dan format body.
401API key salah atau tidak aktifPastikan key lengkap dan belum dinonaktifkan.
403Key tidak berhak memakai model tersebutModel itu ada di paket lain — lihat daftar model key kamu.
404Model tidak ditemukanCek GET /v1/models.
413Body terlalu besarKurangi ukuran request (> 2 MiB ditolak).
429Terlalu banyak permintaanUlangi setelah jeda; kurangi paralel.
500 / 502 / 503Gangguan sementara di sisi penyedia modelCoba ulang atau pilih model lain; hubungi support bila berlanjut.

Butuh bantuan?

Pertanyaan soal key, kuota, atau model dijawab lewat bot Telegram: @CFrouter_bot.