NezhaGate
POST https://nezhagate.com/v1/chat/completions

Chat completions compatible con OpenAI sobre Google Gemini 3.1 Pro. Admite streaming y contexto largo. Pon model en gemini-3.1-pro; por defecto usa el nivel de esfuerzo low, y reasoning_effort=high selecciona el nivel high. Este modelo devuelve además su resumen de razonamiento: choices[].message.reasoning_content sin streaming y choices[].delta.reasoning_content con streaming. La respuesta en sí está siempre en content y nunca se mezcla con el razonamiento, así que los clientes que solo leen content no necesitan cambios. Facturación: los tokens de razonamiento se cobran a la tarifa de salida y se incluyen en usage.completion_tokens; usage.completion_tokens_details.reasoning_tokens detalla cuántos fueron de razonamiento. Bloqueos de contenido: Google revisa el prompt antes de ejecutar el modelo; un prompt bloqueado no produce salida y no se factura. La pasarela reestructura el prompt automáticamente y reintenta una vez, y solo devuelve error si sigue rechazándose. Si tu prompt se bloquea de forma persistente, prueba a fusionar el mensaje system con el primer mensaje user.

📥 Ventana de contexto (entrada máxima):~1 000 000 tokens (contexto largo de un millón de tokens).

Probar en el Playground →

Autenticación

Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Crea una clave API en la consola para empezar.

Cuerpo de la petición

ParámetroTipoObligatorioDescripción
model string ID del modelo; aquí gemini-3.1-pro.
messages array Array de mensajes; cada uno tiene role (system/user/assistant) y content. content puede ser una cadena o un array de partes {type:text} y {type:image_url} para comprensión de imágenes (multimodal/visión).
stream boolean No Devuelve la respuesta en streaming como SSE. Por defecto false. Durante el streaming, el razonamiento llega de forma incremental en choices[].delta.reasoning_content, la respuesta permanece en delta.content y el flujo termina con data: [DONE]. Nota: el proveedor no informa de un recuento separado de razonamiento en las llamadas en streaming, así que reasoning_tokens vale 0; el razonamiento sigue incluido en completion_tokens, por lo que el coste coincide con el de la ruta sin streaming.
temperature number No Temperatura de muestreo, 0–2.
max_tokens integer No Número máximo de tokens a generar.
web_search boolean No Ponlo en true para activar la búsqueda web: la pasarela amplía el prompt con resultados en tiempo real (citando las fuentes) antes de que el modelo responda. También se puede activar con una entrada {"type":"web_search"} en tools.
reasoning_effort string No Nivel de esfuerzo: low (por defecto: más rápido y barato) o high (razonamiento más profundo, facturado a la tarifa Preview). También funcionan los nombres con sufijo gemini-3.1-pro-low / gemini-3.1-pro-high; el id antiguo gemini-3.1-pro-preview equivale al nivel high a su precio actual.

Ejemplo de petición

cURL
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'

Respuesta

200 · JSON
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "gemini-3.1-pro",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "**My Thought Process** ... (the model summarises its own reasoning)",
        "content": "70"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 48,
    "completion_tokens": 2187,
    "total_tokens": 2235,
    "completion_tokens_details": {"reasoning_tokens": 1371}
  }
}

Entrada de imagen (visión)

Pon una imagen en el array content del mensaje y el modelo la analizará (preguntas sobre la imagen, lectura de texto / OCR, etc.). image_url acepta un enlace público a la imagen o un data URL en base64 (data:image/png;base64,...). Disponible en los modelos multimodales (gpt-5.5, la serie gemini, etc.).

curl · Entrada de imagen (visión)
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "¿Qué hay en esta imagen?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'

Códigos de error

CodeDescripción
401Falta la clave API o no es válida
402Saldo insuficiente o clave por encima de su cuota
400Modelo o parámetro no soportado
429Límite de tasa del proveedor
502Fallaron todas las rutas de proveedor