RUROUT API
Подключение за несколько минут.
Production base URL: https://rurout.ru/v1. Зарегистрируйтесь, создайте именованный ключ группы RuRout в кабинете и сохраните секрет при создании. Для другой группы выберите точный ID из списка доступных ей моделей.
Быстрый старт
На сервере задайте RUROUT_API_KEY и выполните запрос. Это платный запрос по тарифу выбранной модели; результат и стоимость появятся в разделе «Использование».
curl https://rurout.ru/v1/chat/completions \
-H "Authorization: Bearer $RUROUT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemini-2.5-flash-lite","messages":[{"role":"user","content":"Привет!"}],"max_tokens":16}'Авторизация
Передавайте ключ в Authorization: Bearer. На /v1beta также принимается x-goog-api-key, но для ключей группы RuRout проверены OpenAI-совместимые endpoints ниже; native Gemini требует группы с Gemini-аккаунтами. Не помещайте ключ в query string или публичный frontend-код.
Модели
GET /v1/models возвращает только модели, разрешённые группе конкретного ключа. Каталог может отличаться у разных ключей.
Стандартные SDK
Серверный Python: pip install openai==2.6.1
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["RUROUT_API_KEY"],
base_url="https://rurout.ru/v1",
)
response = client.chat.completions.create(
model="gemini-2.5-flash-lite", # для ключа группы RuRout
messages=[{"role": "user", "content": "Привет!"}],
max_tokens=16,
)
print(response.choices[0].message.content)Серверный JavaScript (Node.js): npm install openai@6.25.0
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.RUROUT_API_KEY,
baseURL: "https://rurout.ru/v1",
});
const response = await client.chat.completions.create({
model: "gemini-2.5-flash-lite", // ключ группы RuRout
messages: [{ role: "user", content: "Привет!" }],
max_tokens: 16,
});
console.log(response.choices[0].message.content);Версии и работу этих SDK с RuRout проверяйте перед использованием в вашем приложении; ключ храните в серверном окружении.
Streaming и tools
Для gemini-2.5-flash-lite в группе RuRout проверены POST /v1/chat/completions, POST /v1/responses и POST /v1/messages, включая Chat Completions с stream: true и function tools. Читайте SSE до data: [DONE]. После начала потока HTTP-статус уже нельзя заменить, поэтому терминальная ошибка может прийти событием потока.
Метаданные ключа
GET https://rurout.ru/v1/sub2api/billing Authorization: Bearer $RUROUT_API_KEY
Ответ включает key_name, группу и эффективный тарифный множитель. Endpoint доступен действующему ключу даже при недостаточном балансе.
OpenCode
OpenCode 2 подключается без плагина: выполните curl -fsSL https://rurout.ru/install.sh | sh -s -- --cli opencode2 в каталоге проекта. Плагин проверен изолированно (загрузка, синхронизация каталога, честная 401). Детали — на странице Интеграции.
Ошибки и повторы
400 Некорректный запрос. Исправьте параметры.
401 Ключ отсутствует или недействителен.
403 Нет доступа либо недостаточно средств на балансе.
404 Модель не найдена или недоступна ключу. Проверьте GET /v1/models.
429 Превышен лимит. Учитывайте Retry-After.
5xx Временная ошибка. Сохраните ID запроса и обратитесь в поддержку.
X-Request-ID связывает ответ с HTTP-логом. X-Client-Request-ID связывает оплаченный запрос со строкой расходов: в кабинете он показан как client:<ID>. Передайте любой из этих ID в поддержку. Не повторяйте автоматически платный запрос после неопределённого результата: предыдущая генерация могла выполниться и быть учтена.