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.
https://api.apihop.ai/openai/responsesAPI 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.
POST https://api.apihop.ai/openai/responsesAutenticación
Todas las solicitudes requieren autenticación mediante token Bearer.
Authorization: Bearer YOUR_API_KEYCuerpo
modelstringobligatorioPredeterminado: gpt-5.4Modelos activos actualmente compatibles con Responses:
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-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:
typestringTipo 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.
rolestringRol cuando type=message.
Valores habituales:
developersystemuserassistant
contentstring | object[]Contenido del mensaje.
Usa una matriz de bloques de contenido para solicitudes multimodales. Los bloques admiten:
typestringTipo de bloque de contenido.
Admitidos actualmente:
input_textinput_imageinput_file
textstringContenido de texto cuando type=input_text.
image_urlstringURL 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: autoNivel de detalle de la imagen cuando type=input_image.
Valores habituales:
autolowhigh
file_datastringURL de datos del contenido del archivo cuando type=input_file. Los PDF pueden usar data:application/pdf;base64,....
filenamestringNombre del archivo cuando type=input_file.
instructionsstringInstrucciones del sistema o desarrollador insertadas en el contexto del modelo.
max_output_tokensintegerMá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: falseSi se transmite la respuesta en streaming.
false: devuelve una respuesta completatrue: devuelve eventos SSE al estilo OpenAI Responses
temperaturenumberPredeterminado: 1.0Temperatura de muestreo, normalmente de 0 a 2.
top_pnumberPredeterminado: 1.0Parámetro de muestreo de núcleo, normalmente de 0 a 1.
textobjectConfiguración de salida de texto.
text.formatobjectConfiguración del formato de texto, como { "type": "text" } o un esquema JSON.
text.verbositystringNivel 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 | objectPolítica de selección de herramientas.
parallel_tool_callsbooleanSi se permiten llamadas paralelas a herramientas.
reasoningobjectOpciones relacionadas con el razonamiento.
includestring[]Campos adicionales que incluir en la respuesta.
prompt_cache_keystringClave de caché de instrucciones para reutilizar la caché.
prompt_cache_retentionstringPolítica de retención de caché de instrucciones. Los valores admitidos dependen del modelo y de las funciones disponibles.
safety_identifierstringIdentificador estable del usuario final para controles de seguridad.
storebooleanSi se puede almacenar el estado de la respuesta.
Diferencias de parámetros entre modelos
- El reenvío nativo compatible con OpenAI Responses conserva
top_pen la solicitud al proveedor; la validación y el muestreo dependen del modelo y proveedor elegidos. Las comprobaciones del 2026-09-26 aceptarontop_p: 0.9paragpt-5.5,gpt-5.6-solygpt-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 oprevious_response_idcon 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
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}Parámetros al estilo Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}Comprensión de imágenes
{
"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.
{
"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
{
"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
{
"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.
idstringIdentificador único de la respuesta.
objectstringTipo de objeto de respuesta, normalmente response.
created_atintegerMarca de tiempo de creación.
modelstringModelo realmente utilizado.
outputobject[]Lista de elementos de salida. Los elementos habituales incluyen message, function_call y salidas relacionadas con herramientas.
usageobjectEstadísticas de uso de tokens, como input_tokens, output_tokens y total_tokens.
Ejemplo correcto
{
"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).
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.
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}Notas
- El endpoint
Responsesusainput, nomessages. Si tu cliente solo envíamessages, usa/openai/v1/chat/completions. - La entrada de imágenes usa
input_image;image_urldebe ser una URL públicahttp://ohttps://. No se admiten URL de datos Base64 para imágenes. - La entrada de archivos usa
input_file. Para PDF, usafile_datajunto confilename;file_datadebe ser una URL completadata: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/responseses la ruta pública recomendada./v1/responsessigue el mismo contrato público de solicitud y respuesta./compat/v1/responsessigue el mismo contrato público de solicitud y respuesta./openai/v1/responsessigue el mismo contrato público de solicitud y respuesta.