Аудитория: платформенные инженеры и backend-разработчики, которым нужен единый OpenAI-compatible endpoint для GPT, Claude, Gemini без трех billing-контуров. Вывод: OpenRouter разделяет model routing и provider routing; failover встроен на уровне gateway. Структура: шесть системных ограничений, таблицы routing и сравнения с direct API, пять преимуществ и anti-patterns, код (curl/Python/Node/SDK/stream/fallback/models), pricing, hreflang/SEO, 6-step runbook, три метрики, FAQ.
Источник: OpenRouter Docs. Это ключевой технический блок — не «агрегатор ключей», а двухслойный scheduler.
| Слой | Поле API | Алгоритм (упрощенно) |
|---|---|---|
| Model routing | model, openrouter/auto | Выбор LLM; auto — эвристика price/perf |
| Provider routing | provider | Weighted by inverse price among hosts того же model ID |
| Failover chain | models[] + route: fallback | Sequential retry на следующий model при 4xx/5xx/rate limit |
| Endpoint | POST /v1/chat/completions | OpenAI wire format; Bearer auth |
| Model namespace | vendor/model | anthropic/claude-3.5-sonnet, openai/gpt-4o, google/gemini-2.5-pro |
Failover на gateway снимает с клиента circuit breaker, exponential backoff и model-switch logic — но добавляет hop latency и single point of policy (rate limits OpenRouter account).
| Параметр | OpenRouter | Direct (OpenAI/Anthropic/Google) |
|---|---|---|
| Keys | 1 key → 400+ models | 1 key / vendor |
| SDK migration | base_url swap | Native SDK, full API surface |
| Token price | Pass-through, 0% markup | Vendor list price |
| Fee model | 5.5% on credit top-up | No gateway fee |
| Failover | Built-in models[] | Custom implementation |
| Latency | +10–80 ms typical | Minimal hops |
| Special APIs | Chat completions focus | Batch, Assistants, Prompt Caching |
| BYOK | 1M req/mo free tier | N/A (you ARE the provider) |
1. Drop-in migration: OpenAI SDK — меняете только base_url="https://openrouter.ai/api/v1" и key.
2. Provider-agnostic failover: без client-side retry storm.
3. Unified observability: token spend, TTFT, throughput — см. также OpenRouter rankings matrix.
4. Zero token markup: 5.5% только на пополнение; BYOK 1M req/mo.
5. 25+ free models: load testing routing logic без burn rate.
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-3.5-sonnet",
"messages": [{"role": "user", "content": "Explain OpenRouter routing in one sentence"}]
}'
from openai import OpenAI
import os
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
r = client.chat.completions.create(
model="deepseek/deepseek-chat",
messages=[{"role": "user", "content": "Quick sort in Python"}],
extra_headers={"HTTP-Referer": "https://maccome.com", "X-Title": "Gateway Test"},
)
print(r.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
});
const stream = await client.chat.completions.create({
model: "google/gemini-2.5-pro",
messages: [{ role: "user", content: "Stream this response" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
{
"model": "anthropic/claude-3.5-sonnet",
"models": [
"anthropic/claude-3.5-sonnet",
"openai/gpt-4o",
"google/gemini-2.5-pro"
],
"route": "fallback",
"messages": [{"role": "user", "content": "ping"}]
}
curl https://openrouter.ai/api/v1/models \ -H "Authorization: Bearer $OPENROUTER_API_KEY"
OpenClaw multi-provider config: failover checklist.
| Компонент | Значение | Условие |
|---|---|---|
| Token billing | Provider price, 0% markup | Per OpenRouter FAQ |
| Top-up fee | 5.5% (min $0.80) | Credit purchase |
| Crypto top-up | +5% | Additional |
| BYOK | $0 до 1M req/mo | Then 5% on equivalent |
| Free tier models | 25+ models | ~50 req/day, no balance |
| Free tier expanded | ~1000 req/day, 20/min | Balance ≥ $10 |
P0 checklist (из bilingual SEO research):
/ru/, /en/ — zero impressions = crawl/index, not ranking.Distribution: EN — dev.to, Hacker News, r/LocalLLaMA; track GSC impressions/CTR by language prefix; Matomo language segment.
base_url only; validate streaming SSE parsing unchanged.models[]; log which model served response (model in response body).OpenRouter закрывает model/provider routing и failover. Он не закрывает 24/7 agent uptime на MacBook с sleep policy.
Три hidden cost локального хоста: sleep убивает agent state, нет sustained load для проверки fallback под реальной нагрузкой, нет reproducible CI для OpenClaw routing config. Для production multi-model agents на Apple Silicon выделенный MACCOME Mac mini M4/M4 Pro — тот же routing config, host без sleep. Тарифы: цены аренды; помощь: центр помощи.
Обновлено: 24 июля 2026 | Источники: OpenRouter Docs, FAQ
FAQ
Что такое OpenRouter?
LLM gateway с OpenAI-compatible API. Endpoint https://openrouter.ai/api/v1/chat/completions, один key для GPT/Claude/Gemini и 400+ моделей.
Есть ли наценка на токены?
Нет. 5.5% только при пополнении credits (мин. $0.80).
Как работает двухуровневый routing?
model выбирает LLM; provider — инстанс хоста. Fallback: models[] + route: fallback.
Какой latency overhead?
Типично +10–80 ms. Для strict P99 измеряйте direct endpoint.
Какие free models?
25+ моделей; ~50 req/день без баланса, ~1000/день при credits ≥ $10.
Где крутить gateway 24/7?
MACCOME Mac mini M4/M4 Pro — цены аренды, центр помощи.