Быстрый старт для пользователей OpenRouter
Мигрируйте вызовы API OpenRouter на наш эндпоинт без цензуры за несколько минут, изменив базовый URL и API-ключ. Это руководство охватывает основные интеграции для генерации текста, потоковой передачи и структурированных ответов.
Установка и настройка
Наш API полностью совместим со стандартными SDK OpenAI. Чтобы перейти с OpenRouter, вам нужно обновить только два параметра конфигурации: base_url и api_key. Укажите клиенту адрес https://api.openrouterapi.cc/v1 и используйте ключ, сгенерированный в нашем личном кабинете. Дополнительные заголовки или сложная логика маршрутизации не требуются. Идентификатор модели для запроса — uncensored.
Убедитесь, что версия вашего SDK поддерживает параметр base_url. Если вы используете клиент HTTP напрямую, просто обновите целевой URL. Эта настройка гарантирует, что ваш существующий код клиента будет работать без изменений, если вы отправляете только запросы на завершение текста.
Аутентификация
Аутентификация осуществляется через стандартный заголовок Authorization. Передайте ваш API-ключ в качестве токена Bearer. Если ключ недействителен или истек, API возвращает ошибку 401. В отличие от некоторых провайдеров, мы не берем плату за неудачные запросы; ошибки и отказы бесплатны, поэтому вы можете протестировать аутентификацию, не расходуя баланс.
Каждая учетная запись поддерживает один активный ключ одновременно. Генерация нового ключа немедленно делает предыдущий недействительным. Храните ключ в безопасности и меняйте его, если подозреваете его компрометацию. Ключ отображается сразу после регистрации, поэтому скопируйте его, прежде чем покинуть страницу.
Базовое завершение чата
Основная функциональность — эндпоинт POST /v1/chat/completions. Отправьте ваш промпт в виде списка сообщений и получите текстовый ответ. Модель настроена на ответы без отказов по содержанию для законного использования взрослыми, что делает ее подходящей для творческих, спорных тем или исследований в области безопасности.
Установите поле model в значение uncensored. Вы можете управлять поведением с помощью параметров, таких как temperature, top_p и stop. API поддерживает JSON-режим через response_format и вызов функций через tools. Все запросы обрабатываются асинхронно, и вы получаете полное завершение, когда модель закончит работу.
Потоковые ответы
Включите потоковую передачу, установив stream: true в запросе. API возвращает события, отправляемые сервером (SSE), с частичными ответами. Вы получаете фрагменты текста по мере их генерации, что позволяет отображать их в реальном времени в вашем приложении.
Информация об использовании токенов предоставляется в последнем фрагменте потока. Это позволяет точно отслеживать расходы, не разбирая каждый отдельный токен. Потоковая передача идеальна для интерфейсов чата, где важна задержка. Убедитесь, что ваш клиент правильно обрабатывает SSE и закрывает соединение, когда поток заканчивается.
Вызов функций
API поддерживает вызов функций через параметр tools. Определите ваши функции в массиве tools и установите tool_choice в значение auto или конкретное имя функции. Модель вернет структурированные аргументы в формате JSON, если будет вызвана функция.
Эта функция полезна для интеграции LLM с внешними API или базами данных. Убедитесь, что определения ваших функций точны, так как модель полагается на них для генерации корректных аргументов. API не выполняет функции; вы должны обработать логику выполнения в коде вашего приложения.
JSON-режим
Для структурированных выходов используйте response_format: {"type": "json_object"}. Это заставляет модель возвращать действительный JSON, что необходимо для обработки данных в последующих приложениях. JSON-режим часто более надежен, чем вызов функций, для простых задач извлечения данных.
Убедитесь, что ваши промпты четко указывают модели вернуть JSON. Ответы с недействительным JSON могут возникнуть, если промпт неоднозначен. JSON-режим поддерживается как в стандартном, так и в потоковом режимах. Используйте его, когда вам нужны предсказуемые, машиночитаемые выходные данные.
Лимиты, ошибки и контекст
Контекстное окно составляет 100 000 токенов для промпта и завершения вместе. Максимальный вывод — 32 000 токенов на запрос (2 048, если max_tokens не установлен). Лимиты запросов — 300 запросов в минуту и 8 одновременных запросов на ключ. Тела запросов ограничены 8 МБ.
Ошибки возвращают стандартные коды HTTP: 401 для недействительных ключей, 402 для недостатка средств и 429 для лимитов запросов. Баланс предоплаченный, поэтому ошибка 402 означает, что вам нужно пополнить его. Ошибки и отказы бесплатны, поэтому вы можете повторить попытку без затрат. Жёсткое ограничение контента блокирует сексуальный контент с участием несовершеннолетних.
cURL
curl https://api.openrouterapi.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterapi.cc/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouterapi.cc/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);Потоковая передача
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)Характеристики API
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| ID модели | uncensored |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouterapi.cc/v1 |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| JSON-режим | response_format: {"type": "json_object"} |
| Лимит запросов | 300 запросов в минуту на ключ |
| Параллельные запросы | до 8 одновременно на ключ |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Размер запроса | до 8 МБ |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Бонус | +5% от $50, +10% от $100 |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Ключи | один активный ключ на аккаунт; новый заменяет старый |
| Вход | Google или e-mail и пароль |
| Контент | контент для взрослых разрешён; сексуальный контент с несовершеннолетними запрещён |
Коды ошибок
Ошибки приходят в JSON с постоянным type; неудачные и отклонённые запросы не оплачиваются.
| Код | Тип | Что значит |
|---|---|---|
400 | bad_request | неверный JSON, пустые сообщения, неверный параметр или превышено окно контекста |
401 | missing_key · invalid_key · key_revoked | нет ключа, ключ неверный или заменён новым |
402 | no_credit | баланс пуст — пополните, работа продолжится сразу |
403 | content_blocked | сексуальный контент с несовершеннолетними — отказ, без оплаты |
404 | not_found | неизвестный эндпоинт |
413 | request_too_large | тело запроса больше 8 МБ |
429 | rate_limited · concurrency | больше 300/мин или 8 параллельно — подождите и повторите |
503 | upstream_busy | модель занята — повторите через несколько секунд |
Вопросы и ответы
Это официальный API OpenRouter?
Нет, это независимый сервис. Мы предлагаем единственную модель без цензуры, совместимую со структурой базового URL OpenRouter. Мы не предоставляем агрегированные модели OpenRouter или логику маршрутизации.
Как оплатить API?
Оплата принимается только криптовалютой: USDT (TRC20) или USDC (Base). Вы можете пополнить баланс на любую целую сумму от $10 до $500. Кредитные карты и PayPal не принимаются.
Используются ли промпты для обучения?
Нет, ваши промпты не используются для обучения. Для вашей учетной записи требуется только адрес электронной почты, и мы не храним и не используем ваши данные для улучшения модели.
Ваш ключ — в одной форме от вас
Создайте учетную запись, скопируйте ключ, измените базовый URL. Вот и вся настройка.