Crear una completion de chat
Chat Completions compatible con OpenAI: GPT, Gemini, GLM, Qwen, DeepSeek, Grok y otros modelos de chat comparten este endpoint.
/v1/chat/completionsRecibe una lista de mensajes de conversación y devuelve la respuesta del modelo. Con el SDK de OpenAI solo cambie el Base URL a https://api.hop-base.com/v1 y use la clave del grupo correspondiente.
La tabla solo incluye los campos que el gateway comprueba, reescribe o rechaza, y los valores indicados en cada página de modelo; los demás campos de OpenAI se reenvían sin cambios y sus rangos siguen la especificación oficial del modelo. El cuerpo completo de la solicitud admite hasta 60 MB; si lo supera, devuelve 413.
Encabezados
Bearer sk-…: una clave de API creada en la consola; su grupo debe incluir el modelo solicitado
Parámetros del cuerpoJSON
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Mensajes de la conversación. Si falta devuelve 400 missing messages field; un array vacío devuelve 400 messages must not be an empty array
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Límite de salida. El gateway no lo recorta ni lo reescribe; el máximo sigue la especificación oficial del modelo y, si se supera, el modelo devuelve un error
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
auto / none / required o una función concreta; se reenvía sin cambios
Temperatura de muestreo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Muestreo de núcleo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Nivel de razonamiento. Los valores varían según el modelo; elija la familia de modelos arriba para verlos
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valorescodex-auto-reviewgpt-5.3-codex-sparkgpt-5.4gpt-5.4-minigpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astragpt-6-lunagpt-6-sol
Mensajes de la conversación. Si falta devuelve 400 missing messages field; un array vacío devuelve 400 messages must not be an empty array
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Límite de salida. El gateway no lo recorta ni lo reescribe; el máximo sigue la especificación oficial del modelo y, si se supera, el modelo devuelve un error
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
auto / none / required o una función concreta; se reenvía sin cambios
Temperatura de muestreo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Muestreo de núcleo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Nivel de razonamiento. Los valores varían según el modelo; elija la familia de modelos arriba para verlos
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valoresgemini-2.5-flashgemini-2.5-flash-litegemini-2.5-progemini-3-flash-previewgemini-3.1-flash-litegemini-3.1-flash-lite-previewgemini-3.1-pro-previewgemini-3.1-pro-preview-customtoolsgemini-3.5-flashgemini-3.5-flash-litegemini-3.6-flashgemini-3.7-flashgemini-3.8-flash
Solo se leen las partes text e image_url. image_url solo acepta data URL en base64 (un enlace público devuelve 400 image_url only supports data URLs (base64-embedded images)); input_audio, file y video_url se descartan sin aviso; role: "tool" se envía como texto de usuario; si no queda contenido utilizable, devuelve 400
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Si también se envía max_completion_tokens, prevalece max_tokens. Los tokens de razonamiento cuentan para este límite; se recomienda al menos 4096
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
auto / none / required o una función concreta; se reenvía sin cambios
Temperatura de muestreo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Muestreo de núcleo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
none / minimal → presupuesto de razonamiento 0; medium → 8192; high → 24576; low y cualquier otro valor usan el predeterminado del modelo
Valoresnoneminimallowmediumhigh
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valoresglm-5.3
Array no vacío, solo texto; con imágenes devuelve 400. Contexto de 1M
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Compartido entre razonamiento y respuesta. Fuera de rango devuelve 400 indicando que el rango válido de max_tokens es [1, 131072]
Rango1–131072
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
Igual que en OpenAI. Los resultados tool devueltos deben corresponder a los ID de llamada del turno anterior; si no, devuelve 400 No tool call found for function call output
Predeterminado"auto"
Temperatura de muestreo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Muestreo de núcleo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Razonamiento siempre activo: none u otros valores que lo desactiven devuelven 400
Valoreslowhighmax
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valoresglm-5.3-flash
Array no vacío; puede incluir texto, imágenes, video y archivos. Contexto de 1M
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Máximo 128K (límite oficial), compartido entre razonamiento y respuesta
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
auto / none / required o una función concreta; se reenvía sin cambios
El gateway no fija un rango; se recomienda 1
El gateway no fija un rango; se recomienda 0.95
Se recomienda max; el razonamiento solo puede activarse, no desactivarse
Valoreslowhighmax
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
Se recomienda true en streaming con tools, para que los argumentos de las herramientas lleguen de forma incremental
Predeterminadofalse
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valoresqwen3.7-flashqwen3.7-maxqwen3.7-plusqwen3.8-flashqwen3.8-max
Array no vacío; qwen3.7-max solo admite texto y los demás modelos admiten imágenes y video; el ancho y alto de las imágenes deben superar 10 píxeles. En pruebas, qwen3.8-max admite hasta 991,808 tokens de entrada; por encima devuelve 400 Range of input length should be [1, 991808]
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Máximo 131,072 (límite oficial)
Rango≤ 131072
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
Igual que en OpenAI. En modo de razonamiento no puede ser required ni una función concreta; devuelve 400
Predeterminado"auto"
Temperatura de muestreo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Muestreo de núcleo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Valores comprobados en pruebas
Valoreslowhighmax
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
Propio de Qwen; se reenvía sin cambios
No se puede usar junto con reasoning_effort; devuelve 400
Propio de Qwen; se reenvía sin cambios
Modo JSON; se comporta igual que la API oficial
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valoresdeepseek-v4-flash-202605deepseek-v4-pro-202606deepseek-v4.1-flash
Array no vacío; role admite system / user / assistant / tool / developer. Solo deepseek-v4.1-flash lee imágenes: image_url.url puede ser una URI data: o un enlace https://
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
Entero no negativo; límite de salida: V4.1 Flash y V4 Flash 384,000, V4 Pro 393,216. Compartido entre razonamiento y respuesta; un valor negativo devuelve 400; por encima del límite no hay error y la salida se trunca sin aviso
Rango≥ 0
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función en formato de function tools de OpenAI; se reenvían sin cambios.
Siempre function
Nombre de la función
Para qué sirve la función; el modelo lo usa para decidir si la llama
JSON Schema de los parámetros
auto / none / required / una función concreta
Predeterminado"auto"
Mayor que 2 devuelve 400 expected a value <= 2
Rango0–2
Muestreo de núcleo; se reenvía sin cambios, con el rango de la especificación oficial del modelo
Valores comprobados en pruebas
Valoreslowmediumhigh
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
{"type": …}; otros valores (como auto) devuelven 400. Activado por defecto en V4.1 Flash
Valoresenableddisabledadaptive
Continuación por prefijo: solo en el último mensaje assistant
Predeterminadofalse
Un ID de modelo del grupo de la clave actual, según lo que devuelve GET /v1/models. Si el grupo no incluye el modelo, devuelve 404 model_not_found; los modelos de imagen como gpt-image-* devuelven 400 image models do not support Chat Completions, please use the Images API en este endpoint
Valoresgrok-4.20-0309-reasoninggrok-4.20-multi-agent-0309grok-4.3grok-4.5grok-4.6
Mensajes de la conversación. Si falta devuelve 400 missing messages field; un array vacío devuelve 400 messages must not be an empty array
Elementos≥ 1
system / user / assistant / tool, en formato OpenAI
Una cadena o un array de partes de contenido. Parte {"type": "text", "text": …}; los modelos con visión aceptan además {"type": "image_url", "image_url": {"url": …}}. Los requisitos de imagen de cada modelo aparecen en el selector de modelo de arriba
text o image_url
Texto cuando type es text
Imagen cuando type es image_url
Enlace HTTP(S) o URI data:; las formas admitidas varían según el modelo
Solo assistant: las llamadas a herramientas devueltas por el modelo en el turno anterior, sin cambios
Solo tool: debe coincidir con tool_calls[].id del turno anterior
El gateway no fija un límite; lo limita la ventana de contexto. Según la documentación oficial, incluye los tokens de razonamiento
Igual que max_tokens; nombre de campo más reciente de OpenAI
true devuelve SSE; formato de eventos en Eventos de streaming
Predeterminadofalse
Opciones de streaming
En streaming, envíe true para recibir un último evento que solo contiene usage (con choices vacío); sin él no se envía. La facturación no cambia
Predeterminadofalse
Herramientas de función y herramientas del servidor; las herramientas del servidor se facturan por uso
auto / none / required o una función concreta; se reenvía sin cambios
0–2 (oficial)
Rango0–2
0–1 (oficial); se recomienda usar esto o temperature, no ambos
Rango0–1
grok-4.6: low / medium / high / xhigh; grok-4.5: low / medium / high (oficial). Solo está disponible en estos dos modelos y el razonamiento no se puede desactivar
Valoreslowmediumhighxhigh
Predeterminado"high"
Solo se conservan priority / flex; los demás valores se eliminan antes de reenviar, sin error
Valorespriorityflex
No admitido (oficial): los modelos de razonamiento no lo aceptan y enviarlo produce un error
No admitido (oficial)
No admitido (oficial)
Respuesta
200Éxito. Sin streaming es un JSON chat.completion; con stream: true es SSE (text/event-stream)
ID de esta completion
Siempre chat.completion
Segundos Unix
ID del modelo usado realmente
Respuestas candidatas; la mayoría de los modelos devuelve solo 1
Índice
Respuesta del modelo
Siempre assistant
Texto de la respuesta; null cuando solo llama a herramientas
Proceso de razonamiento (lo devuelven DeepSeek y otros modelos)
Funciones que el modelo pide llamar; tras ejecutarlas, devuelva el resultado en un mensaje role: "tool"
ID de la llamada; póngalo en tool_call_id al devolver el resultado
Nombre de la función
Argumentos como cadena JSON
stop / length / tool_calls, etc.; length significa que se alcanzó el límite de salida
Uso de tokens
Tokens de entrada
Tokens de salida; si incluyen los de razonamiento depende del modelo (ver cada página de modelo)
Total
Tokens de razonamiento (algunos modelos los detallan aparte)
Errores
messages, etc.missing_api_key / invalid_api_key / api_key_expired)insufficient_quota)model_not_found) o la ruta no pertenece a ese grupo (route_not_found)request_too_large)user_concurrency_limit / apikey_concurrency_limit), con Retry-After