Эндпоинты моделей
Справочник LLM-эндпоинтов в форматах Anthropic, OpenAI и Gemini с заголовками Lovely Router, которые каждый из них принимает и возвращает.
Эндпоинты моделей — это собственные API вендоров, доступные по адресу https://lovelyrouter.com. Тела запросов и ответов следуют схеме вендора и передаются без изменений, поэтому на этой странице перечислены самые используемые параметры, а за остальным мы отсылаем к справочнику вендора. Поведение, общее для всех эндпоинтов, описано в разделе Как работает шлюз.
Каждый эндпоинт принимает API-ключ как Authorization: Bearer, x-api-key, x-goog-api-key или параметр запроса ?key=. Ошибки возвращаются в формате вызванного API; см. Ошибки.
Заголовки ответа
x-lovely-request-idstringId вызова, например req_6f1c0b9e2d4a47a1b8c3d5e7. Показан в Логах. Присутствует в успешных ответах, а также в ошибках ёмкости 429 и ошибках 502.
x-lovely-groupstringГруппа каналов, обслужившая вызов.
x-lovely-channelstringМетка канала группы в URL-кодировке.
x-lovely-queued-msintegerСколько миллисекунд запрос ждал ёмкости. Есть только если ему пришлось ждать.
retry-afterintegerСколько секунд подождать. Отправляется с ответами 429, вызванными лимитами ключа или занятой ёмкостью.
Создание сообщения#
/v1/messagesГенерирует ответ модели через Anthropic Messages API. Укажите stream, чтобы получать серверные события. Мышление, инструменты, изображения и кеш промпта работают так, как их описывает Anthropic. Руководство: Anthropic Messages.
Заголовки
x-api-keystringОбязательноВаш ключ Lovely Router. Authorization: Bearer тоже подходит.
anthropic-versionstringПо умолчанию 2023-06-01Передаётся модели.
anthropic-betastringПередаётся как есть.
x-lovely-groupstringГруппа каналов для этого запроса, например claude-value. Игнорируется, если ключ привязан к группе.
x-session-idstringСтабильный id диалога, по которому каждый ход направляется на канал, где хранится его кеш.
Параметры тела запроса
modelstringОбязательноId модели из GET /v1/models, например claude-sonnet-5.5. Другие варианты написания, например claude-sonnet-5-5, разрешаются в ту же модель.
messagesarrayОбязательноДиалог на данный момент, чередующиеся ходы user и assistant.
max_tokensintegerОбязательноМаксимальное число генерируемых токенов.
systemstring or arrayСистемный промпт. Текстовые блоки принимают cache_control.
streambooleanПо умолчанию falseПередавать ответ потоком серверных событий.
thinkingobjectНастройки расширенного мышления модели.
output_configobjectНастройки вывода, например effort и format.
toolsarrayИнструменты, которые может вызывать модель.
tool_choiceobjectКак модель выбирает инструменты.
metadataobjectМетаданные запроса.
curl https://lovelyrouter.com/v1/messages \
-H "x-api-key: $LOVELY_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5.5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello, Claude"}]
}'{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5-5",
"content": [
{"type": "text", "text": "Hello! How can I help you today?"}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 10,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 12
}
}Подсчёт токенов сообщения#
/v1/messages/count_tokensОценивает число входных токенов запроса к Messages, не выполняя его. Бесплатно и доступно при нулевом балансе. Подсчёт приблизительный: используйте его для проверки контекстного окна и планирования бюджета; плата за реальный вызов берётся из его usage. Руководство Anthropic по подсчёту токенов.
Заголовки
x-api-keystringОбязательноВаш ключ Lovely Router. Authorization: Bearer тоже подходит.
x-lovely-groupstringГруппа каналов, по которой проверяется модель. Игнорируется, если ключ привязан к группе.
Параметры тела запроса
modelstringОбязательноId модели, как для POST /v1/messages.
messagesarrayОбязательноСообщения для подсчёта.
systemstring or arrayСистемный промпт, который нужно учесть.
toolsarrayОпределения инструментов, которые нужно учесть.
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": "Hello, Claude"}]}'{
"input_tokens": 24
}Создание chat completion#
/v1/chat/completionsГенерирует ответ через OpenAI Chat Completions API. Этот формат принимает каждая модель из GET /v1/models. Потоковые запросы всегда получают stream_options.include_usage: true, поэтому последний фрагмент содержит usage. Руководство: OpenAI Chat Completions.
Заголовки
AuthorizationstringОбязательноBearer и ваш ключ Lovely Router.
openai-betastringПередаётся как есть.
x-lovely-groupstringГруппа каналов для этого запроса, например gpt-value. Игнорируется, если ключ привязан к группе.
x-session-idstringСтабильный id диалога, по которому каждый ход направляется на канал, где хранится его кеш.
Параметры тела запроса
modelstringОбязательноId модели из GET /v1/models, например gpt-6.1-sol.
messagesarrayОбязательноДиалог на данный момент: сообщения system или developer, user, assistant и tool.
streambooleanПо умолчанию falseПередавать ответ потоком серверных событий, завершающимся data: [DONE].
max_completion_tokensintegerВерхняя граница генерируемых токенов, включая токены рассуждений.
reasoning_effortstringНасколько много думает модель с рассуждениями. Значения зависят от модели.
toolsarrayФункции, которые может вызывать модель.
tool_choicestring or objectКак модель выбирает инструменты.
response_formatobjectЗапросить вывод в JSON или по JSON Schema.
prompt_cache_keystringПовышает долю попаданий в кеш. Также используется как id диалога для маршрутизации.
userstringId конечного пользователя. Используется как id диалога для маршрутизации, если не отправлено ничего более конкретного.
curl https://lovelyrouter.com/v1/chat/completions \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [{"role": "user", "content": "Hello!"}]
}'{
"id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
"object": "chat.completion",
"created": 1791700000,
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "Hello! How can I help?"},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21,
"prompt_tokens_details": {"cached_tokens": 0},
"completion_tokens_details": {"reasoning_tokens": 0}
}
}Создание response#
/v1/responsesГенерирует ответ через OpenAI Responses API — API, который использует Codex CLI. Доступен только для моделей GPT; другие модели возвращают 404. Ответы не хранятся: отправляйте весь диалог в input. Руководство: Responses API.
Заголовки
AuthorizationstringОбязательноBearer и ваш ключ Lovely Router.
openai-betastringПередаётся как есть.
x-lovely-groupstringГруппа каналов для этого запроса, например gpt-value. Игнорируется, если ключ привязан к группе.
x-session-idstringСтабильный id диалога, по которому каждый ход направляется на канал, где хранится его кеш.
Параметры тела запроса
modelstringОбязательноId модели GPT из GET /v1/models, например gpt-6.1-sol.
inputstring or arrayОбязательноПромпт или диалог в виде списка входных элементов.
instructionsstringСистемные инструкции. Ответ повторяет то, что вы отправили, или null.
streambooleanПо умолчанию falseПередавать типизированные серверные события, завершающиеся response.completed (с usage).
max_output_tokensintegerВерхняя граница генерируемых токенов, включая токены рассуждений.
reasoningobjectНастройки рассуждений, например effort. Значения зависят от модели.
toolsarrayФункции и другие инструменты, которые может вызывать модель.
storebooleanОтправляйте false: ответы не сохраняются для последующего получения.
prompt_cache_keystringПовышает долю попаданий в кеш. Также используется как id диалога для маршрутизации.
curl https://lovelyrouter.com/v1/responses \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": "Hello!",
"store": false
}'Генерация контента#
/v1beta/models/{model}:generateContentГенерирует ответ через Gemini API. Руководство: Gemini.
Параметры пути
modelstringОбязательноId модели, например gemini-3.1-pro. Варианты написания Google, например gemini-3.1-pro-preview, разрешаются в ту же модель.
Заголовки
x-goog-api-keystringОбязательноВаш ключ Lovely Router. Authorization: Bearer или параметр запроса ?key= тоже подходят.
x-lovely-groupstringГруппа каналов для этого запроса, например gemini-value. Игнорируется, если ключ привязан к группе.
x-session-idstringСтабильный id диалога, по которому каждый ход направляется на канал, где хранится его кеш.
Параметры тела запроса
contentsarrayОбязательноДиалог на данный момент: ходы user и model, состоящие из parts.
systemInstructionobjectСистемная инструкция в виде объекта контента с текстовыми частями.
generationConfigobjectНастройки вывода: maxOutputTokens, temperature, responseMimeType, thinkingConfig и другие.
toolsarrayОбъявления функций и другие инструменты.
toolConfigobjectКак модель выбирает функции.
safetySettingsarrayПороги безопасности по категориям.
curl "https://lovelyrouter.com/v1beta/models/gemini-3.1-pro:generateContent" \
-H "x-goog-api-key: $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Hello!"}]}]}'{
"candidates": [
{
"content": {"role": "model", "parts": [{"text": "Hello! How can I help?"}]},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 3,
"candidatesTokenCount": 7,
"thoughtsTokenCount": 96,
"totalTokenCount": 106
},
"responseId": "mFHoaNC1Lo3HqtsP"
}Потоковая генерация контента#
/v1beta/models/{model}:streamGenerateContentТот же запрос, что и generateContent, но ответ приходит потоком. Добавьте alt=sse, чтобы получать серверные события, по одному частичному ответу на событие; SDK делают это за вас. Без него ответ — единый потоковый JSON-массив. См. Потоковая передача.
Параметры запроса
altstringЗадайте sse для серверных событий. Рекомендуется.
Параметр пути, заголовки и тело такие же, как для Генерации контента.
curl -N "https://lovelyrouter.com/v1beta/models/gemini-3-flash:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Count to three."}]}]}'data: {"candidates":[{"content":{"role":"model","parts":[{"text":"One, two,"}]}}],"usageMetadata":{"promptTokenCount":5,"candidatesTokenCount":4,"totalTokenCount":9}}
data: {"candidates":[{"content":{"role":"model","parts":[{"text":" three."}]},"finishReason":"STOP"}],"usageMetadata":{"promptTokenCount":5,"candidatesTokenCount":7,"totalTokenCount":12}}Подсчёт токенов Gemini#
/v1beta/models/{model}:countTokensОценивает число токенов в contents, не запуская модель. Бесплатно и доступно при нулевом балансе. Подсчёт приблизительный. Справочник Gemini.
Параметры тела запроса
contentsarrayОбязательноКонтент для подсчёта, в той же форме, что и для generateContent.
Параметр пути и заголовки такие же, как для Генерации контента.
curl "https://lovelyrouter.com/v1beta/models/gemini-3.1-pro:countTokens" \
-H "x-goog-api-key: $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Hello, Gemini"}]}]}'{
"totalTokens": 18
}Список моделей#
/v1/modelsВыводит все модели, которые можно вызвать прямо сейчас, с размером контекста, прайс-ценами и группами каналов, которые их обслуживают. API-ключ не нужен. Формат совместим с models.list() в SDK OpenAI и Anthropic. Значения полей описаны в разделе Модели и цены.
Поля ответа
dataarrayПо объекту на модель.
has_morebooleanВсегда false: весь список возвращается сразу.
curl https://lovelyrouter.com/v1/models{
"object": "list",
"data": [
{
"id": "claude-sonnet-5.5",
"object": "model",
"type": "model",
"display_name": "Claude Sonnet 5.5",
"created": 1700000000,
"created_at": "2025-01-01T00:00:00Z",
"owned_by": "Anthropic",
"context_length": 1000000,
"pricing": {
"input": 2,
"output": 10,
"cache_read": 0.1,
"cache_write": 2.5,
"unit": "USD per 1M tokens"
},
"groups": ["claude-value"]
}
],
"has_more": false,
"first_id": "claude-fable-5.1",
"last_id": "gpt-5.6-luna"
}Список моделей в формате Gemini#
/v1beta/modelsВыводит модели, доступные через эндпоинты Gemini, в формате Gemini API. API-ключ не нужен. SDK Google Gen AI вызывают его из models.list(). Цены есть только в GET /v1/models.
curl https://lovelyrouter.com/v1beta/models{
"models": [
{
"name": "models/gemini-3.1-pro",
"displayName": "Gemini 3.1 Pro",
"inputTokenLimit": 1048576,
"supportedGenerationMethods": ["generateContent", "streamGenerateContent", "countTokens"]
}
]
}