/v1/chat/completions, /v1/responses и /v1/messages: какой endpoint AI API использовать
/v1/chat/completions vs /v1/responses vs /v1/messages: Какой endpoint AI API выбрать?
Распространённая проблема в AI API шлюзах — это не API ключ, не модель и не SDK. Это endpoint.
Пользователь выбирает существующую модель, но отправляет запрос на неправильный endpoint. В результате:
модель недоступна;
endpoint не поддерживается;
неверное тело запроса;
tool calling не работает;
несовпадение формата streaming;
Claude модель работает в одном инструменте, но падает в другом.
Это руководство объясняет различия между тремя семействами endpoint:
/v1/chat/completions /v1/responses /v1/messages
Краткая версия:
EndpointРодная экосистемаЛучше всего дляСтиль запроса/v1/chat/completionsOpenAI-совместимый legacy/текущий chatБольшинство приложений, SDKs, LiteLLM, Cursor-style инструменты, простой chatmessages: [{role, content}]/v1/responsesНовый OpenAI Responses APITool use, multimodal, reasoning items, новые OpenAI-style агентыinput, tools, structured response items/v1/messagesAnthropic Claude APIClaude-native SDKs и Claude-style приложенияmessages плюс top-level system, Anthropic schema
Если ваш клиент говорит "OpenAI-compatible", начните с:
https://crazyrouter.com/v1/chat/completions
или установите base URL на:
https://crazyrouter.com/v1
и позвольте SDK добавить /chat/completions.
Если ваш инструмент специально требует OpenAI Responses API, используйте /v1/responses.
Если ваш инструмент использует Anthropic-native SDK и ожидает Claude Messages API, используйте /v1/messages.
Самая распространённая ошибка
Самая распространённая ошибка — смешивание семейства моделей и семейства endpoint.
Например, Claude модель может быть доступна через OpenAI-совместимый шлюз, но это не означает автоматически, что тело вашего запроса должно использовать Anthropic-native /v1/messages schema.
Аналогично, инструмент, который отправляет Anthropic-native запросы на /v1/messages, не может быть исправлен только изменением имени модели. Endpoint и тело запроса должны совпадать.
Думайте об этом так:
имя модели + endpoint + schema запроса должны совпадать
Если один из трёх неправильный, модель может выглядеть недоступной, даже если сама модель работает нормально.
Что такое /v1/chat/completions
/v1/chat/completions — это классический OpenAI-совместимый chat endpoint.
Типичный запрос выглядит так:
curl https://crazyrouter.com/v1/chat/completions \ -H "Authorization: Bearer $CRAZYROUTER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.5", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Explain API endpoints in one paragraph."} ] }'
Используйте /v1/chat/completions когда:
приложение говорит, что поддерживает OpenAI-совместимый API;
конфиг запрашивает OPENAI_BASE_URL или base_url;
тело запроса использует messages с role и content;
вы используете режим совместимости обычного OpenAI SDK;
вы настраиваете инструменты типа Cursor-style клиентов, LiteLLM-style роутеров, FastGPT-style приложений или многих chat UI.
Для большинства пользователей это самый безопасный endpoint по умолчанию.
Что такое /v1/responses
/v1/responses — это новый OpenAI Responses API endpoint.
Он разработан вокруг более общего объекта response и может представлять:
текстовый вывод;
tool calls;
multimodal ввод;
reasoning items;
structured output;
agent-подобные workflows.
Упрощённый запрос выглядит так:
curl https://crazyrouter.com/v1/responses \ -H "Authorization: Bearer $CRAZYROUTER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.5", "input": "Explain the difference between chat completions and responses." }'
Используйте /v1/responses когда:
инструмент явно говорит, что использует OpenAI Responses API;
Read the full guide














