Saltar al contenido

Crear una respuesta

OpenAI Responses API: la usan Codex CLI y modelos como GPT, GLM, Qwen y Grok; sin estado, cada turno debe enviar el historial completo.

POST/v1/responses

Endpoint compatible con OpenAI Responses; Codex CLI lo usa. En HopBase, Responses es sin estado: store siempre es false y previous_response_id se elimina, así que en conversaciones de varios turnos envíe el input completo cada vez.

Los campos no listados se reenvían sin cambios; cada página de modelo indica si los campos que el modelo no acepta (como truncation y reasoning.summary en DeepSeek) se eliminan sin aviso. Si la salida en streaming falla a mitad, se envía event: response.failed y el estado HTTP sigue siendo 200.

Encabezados

Authorization:obligatoriostring

Bearer sk-…: una clave de API creada en la consola; su grupo debe incluir el modelo solicitado

Parámetros del cuerpoJSON

model:obligatoriostring

Un ID de modelo del grupo de la clave actual. Grupos con Responses: GPT (Codex), GLM-5.3, Qwen, Grok y deepseek-v4.1-flash; Gemini no lo admite

input:obligatoriostring o array of object

Una cadena se envuelve automáticamente en un único mensaje de usuario; también acepta un array de mensajes. En Qwen, las partes de contenido solo admiten input_text, input_image e input_file, sin video

max_output_tokens:opcionalinteger

Límite de salida. El gateway no lo recorta ni lo reescribe; el máximo sigue la especificación oficial del modelo

stream:opcionalboolean

true devuelve el flujo de eventos SSE de Responses; ver Eventos de streaming

Predeterminadofalse

tools:opcionalarray of object

Definiciones de herramientas; se reenvían sin cambios. En Responses las herramientas de función son planas (name al mismo nivel que type), a diferencia de Chat Completions

tool_choice:opcionalstring o object

Se reenvía sin cambios

reasoning:opcionalobject

Configuración de razonamiento; se reenvía sin cambios. El model_reasoning_effort de Codex CLI se escribe aquí

service_tier:opcionalstring

Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar

Valorespriorityflex

previous_response_id:opcionalstring

No admitido: el gateway elimina este campo y no continúa el turno anterior. En conversaciones de varios turnos, incluya el historial completo en input

store:opcionalfalse

Siempre false: el servidor no guarda la respuesta y no se puede recuperar después por ID

Predeterminadofalse

Respuesta

200Éxito. Sin streaming es un JSON response; con stream: true es SSE

id:opcionalstring

ID de la respuesta (store siempre es false; no se puede recuperar por ID)

object:opcional"response"
created_at:opcionalinteger

Segundos Unix

status:opcionalstring

completed / incomplete / failed

model:opcionalstring

ID del modelo

output:opcionalarray of object

Elementos de salida: message, reasoning, function_call, etc.

usage:opcionalobject

Uso de tokens

error:opcionalobject o null

Error si falla

Errores

400No se puede leer el cuerpo de la solicitud o faltan campos
401Falta la clave, la clave no es válida o ha caducado (missing_api_key / invalid_api_key / api_key_expired)
402Se agotó el saldo o la cuota de la clave, del miembro o del departamento (insufficient_quota)
404El modelo no está en el grupo de esta clave (model_not_found) o la ruta no pertenece a ese grupo (route_not_found)
413El cuerpo de la solicitud supera 60 MB (request_too_large)
429Se alcanzó el límite de concurrencia de la cuenta o de la clave (user_concurrency_limit / apikey_concurrency_limit), con Retry-After
503Si indica que la sesión con estado "can no longer be resumed", quite previous_response_id e inicie una conversación nueva

Páginas relacionadas