Документация Быстрый старт

Быстрый старт

Начните работу с API-прокси ru-openrouter.ru

api.ru-openrouter.ru/v1 — это прокси-сервер для API, который предоставляет доступ к сотням AI-моделей через единый эндпоинт, с ценами в рублях и без необходимости использовать VPN.

Есть три способа интеграции:

Подход Для чего подходит
API Полный контроль, любой язык, без зависимостей
OpenAI SDK Готовая библиотека, минимальные изменения кода
Другие SDK Интеграция с существующими фреймворками

Использование API

Отправляйте HTTP-запросы на эндпоинт /chat/completions — совместимо с любым языком и фреймворком.

Заголовки атрибуции опциональны, но позволяют вашему приложению отображаться в статистике нашего сервиса.

cURL

curl https://api.ru-openrouter.ru/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk_ваш_api_ключ" \
  -H "HTTP-Referer: https://your-site.ru" \
  -H "X-Title: My App" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {
        "role": "user",
        "content": "В чём смысл жизни?"
      }
    ],
    "max_tokens": 1000
  }'

Python

import requests
import json

response = requests.post(
    url="https://api.ru-openrouter.ru/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk_ваш_api_ключ",
        "HTTP-Referer": "https://your-site.ru",
        "X-Title": "My App",
    },
    data=json.dumps({
        "model": "openai/gpt-4o-mini",
        "messages": [
            {"role": "user", "content": "В чём смысл жизни?"}
        ],
        "max_tokens": 1000,
    })
)

print(response.json()["choices"][0]["message"]["content"])

TypeScript (fetch)

fetch('https://api.ru-openrouter.ru/v1/chat/completions', {
    method: 'POST',
    headers: {
        'Authorization': 'Bearer sk_ваш_api_ключ',
        'HTTP-Referer': 'https://your-site.ru',
        'X-Title': 'My App',
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        model: 'openai/gpt-4o-mini',
        messages: [
            {role: 'user', content: 'В чём смысл жизни?'}
        ],
        max_tokens: 1000,
    }),
})
.then(res => res.json())
.then(data => console.log(data.choices[0].message.content));

PHP

 true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer sk_ваш_api_ключ',
        'HTTP-Referer: https://your-site.ru',
        'X-Title: My App',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'openai/gpt-4o-mini',
        'messages' => [
            ['role' => 'user', 'content' => 'В чём смысл жизни?']
        ],
        'max_tokens' => 1000,
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
echo $response['choices'][0]['message']['content'] ?? 'Ошибка';

API также поддерживает стриминг — добавьте "stream": true в тело запроса, и ответ придёт SSE-потоком.

Полный список моделей доступен через эндпоинт GET https://api.ru-openrouter.ru/v1/models. Актуальный каталог с ценами: ru-openrouter.ru/models.


Использование OpenAI SDK

Вы можете использовать официальный OpenAI SDK, просто указав baseURL на https://api.ru-openrouter.ru/v1/. Это удобно, если у вас уже есть код на OpenAI SDK — достаточно сменить baseURL и API-ключ.

TypeScript

import OpenAI from 'openai';

const openai = new OpenAI({
    baseURL: 'https://api.ru-openrouter.ru/v1/',
    apiKey: 'sk_ваш_api_ключ',
    defaultHeaders: {
        'HTTP-Referer': 'https://your-site.ru',
        'X-Title': 'My App',
    },
});

async function main() {
    const completion = await openai.chat.completions.create({
        model: 'openai/gpt-4o-mini',
        messages: [
            {role: 'user', content: 'В чём смысл жизни?'}
        ],
        max_tokens: 1000,
    });

    console.log(completion.choices[0].message.content);
}

main();

Python

from openai import OpenAI

client = OpenAI(
    base_url='https://api.ru-openrouter.ru/v1/',
    api_key='sk_ваш_api_ключ',
)

completion = client.chat.completions.create(
    extra_headers={
        'HTTP-Referer': 'https://your-site.ru',
        'X-Title': 'My App',
    },
    model='openai/gpt-4o-mini',
    messages=[
        {'role': 'user', 'content': 'В чём смысл жизни?'}
    ],
    max_tokens=1000,
)

print(completion.choices[0].message.content)

JavaScript

import OpenAI from 'openai';

const client = new OpenAI({
    baseURL: 'https://api.ru-openrouter.ru/v1/',
    apiKey: 'sk_ваш_api_ключ',
});

const response = await client.chat.completions.create({
    model: 'openai/gpt-4o-mini',
    messages: [
        {role: 'user', content: 'В чём смысл жизни?'}
    ],
    max_tokens: 1000,
});

console.log(response.choices[0].message.content);

Использование сторонних SDK

LangChain

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url='https://api.ru-openrouter.ru/v1/',
    api_key='sk_ваш_api_ключ',
    model='openai/gpt-4o-mini',
    max_tokens=1000,
)

response = llm.invoke('В чём смысл жизни?')
print(response.content)

Vercel AI SDK

import { openai } from '@ai-sdk/openai';
import { generateText } from 'ai';

const result = await generateText({
    model: openai('openai/gpt-4o-mini', {
        baseURL: 'https://api.ru-openrouter.ru/v1/',
    }),
    messages: [
        {role: 'user', content: 'В чём смысл жизни?'}
    ],
    maxTokens: 1000,
});

console.log(result.text);

Начало работы

1. Регистрация

Зарегистрируйтесь на ru-openrouter.ru/register.

2. Пополнение баланса

Пополните баланс в личном кабинете.

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

Создайте API ключ в разделе «API ключи».
Ключ показывается только один раз — сохраните его сразу.


Streaming

Добавьте "stream": true в тело запроса, и ответ придёт SSE-потоком:

curl https://api.ru-openrouter.ru/v1/chat/completions \
  -H "Authorization: Bearer sk_ваш_api_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Напиши короткое стихотворение"}],
    "stream": true,
    "max_tokens": 1000
  }'

Поток передаёт события SSE:

data: {"id":"gen-xxx","object":"chat.completion.chunk","choices":[{"delta":{"role":"assistant","content":"Вот"}}]}

data: {"id":"gen-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":" стих"}}]}

data: {"id":"gen-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":"отворение"}}]}

data: [DONE]

В финальном чанке (перед [DONE]) передаётся usage с информацией о потраченных токенах и стоимости.


Суффиксы :nitro и :floor

Добавьте суффикс к названию модели для выбора стратегии маршрутизации провайдеров:

Суффикс Стратегия Описание
:nitro throughput Максимальная скорость ответа
:floor price Минимальная цена
curl https://api.ru-openrouter.ru/v1/chat/completions \
  -H "Authorization: Bearer sk_ваш_api_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini:nitro",
    "messages": [{"role": "user", "content": "Быстрый ответ, пожалуйста!"}],
    "max_tokens": 1000
  }'