API Hop

Documentación

Documentación de API Hop

Responses multimodal de OpenAI

API Responses compatible con OpenAI. Este endpoint usa `input` de estilo OpenAI y admite texto, URL públicas de imágenes, entrada de archivos PDF, llamadas a herramientas, opciones de razonamiento y parámetros de streaming.

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

API Responses compatible con OpenAI. Este endpoint usa input de estilo OpenAI y admite texto, URL públicas de imágenes, entrada de archivos PDF, llamadas a herramientas, opciones de razonamiento y parámetros de streaming.

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

Autenticación

Todas las solicitudes requieren autenticación mediante token Bearer.

http
Authorization: Bearer YOUR_API_KEY

Cuerpo

modelstringobligatorioPredeterminado: gpt-5.4

Modelos activos actualmente compatibles con Responses:

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

Consulta el Catálogo de modelos para los modelos visibles para la clave de API actual.

inputstring | object[]

Contenido de entrada. Obligatorio salvo que se proporcione un previous_response_id no vacío. Omitir ambos campos o usar un tipo de entrada no válido devuelve 400 antes de facturar.

Formas admitidas:

  • Una cadena, equivalente a una entrada de texto user.
  • Una matriz de elementos de entrada para historial de conversación, entrada multimodal y resultados de llamadas a herramientas.

Cada objeto de la matriz de entrada puede contener los siguientes campos:

typestring

Tipo de elemento de entrada.

Valores habituales:

  • message: una entrada de mensaje.
  • function_call_output: el resultado de una llamada a una herramienta de función.
rolestring

Rol cuando type=message.

Valores habituales:

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

Contenido del mensaje.

Usa una matriz de bloques de contenido para solicitudes multimodales. Los bloques admiten:

typestring

Tipo de bloque de contenido.

Admitidos actualmente:

  • input_text
  • input_image
  • input_file
textstring

Contenido de texto cuando type=input_text.

image_urlstring

URL pública de imagen cuando type=input_image.

Solo se admiten URL de imágenes http:// o https:// accesibles públicamente. No se admiten URL de datos Base64 como data:image/...;base64,....

detailstringPredeterminado: auto

Nivel de detalle de la imagen cuando type=input_image.

Valores habituales:

  • auto
  • low
  • high
file_datastring

URL de datos del contenido del archivo cuando type=input_file. Los PDF pueden usar data:application/pdf;base64,....

filenamestring

Nombre del archivo cuando type=input_file.

instructionsstring

Instrucciones del sistema o desarrollador insertadas en el contexto del modelo.

max_output_tokensinteger

Máximo opcional de tokens de salida como entero positivo. Omite este campo para usar el valor predeterminado del proveedor para el modelo elegido. Según el modelo, el límite puede incluir tokens de razonamiento y texto final. Un límite pequeño puede truncar la respuesta o agotarse antes del texto final; aumentarlo puede incrementar el coste.

streambooleanPredeterminado: false

Si se transmite la respuesta en streaming.

  • false: devuelve una respuesta completa
  • true: devuelve eventos SSE al estilo OpenAI Responses
temperaturenumberPredeterminado: 1.0

Temperatura de muestreo, normalmente de 0 a 2.

top_pnumberPredeterminado: 1.0

Parámetro de muestreo de núcleo, normalmente de 0 a 1.

textobject

Configuración de salida de texto.

text.formatobject

Configuración del formato de texto, como { "type": "text" } o un esquema JSON.

text.verbositystring

Nivel de detalle de la salida, como low, medium o high. La compatibilidad depende del modelo elegido.

toolsobject[]

Definiciones de herramientas. La disponibilidad depende del modelo y de las funciones disponibles.

tool_choicestring | object

Política de selección de herramientas.

parallel_tool_callsboolean

Si se permiten llamadas paralelas a herramientas.

reasoningobject

Opciones relacionadas con el razonamiento.

includestring[]

Campos adicionales que incluir en la respuesta.

prompt_cache_keystring

Clave de caché de instrucciones para reutilizar la caché.

prompt_cache_retentionstring

Política de retención de caché de instrucciones. Los valores admitidos dependen del modelo y de las funciones disponibles.

safety_identifierstring

Identificador estable del usuario final para controles de seguridad.

storeboolean

Si se puede almacenar el estado de la respuesta.

Diferencias de parámetros entre modelos

  • El reenvío nativo compatible con OpenAI Responses conserva top_p en la solicitud al proveedor; la validación y el muestreo dependen del modelo y proveedor elegidos. Las comprobaciones del 2026-09-26 aceptaron top_p: 0.9 para gpt-5.5, gpt-5.6-sol y gpt-5.6-terra. Aceptar y reenviar no demuestra un efecto de muestreo ni garantiza compatibilidad con otros valores, modelos o solicitudes posteriores. Empieza con una solicitud mínima.
  • La compatibilidad indicada aquí se aplica solo al endpoint normal /openai/responses. No implica que el mismo modelo admita /openai/responses/compact, WebSocket o previous_response_id con estado.
  • Los cinco modelos GPT anteriores no tienen actualmente un canal Compact verificado. Las solicitudes Compact se rechazan antes de facturar si no hay un canal activado explícitamente. Responses normal y Responses WebSocket siguen disponibles.

Ejemplos de solicitudes

Los ejemplos siguientes proporcionan input. Una continuación puede omitir input si proporciona un previous_response_id válido y el canal elegido admite continuación con estado. Un ID de respuesta no activa esa capacidad en un canal incompatible. Los resultados de herramientas siguen siendo elementos de entrada válidos, incluido function_call_output.

Texto

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

Parámetros al estilo Codex CLI

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

Comprensión de imágenes

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

Entrada de archivos

Usa file_data junto con filename para enviar contenido PDF. file_data debe ser una URL de datos completa.

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

Entrada de imágenes y archivos

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

Salida en streaming

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

Respuesta

Las respuestas sin streaming siguen el estilo OpenAI Responses. Los campos reales pueden variar según las capacidades del modelo elegido.

idstring

Identificador único de la respuesta.

objectstring

Tipo de objeto de respuesta, normalmente response.

created_atinteger

Marca de tiempo de creación.

modelstring

Modelo realmente utilizado.

outputobject[]

Lista de elementos de salida. Los elementos habituales incluyen message, function_call y salidas relacionadas con herramientas.

usageobject

Estadísticas de uso de tokens, como input_tokens, output_tokens y total_tokens.

Ejemplo correcto

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
  }
}

Respuesta en streaming

Con stream=true, el endpoint devuelve eventos enviados por el servidor (SSE).

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"}}

Lee los eventos hasta response.completed o hasta que se cierre la conexión.

Respuesta de error

Consulta Códigos de error y resolución de problemas para la referencia completa de códigos, diferencias de protocolo y pasos de diagnóstico.

Los errores HTTP generados por la plataforma usan los campos planos siguientes en lugar de una envoltura error. Algunos errores del proveedor pueden conservar su estructura original; los errores dentro de un flujo SSE ya iniciado no siguen este ejemplo de respuesta HTTP.

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

Notas

  • El endpoint Responses usa input, no messages. Si tu cliente solo envía messages, usa /openai/v1/chat/completions.
  • La entrada de imágenes usa input_image; image_url debe ser una URL pública http:// o https://. No se admiten URL de datos Base64 para imágenes.
  • La entrada de archivos usa input_file. Para PDF, usa file_data junto con filename; file_data debe ser una URL completa data:application/pdf;base64,....
  • La entrada/salida de audio, herramientas de generación de imágenes, búsqueda de archivos y otras capacidades avanzadas dependen del modelo y de las funciones disponibles.
  • Los campos de esta página forman el contrato público actual de solicitudes Responses; no supongas que están disponibles campos no listados.
  • /openai/responses es la ruta pública recomendada.
  • /v1/responses sigue el mismo contrato público de solicitud y respuesta.
  • /compat/v1/responses sigue el mismo contrato público de solicitud y respuesta.
  • /openai/v1/responses sigue el mismo contrato público de solicitud y respuesta.