Chat Completions
POST/api/v1/chat/completions — основной эндпоинт для текстовых моделей. Формат тот же, что у OpenAI Chat Completions, поэтому подойдёт любой клиент OpenAI.
Запрос
Обязательные поля — model (идентификатор из каталога) и messages:
{
"model": "openai/gpt-4o-mini",
"messages": [
{"role": "system", "content": "Отвечай кратко."},
{"role": "user", "content": "Столица Норвегии?"}
],
"temperature": 0.3,
"max_tokens": 200
}Ответ — объект chat.completion: текст в choices[0].message.content, расход и стоимость в usage.
Длина ответа
Если не указать max_tokens, ответ ограничивается 8192 токенами или меньшим пределом модели. На время запроса на балансе резервируется сумма на ответ такой длины, а после ответа списывается фактическая стоимость.
Если баланса или лимита ключа на такой резерв не хватает, предел уменьшается до покрываемого, но не ниже 256 токенов. Тогда ответ может оборваться раньше, с finish_reason: "length". Если же max_tokens указан явно и резерв не покрывается, запрос получит 402. max_tokens больше предела модели — 422 с кодом invalid_max_tokens.
Стриминг
С "stream": true ответ приходит событиями server-sent events, по фрагменту в строке data:, а последняя строка — data: [DONE]. Расход и стоимость — в последнем фрагменте, в поле usage. Формат событий и обработка обрывов — на странице «Стриминг».
Параметры
Какие поля поддерживает модель, указано на её странице в каталоге: temperature, top_p, max_tokens, stop, seed, response_format, tools, tool_choice, reasoning_effort и другие. Поля запроса передаются модели как есть. Общий справочник — на странице «Параметры запроса».
Изображения и файлы на входе
Модели, которые принимают изображения, получают их частью сообщения: {"type": "image_url", "image_url": {"url": "…"}}. Подойдёт и ссылка, и data-URL с base64. Если модель такой вход не принимает, запрос получит 422 с кодом unsupported_modality. PDF моделям без входа «файлы» передаются через плагин.