Endpoint
Provider routing dan fallback
Pilih, urutkan, dan saring provider upstream, serta atur fallback antar model lewat objek provider dan array models di request Anda.
Coba di playgroundBanyak model dilayani oleh beberapa provider upstream, masing-masing dengan harga, kecepatan, dan kebijakan data sendiri. Secara default, request di-load-balance antar provider berdasarkan harga dan uptime, lalu beralih ke provider lain saat satu provider gagal. Gunakan objek provider untuk mengubah ini, dan models untuk fallback antar model yang berbeda.
Objek provider
| Field | Tipe | Deskripsi |
|---|---|---|
order | string[] | Provider yang dicoba lebih dulu, berurutan, mis. ["Anthropic", "Amazon Bedrock"]. |
allow_fallbacks | boolean | false mencegah request pergi ke provider di luar order atau only (default true). |
only | string[] | Hanya izinkan provider ini. |
ignore | string[] | Jangan pernah gunakan provider ini. |
sort | string | "price", "throughput", atau "latency" sebagai pengganti load balancing. |
data_collection | string | "deny" mengecualikan provider yang mungkin menyimpan atau melatih model dengan prompt. "allow" adalah default. |
require_parameters | boolean | Hanya gunakan provider yang mendukung setiap parameter pada request Anda (mis. tools, response_format). |
quantizations | string[] | Presisi yang diizinkan, mis. ["fp8", "bf16"]. |
max_price | object | Batas atas harga dalam USD per juta token, mis. { "prompt": 1, "completion": 3 }. |
{
"model": "meta-llama/llama-3.3-70b-instruct",
"messages": [{ "role": "user", "content": "Hello" }],
"provider": {
"order": ["Groq", "Fireworks"],
"allow_fallbacks": true,
"data_collection": "deny",
"sort": "throughput"
}
}
Varian :nitro adalah pintasan untuk sort: "throughput", dan :floor adalah pintasan untuk sort: "price". Lihat ID model.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Fallback model dengan models
Kirim daftar model. Jika yang pertama gagal (gangguan, batas laju, moderasi, atau error panjang konteks), model berikutnya dicoba:
{
"models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
"messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
modelbersifat opsional jikamodelsdiatur. Jika Anda mengirim keduanya,modeldicoba lebih dulu.- Setiap model dalam daftar harus lolos pemeriksaan gateway sebelum request dikirim: model harus ada dan aktif, masuk dalam allowlist model key Anda, dan termasuk dalam paket Anda. Satu model yang gagal pemeriksaan menolak seluruh request (
403 model_not_allowed,403 plan_required, atau404 model_not_found). - Anda hanya ditagih untuk model yang menjawab, dengan harganya sendiri. Field
modelpada respons memberi tahu model mana itu.
Respons
{
"id": "gen-1760000000-route",
"model": "openai/gpt-5-mini",
"provider": "OpenAI",
"choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "..." } }],
"usage": { "prompt_tokens": 140, "completion_tokens": 60, "total_tokens": 200, "cost": 0.000155 }
}
provider menunjukkan provider upstream mana yang melayani request. Pencarian generasi menampilkan detail routing lengkap.
Error
Jika tidak ada provider yang cocok dengan filter Anda (mis. only bersama require_parameters), upstream mengembalikan 404 "No endpoints found". Error lainnya sama seperti pada Chat completions. Lihat Error.