API Hop

Documentación

Documentación de API Hop

Chat Completions común

API de chat unificada para cambiar de modelo de texto mediante `model`. El formato de solicitud es compatible con OpenAI Chat Completions.

POSThttps://api.apihop.ai/v1/chat-completions

API de chat unificada para cambiar de modelo de texto mediante model. El formato de solicitud es compatible con OpenAI Chat Completions.

El proveedor admite Claude Sonnet 4.6 (claude-sonnet-4-6), pero actualmente no está publicado en RequestBeam. No es un valor predeterminado activo de integración. Antes de llamar a cualquier modelo, confirma el acceso con tu propia respuesta de GET https://api.apihop.ai/v1/models.

Este endpoint devuelve una respuesta JSON completa de forma predeterminada. Establece stream: true explícitamente cuando necesites streaming SSE.

text
POST https://api.apihop.ai/v1/chat-completions

Autenticación

Todas las solicitudes requieren autenticación mediante token Bearer.

http
Authorization: Bearer YOUR_API_KEY

Si falla la autenticación, comprueba:

  • Si la clave de API es correcta
  • Si la clave es válida para esta URL base de API
  • Si la cabecera de solicitud está escrita correctamente
  • Si un proxy reescribe la cabecera de autorización

Cuerpo

modelstringobligatorioPredeterminado: gpt-5.4

ID de modelos de texto documentados (confirma el acceso con GET https://api.apihop.ai/v1/models):

  • OpenAI: gpt-5.4, gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-6-astra
  • Anthropic: claude-fable-5, claude-fable-5-1, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8, claude-opus-5, claude-opus-5-5, claude-sonnet-5, claude-sonnet-5-5
  • DeepSeek: deepseek-v4-flash, deepseek-v4-pro, deepseek-v4.1-flash

(V4.1 Flash es un ID distinto, disponible solo tras desplegar y activar; consulta GET https://api.apihop.ai/v1/models).

  • Gemini: gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash, gemini-3.5-flash-lite, gemini-4-argon (tras desplegar y activar)
  • Kimi: kimi-k3
  • MiniMax: minimax-m3

Consulta el Catálogo de modelos para la lista completa y los modelos visibles para la clave actual. Usa tu propia respuesta de GET https://api.apihop.ai/v1/models como fuente actual de disponibilidad. Consulta las guías de DeepSeek, Gemini, Kimi y MiniMax para notas de selección y ejemplos por familia.

messagesobject[]obligatorio

Mensajes del chat. Cada mensaje debe incluir:

  • role: system, user o assistant
  • content: contenido del mensaje

Ejemplo:

json
  [
    {"role": "system", "content": "You are a helpful Python tutor."},
    {"role": "user", "content": "How should I learn programming?"}
  ]

Límites de muestreo específicos del modelo: gpt-6-astra no acepta los campos antiguos temperature, top_p ni top_logprobs; omítelos aunque un cliente antiguo los incluya. El Playground de GPT-6 Astra de RequestBeam también oculta los controles antiguos de muestreo y penalizaciones. claude-sonnet-5 rechazó top_p en una revisión documentada de integración; omítelo también para ese modelo. Pasar un campo opcional por un proxy no demuestra que el modelo del proveedor lo admita.

temperaturenumberPredeterminado: 1.0

Temperatura de muestreo. Los clientes compatibles con OpenAI suelen usar de 0 a 2, pero el modelo elegido toma la decisión final de validación.

max_tokensinteger

Máximo opcional de tokens de salida, como entero positivo. Omite el campo para usar el valor predeterminado del proveedor para el modelo; los valores por defecto y máximos varían según el modelo y la configuración del proveedor.

Según el modelo, el límite puede incluir tokens de razonamiento y texto final. Un límite pequeño puede causar finish_reason: "length", truncar la respuesta o agotarse antes del texto final. Aumentarlo puede incrementar el coste.

max_completion_tokensinteger

Alternativa opcional de compatibilidad a max_tokens, con las mismas consideraciones de límite. Un modelo puede aceptar solo uno de estos campos, por lo que conviene empezar con un cuerpo mínimo al cambiar de modelo. Omite ambos para usar el valor predeterminado del proveedor.

streambooleanPredeterminado: false

Si se transmite la respuesta en streaming.

  • true: devuelve eventos enviados por el servidor (SSE)
  • false: devuelve una respuesta completa
top_pnumberPredeterminado: 1.0

Parámetro de muestreo de núcleo. Los clientes compatibles con OpenAI suelen usar de 0 a 1; el modelo elegido realiza la validación final.

frequency_penaltynumberPredeterminado: 0

Penalización por frecuencia. Los clientes compatibles con OpenAI suelen usar de -2.0 a 2.0; el modelo elegido realiza la validación final.

presence_penaltynumberPredeterminado: 0

Penalización por presencia. Los clientes compatibles con OpenAI suelen usar de -2.0 a 2.0; el modelo elegido realiza la validación final.

stopstring | array

Secuencia de parada o matriz de secuencias. El modelo elegido determina la cantidad aceptada y el comportamiento.

nintegerPredeterminado: 1

Número de respuestas que generar. Usa un número como 1, no una cadena entre comillas.

Diferencias de parámetros entre modelos

Los modelos de texto actuales admiten solicitudes mínimas de chat con y sin streaming, pero la aceptación y los efectos de los parámetros opcionales varían según el modelo y su implementación de compatibilidad.

La última revisión del 2026-09-26 aceptó claude-fable-5 con temperature: 0 y devolvió texto. La misma revisión rechazó claude-sonnet-5 con top_p: 0.9, con HTTP 400 y top_p is deprecated. Omite top_p para ese modelo. La aceptación no demuestra un efecto sobre el muestreo ni garantiza otros modelos o solicitudes futuras; no supongas que se admiten todos los parámetros de muestreo.

Las comprobaciones de OpenAI del 2026-09-26 aceptaron stop para gpt-5.6-sol y gpt-5.6-terra. La aceptación puede cambiar con el proveedor y no demuestra que la secuencia de parada sea efectiva.

El reenvío nativo de chat compatible con OpenAI conserva top_p y stop en la solicitud al proveedor. Una ruta que convierte Chat a Responses conserva top_p pero no reenvía stop. Reenviar un campo no demuestra la compatibilidad del proveedor ni su efecto; ninguno tiene una garantía global en todas las rutas.

Empieza con una solicitud mínima al cambiar de modelo y verifica por separado muestreo, secuencias de parada y parámetros avanzados de herramientas. Para las secuencias de parada, inspecciona el texto real y el motivo de finalización, no solo el estado HTTP. HTTP 200 no demuestra un efecto de muestreo. Los límites de salida deben cubrir tanto el razonamiento como el texto final.

Ejemplo de solicitud

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

Respuesta

idstring

Identificador único de la respuesta.

objectstring

Tipo de objeto, normalmente chat.completion o chat.completion.chunk para streaming.

createdinteger

Marca de tiempo Unix de creación.

modelstring

Identificador del modelo devuelto en la respuesta.

choicesarray

Opciones generadas, incluidos el contenido del mensaje, índice y motivo de finalización.

usageobject

Estadísticas de uso de tokens.

Ejemplo correcto

json
{
  "id": "chatcmpl-9876543210",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "I am an AI assistant that can help with writing, coding, and analysis."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 42,
    "total_tokens": 70
  }
}

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 de Chat Completions usan un cuerpo JSON plano, incluidos los errores HTTP del proveedor devueltos antes de iniciar un flujo SSE. Por ejemplo, HTTP 402 devuelve:

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}
  • code: código numérico de error de plataforma, independiente del estado HTTP y no una cadena
  • message: descripción del error legible por personas
  • type: api_error
  • requestId: identificador opcional de solicitud para diagnóstico
Estado HTTPcodeSignificado
40010000Solicitud no válida
40120000Autenticación ausente o no válida
40240000Saldo insuficiente
40320001Acceso denegado o modelo no disponible para esta clave
40430000Modelo o recurso no encontrado
40930001Conflicto de solicitud
42210001Error de validación
42940001Límite de velocidad superado
50050003Error interno
50250000Error del proveedor
50350001Servicio no disponible
50450002Tiempo de espera de la pasarela agotado

Comprueba primero el estado HTTP para saber si la solicitud tuvo éxito y después compara el code numérico para el tratamiento específico de la aplicación. No compares code con cadenas como "400", no supongas que coincide con el estado HTTP ni analices message como un identificador estable. Un campo messages ausente o de tipo incorrecto se rechaza con HTTP 400 y code: 10000 antes de llamar al proveedor.

Este formato de error se aplica a las respuestas HTTP de Chat Completions, no a errores dentro de un flujo SSE ya iniciado ni a otros protocolos de API. El catálogo de modelos y los endpoints de protocolos nativos tienen sus propios formatos documentados.