Перейти к содержимому

POST /chat/completions

Создание chat completion, с потоком или без. Тело запроса, ответ и коды ответов.

Открыть .md
POST/api/v1/chat/completionsAPI-ключ

Создает chat completion в формате OpenAI. Полный список полей тела и что делает каждое — в разделе Параметры. Машиночитаемый контракт: openapi.yaml.

Тело запроса

ПолеТип
modelstringID модели. Обязательно, если не указан models.
modelsstring[]Резервные модели, которые пробуются после model.
messagesobject[]Обязательно. Диалог.
streambooleanServer-sent events вместо одного JSON.
max_tokens, max_completion_tokensintegerЛимит ответа, от 1 до 65536; 4096, если не указан.
tools, tool_choiceВызов инструментов.
response_formatobjectРежим JSON или JSON Schema.
reasoningobjectУровень и бюджет рассуждений.
providerobjectonly, ignore, order, allow_fallbacks, zdr, data_collection.
любое другое полеПередается провайдеру.

Ответ

Без stream: объект chat.completion.

ПолеТип
idstringID генерации, gen-<uuid>.
objectstringchat.completion
createdintegerВремя в формате Unix.
modelstringМодель, которая ответила.
providerstringПровайдер, на котором работает модель (глобальный регион), или Russia.
choices[].messageobjectrole, content, tool_calls, reasoning.
choices[].finish_reasonstringstop, length, tool_calls, content_filter или error.
choices[].native_finish_reasonstringСобственное значение провайдера.
usageobjectprompt_tokens, completion_tokens, total_tokens, cost (PnP), prompt_tokens_details.cached_tokens, completion_tokens_details.reasoning_tokens.

С "stream": true: text/event-stream из событий chat.completion.chunk, комментарии keep-alive, финальный chunk с usage, затем data: [DONE]. Подробнее — в разделе Потоковая передача.

Заголовки

Заголовок
X-Request-IdВ каждом ответе.
X-Generation-IdВ потоковых ответах; в ответе без потока ID находится в id.

Коды ответов

200, 400, 401, 402, 403, 409, 413, 422, 429, 502, 503, 504: см. Ошибки.

Пример

curl https://router.nodul.ru/api/v1/chat/completions \
  -H "Authorization: Bearer $NODUL_ROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "google/gemma-3-4b-it", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 100}'

Попробуйте запросы со своим ключом в песочнице на странице API вашего пространства в кабинете.