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
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
Crea una clave API en la consola para empezar.
Cuerpo de la petición
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| model | string | Sí | ID del modelo; aquí gemini-3.1-pro. |
| messages | array | Sí | 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 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
{
"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 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
| Code | Descripción |
|---|---|
| 401 | Falta la clave API o no es válida |
| 402 | Saldo insuficiente o clave por encima de su cuota |
| 400 | Modelo o parámetro no soportado |
| 429 | Límite de tasa del proveedor |
| 502 | Fallaron todas las rutas de proveedor |