К содержимому
Base URLМодель в примерах
APIresponses.md

Responses

POST/v1/responses

Responses API без состояния на сервере: ничего не храним. Историю присылайте целиком в каждом запросе, вместе с элементами output прошлых ответов. Так работает Codex. Принимаем только поля из списка: на другое поле ответ 400 с его именем в param. Поле со значением null пропускаем.

modelstringобязательно
Модель с kind chat, например openai/gpt-6.1-sol
inputstring | arrayобязательно
Строка или массив элементов: message (type можно не указывать), function_call, function_call_output, custom_tool_call, custom_tool_call_output, reasoning. Части content: текст и изображения input_image
instructionsstring
Системная инструкция
max_output_tokensinteger
Лимит ответа, от 1 до максимума модели. Без него модель отвечает полностью
streamboolean
true: ответ событиями SSE, см. «Стриминг»
toolsarray
Инструменты типа function и custom, см. «Function calling»
tool_choicestring | object
Вызывать ли инструмент и какой, см. «Function calling»
includearray
["reasoning.encrypted_content"]: рассуждения приходят зашифрованными в элементе reasoning. Верните его в input следующего хода, и модель продолжит рассуждать без хранения на сервере. Элементы reasoning без encrypted_content отбрасываем
reasoningи другие
Передаём модели как есть: reasoning, text, temperature, top_p, top_logprobs, truncation, max_tool_calls, parallel_tool_calls, stream_options, service_tier (auto или default), metadata, user, safety_identifier
1curl https://api.polyapi.ru/v1/responses \
2 -H "Authorization: Bearer $POLYAPI_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model": "openai/gpt-6.1-sol",
6 "input": "Привет"
7 }'
{
"id": "resp_68f2c0a91b7c4e5d",
"object": "response",
"status": "completed",
"model": "openai/gpt-6.1-sol",
"output": [
{
"type": "message",
"id": "msg_68f2c0a93d1e",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Привет! Чем помочь?",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 9,
"output_tokens": 7,
"total_tokens": 16
}
}

Изображения передаются частями input_image со ссылкой или data URL в image_url, в сообщениях user и в выводе инструментов. Остальное как в Chat Completions: изображение в запросе к модели, которая их не понимает, даёт 400. file_id не принимаем: файлы не храним.

Текст ответа лежит в output: элемент message, часть output_text. SDK собирает его в output_text.

Не поддерживаем, ответ 400: previous_response_id, conversation, background: true, элементы item_reference, встроенные инструменты (file_search, code_interpreter, image_generation, mcp и другие), файлы и аудио во входе. web_search убираем из tools без ошибки: модель отвечает без поиска. store всегда отправляем как false. prompt_cache_key заменяем своим ключом разговора, как в Chat Completions.