API Hop

Документация

Документация API Hop

Мультимодальные ответы OpenAI

API Responses, совместимый с OpenAI. Этот эндпоинт использует `input` в стиле OpenAI и поддерживает текст, публичные URL изображений, ввод PDF, вызовы инструментов, параметры рассуждений и потоковой передачи.

POSThttps://api.apihop.ai/openai/responses

API Responses, совместимый с OpenAI. Этот эндпоинт использует input в стиле OpenAI и поддерживает текст, публичные URL изображений, ввод PDF, вызовы инструментов, параметры рассуждений и потоковой передачи.

text
POST https://api.apihop.ai/openai/responses

Аутентификация

Все запросы требуют аутентификации с токеном Bearer.

http
Authorization: Bearer YOUR_API_KEY

Тело запроса

modelstringобязательноПо умолчанию: gpt-5.4

Текущие активные модели с поддержкой Responses:

  • gpt-5.4
  • gpt-5.5
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-6-astra

Модели, видимые текущему ключу API, смотрите в Каталоге моделей.

inputstring | object[]

Входное содержимое. Обязательно, если не передан непустой previous_response_id. Пропуск обоих полей или неверный тип ввода возвращает 400 до оплаты.

Поддерживаемые формы:

  • Строка, эквивалентная одному текстовому вводу user.
  • Массив элементов ввода для истории беседы, мультимодального ввода и результатов вызовов инструментов.

Каждый объект массива ввода может содержать следующие поля:

typestring

Тип элемента ввода.

Распространённые значения:

  • message: сообщение ввода.
  • function_call_output: результат вызова инструмента-функции.
rolestring

Роль при type=message.

Распространённые значения:

  • developer
  • system
  • user
  • assistant
contentstring | object[]

Содержимое сообщения.

Для мультимодальных запросов используйте массив блоков содержимого. Блоки поддерживают:

typestring

Тип блока содержимого.

Сейчас поддерживаются:

  • input_text
  • input_image
  • input_file
textstring

Текстовое содержимое при type=input_text.

image_urlstring

Публичный URL изображения при type=input_image.

Поддерживаются только общедоступные URL изображений http:// или https://. URL данных Base64, например data:image/...;base64,..., не поддерживаются.

detailstringПо умолчанию: auto

Уровень детализации изображения при type=input_image.

Распространённые значения:

  • auto
  • low
  • high
file_datastring

URL данных содержимого файла при 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.

Текст

json
{
  "model": "gpt-5.4",
  "input": "Hello, introduce yourself in one sentence."
}

Параметры в стиле Codex CLI

json
{
  "model": "gpt-5.5",
  "input": "Reply with READY only.",
  "reasoning": {
    "effort": "xhigh"
  },
  "store": false,
  "text": {
    "verbosity": "low"
  },
  "stream": true
}

Понимание изображений

json
{
  "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 данных.

json
{
  "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"
        }
      ]
    }
  ]
}

Ввод изображения и файла

json
{
  "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"
        }
      ]
    }
  ]
}

Потоковый вывод

json
{
  "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.

Пример успешного ответа

json
{
  "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.

text
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-ответа.

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}

Примечания

  • Эндпоинт Responses использует input, а не messages. Если клиент отправляет только messages, используйте /openai/v1/chat/completions.
  • Ввод изображений использует input_image; image_url должен быть публичным URL http:// или https://. URL данных Base64 для изображений не поддерживаются.
  • Ввод файлов использует input_file. Для PDF используйте file_data и filename; file_data должен быть полным URL data:application/pdf;base64,....
  • Аудиоввод/вывод, инструменты генерации изображений, поиск файлов и другие расширенные возможности зависят от выбранной модели и доступных функций.
  • Перечисленные поля составляют текущий публичный контракт запросов Responses; не считайте неперечисленные поля доступными.
  • /openai/responses — рекомендуемый публичный путь.
  • /v1/responses следует тому же публичному контракту запросов и ответов.
  • /compat/v1/responses следует тому же публичному контракту запросов и ответов.
  • /openai/v1/responses следует тому же публичному контракту запросов и ответов.