Lovely RouterДокументация
Получить ключ
Начать

Аутентификация

Аутентифицируйте каждый запрос API-ключом Lovely Router, переданным в том заголовке, который уже использует ваш SDK.

Каждому запросу, который расходует ваш баланс, нужен API-ключ. Один ключ работает во всём API: модели Claude, GPT и Gemini, инструменты данных, браузерный агент и MCP-сервер.

Получение API-ключа#

Создайте ключ на странице API-ключи в панели. Ключ выглядит как lr-, за которым следуют 40 букв и цифр. Он показывается один раз, при создании. Lovely Router хранит только хеш ключа, поэтому потерянный ключ восстановить нельзя: отзовите его и создайте новый.

Храните ключ в переменной окружения. Все примеры в этой документации читают его из $LOVELY_API_KEY.

Shell
export LOVELY_API_KEY="lr-..."

Как ограничить расходы ключа или то, что он может вызывать, описано в разделе API-ключи.

Передача ключа#

Lovely Router принимает ключ в любом из мест, которые используют API поставщиков. Все четыре способа работают на каждом эндпоинте, поэтому оставьте то, что ваш SDK или инструмент отправляет по умолчанию.

ГдеПримерКто отправляет
Заголовок AuthorizationAuthorization: Bearer lr-...OpenAI SDK, Claude Code (ANTHROPIC_AUTH_TOKEN), инструменты данных, браузерный агент, MCP-клиенты
Заголовок x-api-keyx-api-key: lr-...Anthropic SDK
Заголовок x-goog-api-keyx-goog-api-key: lr-...Google Gen AI SDK, Gemini CLI
Параметр запроса key?key=lr-...REST-примеры Gemini

Если в запросе указано несколько форм, побеждает первая найденная в таком порядке: Authorization: Bearer, x-api-key, x-goog-api-key, ?key=.

Предпочитайте заголовки

Ключ в строке запроса попадает в логи прокси, историю оболочки и историю браузера. Используйте ?key= только для инструментов, которые не умеют отправлять заголовок.

Проверка ключа#

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

curl https://lovelyrouter.com/v1/messages/count_tokens \
  -H "x-api-key: $LOVELY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5.5",
    "messages": [{"role": "user", "content": "ping"}]
  }'

Эндпоинты без ключа#

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

ЭндпоинтЧто возвращает
GET /v1/modelsВсе доступные модели с размером контекста, ценами и группами каналов
GET /v1beta/modelsТот же список в формате Gemini
GET /v1/toolsКаталог инструментов данных
GET /v1/tools/{id}Схему входных данных, пример входных данных и цену одного инструмента
POST /v1/tools/discoverИнструменты, подходящие под поисковый запрос по ключевым словам
POST /v1/tools/suggestПошаговый план использования инструментов для задачи. Без ключа все анонимные клиенты делят 100 запросов в минуту; с ключом вы получаете 100 запросов в минуту на этот ключ.

Для всего остального нужен ключ: запросы к моделям (включая подсчёт токенов), запуски инструментов, все эндпоинты /v1/browser и запуск инструментов через MCP.

Ошибки аутентификации#

Если ключ отсутствует, неизвестен, отозван или просрочен, возвращается 401. Тело ответа использует формат того API, которое вы вызывали.

ПричинаСообщение
В запросе к модели нет ключаMissing API key
Ключ неизвестен или отозван, либо аккаунт заблокированInvalid or revoked API key
Срок действия ключа истёкThis API key has expired
Нет ключа, либо ключ неизвестен или отозван, на /v1/tools или /v1/browserMissing, invalid or revoked API key
{"type": "error", "error": {"type": "authentication_error", "message": "Invalid or revoked API key"}}

Действующий ключ всё равно может получить отказ из-за того, что ему разрешено: 403 для модели вне его списка разрешённых, 402, когда исчерпан лимит расходов, 429 при достижении лимита запросов. См. Что происходит при достижении лимита и Ошибки.

Безопасное хранение ключей#

  • Держите ключи на сервере. Никогда не помещайте ключ в веб-страницу, мобильное приложение или что-либо ещё, что вы передаёте пользователям. API принимает запросы с любого origin, поэтому ключ во фронтенд-коде может скопировать и потратить любой, кто его откроет.
  • Загружайте ключи из окружения или менеджера секретов. Не коммитьте их. Добавьте файлы .env в .gitignore.
  • Используйте отдельный ключ для каждого приложения и окружения. Тогда утёкший ключ стейджинга не затронет продакшен, а Логи покажут, какой ключ отправил каждый запрос.
  • Ограничивайте возможности каждого ключа. Задайте лимит расходов, список разрешённых моделей и срок действия для ключей, которыми пользуются агенты, CI-задачи или другие люди. См. API-ключи.
  • Регулярно меняйте ключи, а также сразу, когда уходит человек, у которого был доступ. См. Замена ключа.

Если ключ утёк

Немедленно отзовите его на странице API-ключи. Отзыв действует со следующего запроса. Затем создайте замену и проверьте Логи на предмет трафика, которого вы не узнаёте.