Dokumentasi · diperbarui 16 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
- Ambil API key lewat bot Telegram @CFrouter_bot (pilih paket, lalu bayar).
- Tukar
base_urlkehttps://api.cfrouter.my.id/v1. - 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
| Method | Path | Keterangan |
|---|---|---|
| GET | /v1/models | Daftar model yang bisa dipakai key kamu. Setiap item memuat id dan context_length. |
| POST | /v1/chat/completions | Chat standar gaya OpenAI. Mendukung stream: true, tools (function calling), dan temperature/max_tokens. |
| POST | /v1/messages | Chat 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
- Pemakaian dihitung dalam token (input + output, termasuk token cache) sesuai paket yang dibeli.
- Beberapa model punya pengali token (ditampilkan sebagai MULTIPLE di bot/katalog). Token yang terpakai mengikuti pengali model tersebut.
- Cek sisa kuota dan riwayat pemakaian di cfrouter.my.id — masukkan API key kamu.
- Top up kuota lewat bot: @CFrouter_bot.
- Bonus Top Up 10% token - setiap top up kuota mendapat tambahan 10% token (contoh: top up 250M menjadi 275M).
Batas teknis
| Batas | Nilai |
|---|---|
| Ukuran body request | maksimal 2 MiB |
| Jumlah pesan per request | maksimal 1024 |
Jumlah tools per request | maksimal 128 |
| Konteks | hingga 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
| Kode | Arti | Yang perlu dilakukan |
|---|---|---|
| 400 | Request tidak valid (model kosong/parameter salah) | Periksa model dan format body. |
| 401 | API key salah atau tidak aktif | Pastikan key lengkap dan belum dinonaktifkan. |
| 403 | Key tidak berhak memakai model tersebut | Model itu ada di paket lain — lihat daftar model key kamu. |
| 404 | Model tidak ditemukan | Cek GET /v1/models. |
| 413 | Body terlalu besar | Kurangi ukuran request (> 2 MiB ditolak). |
| 429 | Terlalu banyak permintaan | Ulangi setelah jeda; kurangi paralel. |
| 500 / 502 / 503 | Gangguan sementara di sisi penyedia model | Coba ulang atau pilih model lain; hubungi support bila berlanjut. |
Butuh bantuan?
Pertanyaan soal key, kuota, atau model dijawab lewat bot Telegram: @CFrouter_bot.