Если устали от отдельных ключей OpenAI, Anthropic и Google, OpenRouter даёт доступ к 400+ моделям через OpenAI-совместимый endpoint. Гайд: таблица сравнения, failover, рабочий код, шесть шагов, три цифры по ценам и облачный Mac Mini KVMNODE для CLI-агентов 24/7.
01

Что такое OpenRouter? Единый LLM-шлюз

OpenRouter — агрегатор LLM API: один ключ, endpoint в формате OpenAI, 400+ моделей. Двухуровневая маршрутизация model/provider, failover, 25+ бесплатных моделей, без наценки на токены.

01

Разрозненные ключи вендоров.

02

Фрагментация SDK.

03

Отказ одного провайдера.

04

Free tier 50/1000 в день.

05

5,5 % только на credits; BYOK 1M/мес.

02

OpenRouter vs прямой API

ПараметрOpenRouterПрямой API
КлючиОдинУ каждого вендора
Задержка+10–80 msНиже
ComplianceUS gatewayРегиональные DPA

Подходит для прототипов и A/B. Не подходит: огромные объёмы, эксклюзивные API, экстремально низкая задержка, жёсткое data residency.

03

Примеры кода API

Рабочие примеры:

bash · cURL
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": "用一句话解释什么是量子计算" }
    ]
  }'
Python · requests
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"])
Python · OpenAI SDK
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)
JavaScript · OpenAI SDK
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);
JavaScript · Streaming
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);
}
JSON · Fallback routing
{
  "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" }]
}
bash · Models list
curl https://openrouter.ai/api/v1/models \
  -H "Authorization: Bearer $OPENROUTER_API_KEY"
04

Шесть шагов подключения

01

Регистрация на openrouter.ai

02

Создание API-ключа

03

Переменная окружения

04

Первый запрос

05

Стриминг

06

Цепочка fallback

05

Цены, SEO, KVMNODE для продакшена

Три цифры: без markup на токены, 5,5 % при пополнении / free tier 50/день без кредита, 1000/день после $10, 20/мин / BYOK 1 млн запросов/мес бесплатно.

OpenRouter решает маршрутизацию моделей, но для CLI-агентов нужен стабильный macOS-хост 24/7. KVMNODE Cloud Mac Mini — цены, заказ, поддержка.