Документация API Hop
Мультимодальные ответы OpenAI
API Responses, совместимый с OpenAI. Этот эндпоинт использует `input` в стиле OpenAI и поддерживает текст, публичные URL изображений, ввод PDF, вызовы инструментов, параметры рассуждений и потоковой передачи.
https://api.apihop.ai/openai/responsesAPI Responses, совместимый с OpenAI. Этот эндпоинт использует input в стиле OpenAI и поддерживает текст, публичные URL изображений, ввод PDF, вызовы инструментов, параметры рассуждений и потоковой передачи.
POST https://api.apihop.ai/openai/responsesАутентификация
Все запросы требуют аутентификации с токеном Bearer.
Authorization: Bearer YOUR_API_KEYТело запроса
modelstringобязательноПо умолчанию: gpt-5.4Текущие активные модели с поддержкой Responses:
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astra
Модели, видимые текущему ключу API, смотрите в Каталоге моделей.
inputstring | object[]Входное содержимое. Обязательно, если не передан непустой previous_response_id. Пропуск обоих полей или неверный тип ввода возвращает 400 до оплаты.
Поддерживаемые формы:
- Строка, эквивалентная одному текстовому вводу
user. - Массив элементов ввода для истории беседы, мультимодального ввода и результатов вызовов инструментов.
Каждый объект массива ввода может содержать следующие поля:
typestringТип элемента ввода.
Распространённые значения:
message: сообщение ввода.function_call_output: результат вызова инструмента-функции.
rolestringРоль при type=message.
Распространённые значения:
developersystemuserassistant
contentstring | object[]Содержимое сообщения.
Для мультимодальных запросов используйте массив блоков содержимого. Блоки поддерживают:
typestringТип блока содержимого.
Сейчас поддерживаются:
input_textinput_imageinput_file
textstringТекстовое содержимое при type=input_text.
image_urlstringПубличный URL изображения при type=input_image.
Поддерживаются только общедоступные URL изображений http:// или https://. URL данных Base64, например data:image/...;base64,..., не поддерживаются.
detailstringПо умолчанию: autoУровень детализации изображения при type=input_image.
Распространённые значения:
autolowhigh
file_datastringURL данных содержимого файла при type=input_file. PDF могут использовать data:application/pdf;base64,....
filenamestringИмя файла при type=input_file.
instructionsstringСистемные инструкции или инструкции разработчика, вставляемые в контекст модели.
max_output_tokensintegerНеобязательный максимум токенов вывода как положительное целое число. Пропустите поле для значения по умолчанию провайдера выбранной модели. В зависимости от модели бюджет может включать токены рассуждений и итоговый текст. Малый бюджет может обрезать ответ или исчерпаться до итогового текста; увеличение может повысить стоимость.
streambooleanПо умолчанию: falseНужна ли потоковая передача ответа.
false: возвращает один полный ответtrue: возвращает события SSE в стиле OpenAI Responses
temperaturenumberПо умолчанию: 1.0Температура выборки, обычно от 0 до 2.
top_pnumberПо умолчанию: 1.0Параметр ядерной выборки, обычно от 0 до 1.
textobjectКонфигурация текстового вывода.
text.formatobjectКонфигурация формата текста, например { "type": "text" } или схема JSON.
text.verbositystringПодробность вывода, например low, medium или high. Поддержка зависит от выбранной модели.
toolsobject[]Определения инструментов. Доступность зависит от выбранной модели и доступных функций.
tool_choicestring | objectПолитика выбора инструментов.
parallel_tool_callsbooleanРазрешены ли параллельные вызовы инструментов.
reasoningobjectПараметры, связанные с рассуждениями.
includestring[]Дополнительные поля для включения в ответ.
prompt_cache_keystringКлюч кэша запросов для повторного использования кэша.
prompt_cache_retentionstringПолитика хранения кэша запросов. Поддерживаемые значения зависят от выбранной модели и доступных функций.
safety_identifierstringСтабильный идентификатор конечного пользователя для контроля безопасности.
storebooleanМожно ли сохранять состояние ответа.
Различия параметров моделей
- Нативная совместимая с OpenAI передача Responses сохраняет
top_pв запросе провайдеру; проверка и поведение выборки зависят от выбранной модели и провайдера. Проверки 2026-09-26 принялиtop_p: 0.9дляgpt-5.5,gpt-5.6-solиgpt-5.6-terra. Принятие и пересылка не доказывают эффект выборки и не гарантируют поддержку других значений, моделей или последующих запросов. Начинайте с минимального запроса. - Поддержка на этой странице относится только к обычному эндпоинту
/openai/responses. Она не означает поддержку той же моделью/openai/responses/compact, WebSocket илиprevious_response_idс сохранением состояния. - У пяти перечисленных выше моделей GPT сейчас нет проверенного канала Compact. Если явно включённый канал отсутствует, запросы Compact отклоняются до оплаты. Обычные Responses и Responses WebSocket остаются доступны.
Примеры запросов
В примерах ниже передаётся input. Продолжение может пропустить input, если передан действительный previous_response_id и выбранный канал поддерживает продолжение с состоянием. ID ответа не включает эту возможность на неподдерживаемом канале. Результаты инструментов остаются допустимыми элементами ввода, включая function_call_output.
Текст
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}Параметры в стиле Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}Понимание изображений
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "What is in this image?"
},
{
"type": "input_image",
"image_url": "https://example.com/cat.png",
"detail": "high"
}
]
}
]
}Ввод файла
Для отправки PDF используйте file_data вместе с filename. file_data должен быть полным URL данных.
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Summarize the key points in this PDF."
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "report.pdf"
}
]
}
]
}Ввод изображения и файла
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Give three conclusions based on the image and attachment."
},
{
"type": "input_image",
"image_url": "https://example.com/chart.png",
"detail": "high"
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "notes.pdf"
}
]
}
]
}Потоковый вывод
{
"model": "gpt-5.4",
"stream": true,
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Explain this diagram step by step."
},
{
"type": "input_image",
"image_url": "https://example.com/diagram.png"
}
]
}
]
}Ответ
Непотоковые ответы следуют стилю OpenAI Responses. Фактические поля могут зависеть от возможностей выбранной модели.
idstringУникальный идентификатор ответа.
objectstringТип объекта ответа, обычно response.
created_atintegerВременная метка создания.
modelstringФактически использованная модель.
outputobject[]Список элементов вывода. Типичные элементы — message, function_call и вывод, связанный с инструментами.
usageobjectСтатистика использования токенов, например input_tokens, output_tokens и total_tokens.
Пример успешного ответа
{
"id": "resp_123",
"object": "response",
"created_at": 1766534400,
"model": "gpt-5.4",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"text": "The image shows a cat, and the attachment is a document about pet care."
}
]
}
],
"usage": {
"input_tokens": 128,
"output_tokens": 42,
"total_tokens": 170
}
}Потоковый ответ
При stream=true эндпоинт возвращает Server-Sent Events.
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}Читайте события до response.completed или закрытия соединения.
Ответ с ошибкой
Полный справочник кодов, различия протоколов и этапы диагностики приведены в разделе Коды ошибок и устранение неполадок.
HTTP-ошибки, сформированные платформой, используют следующие плоские поля вместо оболочки error. Некоторые ошибки провайдера могут сохранять исходную структуру; ошибки уже начатого потока SSE не следуют этому примеру HTTP-ответа.
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}Примечания
- Эндпоинт
Responsesиспользуетinput, а неmessages. Если клиент отправляет толькоmessages, используйте/openai/v1/chat/completions. - Ввод изображений использует
input_image;image_urlдолжен быть публичным URLhttp://илиhttps://. URL данных Base64 для изображений не поддерживаются. - Ввод файлов использует
input_file. Для PDF используйтеfile_dataиfilename;file_dataдолжен быть полным URLdata:application/pdf;base64,.... - Аудиоввод/вывод, инструменты генерации изображений, поиск файлов и другие расширенные возможности зависят от выбранной модели и доступных функций.
- Перечисленные поля составляют текущий публичный контракт запросов Responses; не считайте неперечисленные поля доступными.
/openai/responses— рекомендуемый публичный путь./v1/responsesследует тому же публичному контракту запросов и ответов./compat/v1/responsesследует тому же публичному контракту запросов и ответов./openai/v1/responsesследует тому же публичному контракту запросов и ответов.