ru ▾
Получите свой ключ

Документация API OpenRouter

Подключите свое приложение к нашему LLM без цензуры, используя стандартный OpenAI-совместимый интерфейс. Это руководство охватывает аутентификацию, форматы запросов и потоковую передачу для быстрой интеграции.

Быстрый старт: Подключение с Python

Начните с установки официального SDK и укажите его на наш базовый URL.

Наш API ведёт себя как стандартный интерфейс OpenAI, но маршрутизирует запросы к одной uncensored модели. Этот подход устраняет сложность прокси-серверов, сохраняя портативность вашего кода.

  • Установите библиотеку через pip.
  • Установите API-ключ в окружении.
  • Определите базовый URL для нашего эндпоинта.
from openai import OpenAI

client = OpenAI(base_url="https://api.apiopenrouter.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Замените ключ-заполнитель на ваши собственные учетные данные. Вы можете отправлять простые запросы или сложные структурированные данные.

Аутентификация и ключи

Сгенерируйте ключ на панели управления и передайте его в заголовке Authorization.

Каждый аккаунт поддерживает один активный ключ одновременно. При создании нового ключа старый немедленно перестает работать. Это упрощает управление безопасностью без необходимости сложной логики ротации.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

В приведенном выше запросе используется схема Bearer. Убедитесь, что ваш ключ начинается с sk- и не содержит лишних пробелов.

Эндпоинт Chat Completions

Отправляйте сообщения в /v1/chat/completions эндпоинт с использованием стандартного JSON.

Модель принимает user и assistant роли. Вы можете настроить temperature, top-p и последовательности остановки, чтобы управлять стилем вывода. Ответы возвращают использование токенов в последнем чанке, если включена потоковая передача.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apiopenrouter.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

Установить max_tokens для контроля длины вывода. Если параметр не указан, значение по умолчанию составляет 2 048 токенов. Модель поддерживает до 16 000 токенов в одном запросе.

Потоковые ответы

Включите потоковую передачу, установив stream: true в тело запроса.

Подробности об использовании токенов появляются только в последнем чанке потока. Это позволяет обновлять UI в реальном времени, сохраняя точные данные для биллинга. Ошибки во время стриминга все равно сообщают об использовании для оплаченных токенов.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Грамотно обрабатывайте частичные ответы. Поток корректно завершается, когда модель завершает генерацию или достигает лимита контекста.

Вызов функций & JSON Mode

Использовать response_format: {type: "json_object"} для строгих выводов JSON.

Определите инструменты в tools массив и set tool_choice для принудительного вызова функций. Модель возвращает структурированные данные, подходящие для программной обработки. Это надёжно работает с нашими uncensored-весах.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

Сочетайте вызов функций с потоковой передачей для интерактивного опыта. Проверяйте JSON-вывод перед передачей его в логику вашего приложения.

Лимиты и квоты

Отслеживайте использование в рамках лимитов на ключ, чтобы избежать прерываний.

Каждый ключ позволяет выполнять 300 запросов в минуту и 8 одновременных запросов. Лимит размера тела запроса составляет 8 МБ. При превышении этих лимитов API возвращает статус-код 429. Ошибки аутентификации возвращают 401, а недостаток средств — 402.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

Окно контекста составляет 100 000 токенов в общей сложности. Ошибки не списывают кредиты. Отказы за незначительные нарушения контента также остаются бесплатными.

Частые вопросы

Чем API openrouter отличается от стандартного OpenAI?

Наш API использует одну uncensored-модель, оптимизированную для законного взрослого и творческого контента без отказов. Она сохраняет ту же структуру запросов и ответов, что и OpenAI, позволяя вам менять конечные точки без изменения кода.

Что произойдет, если у меня закончатся кредиты?

Запросы завершаются неудачно с ошибкой 402, когда ваш предоплаченный баланс равен нулю. Кредиты не истекают, поэтому вы можете пополнить баланс с помощью криптовалюты в любое время. Ошибки и отказы не потребляют ваш баланс.

Могу ли я использовать несколько ключей для разных проектов?

Каждый аккаунт поддерживает один активный ключ. Создание нового ключа автоматически делает предыдущий недействительным. Вы можете сгенерировать новый ключ мгновенно из панели управления, не теряя историю биллинга.

Получите ваш API-ключ

Зарегистрируйтесь, скопируйте токен и обновите базовый URL. Это вся конфигурация.

Получите свой ключ