Что такое OpenRouter? Единый LLM-шлюз
OpenRouter — агрегатор LLM API: один ключ, endpoint в формате OpenAI, 400+ моделей. Двухуровневая маршрутизация model/provider, failover, 25+ бесплатных моделей, без наценки на токены.
Разрозненные ключи вендоров.
Фрагментация SDK.
Отказ одного провайдера.
Free tier 50/1000 в день.
5,5 % только на credits; BYOK 1M/мес.
OpenRouter vs прямой API
| Параметр | OpenRouter | Прямой API |
|---|---|---|
| Ключи | Один | У каждого вендора |
| Задержка | +10–80 ms | Ниже |
| Compliance | US gateway | Региональные DPA |
Подходит для прототипов и A/B. Не подходит: огромные объёмы, эксклюзивные API, экстремально низкая задержка, жёсткое data residency.
Примеры кода API
Рабочие примеры:
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": "用一句话解释什么是量子计算" }
]
}'import requests
import os
response = requests.post(
url="https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "google/gemini-2.5-pro",
"messages": [
{"role": "user", "content": "帮我写一个快速排序的 Python 实现"}
],
},
)
print(response.json()["choices"][0]["message"]["content"])from openai import OpenAI
import os
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
completion = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
extra_headers={
"HTTP-Referer": "https://kvmnode.com",
"X-Title": "KVMNODE Blog Demo",
},
)
print(completion.choices[0].message.content)import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
});
const completion = await openai.chat.completions.create({
model: "deepseek/deepseek-chat",
messages: [{ role: "user", content: "Explain OpenRouter in one sentence" }],
});
console.log(completion.choices[0].message.content);const stream = await openai.chat.completions.create({
model: "anthropic/claude-3.5-sonnet",
messages: [{ role: "user", content: "写一首关于秋天的短诗" }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(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": "Hello" }]
}curl https://openrouter.ai/api/v1/models \
-H "Authorization: Bearer $OPENROUTER_API_KEY"Шесть шагов подключения
Регистрация на openrouter.ai
Создание API-ключа
Переменная окружения
Первый запрос
Стриминг
Цепочка fallback
Цены, SEO, KVMNODE для продакшена
Три цифры: без markup на токены, 5,5 % при пополнении / free tier 50/день без кредита, 1000/день после $10, 20/мин / BYOK 1 млн запросов/мес бесплатно.
OpenRouter решает маршрутизацию моделей, но для CLI-агентов нужен стабильный macOS-хост 24/7. KVMNODE Cloud Mac Mini — цены, заказ, поддержка.