# Gemini 3.1 Pro — /chat/completions

OpenAI-compatible chat completions backed by Google Gemini 3.1 Pro. Supports streaming and long context. Set model to gemini-3.1-pro; defaults to the low-effort tier, pass reasoning_effort=high for the high tier.

**Endpoint:** `POST https://nezhagate.com/v1/chat/completions`

## Authentication
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Request body
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `model` | string | Yes | Model ID, here gemini-3.1-pro. |
| `messages` | array | Yes | Array of messages; each has role (system/user/assistant) and content. content may be a string, or an array of {type:text} and {type:image_url} parts for image understanding (multimodal/vision). |
| `stream` | boolean | No | Stream the response as SSE. Default false. |
| `temperature` | number | No | Sampling temperature, 0–2. |
| `max_tokens` | integer | No | Maximum number of tokens to generate. |
| `web_search` | boolean | No | Set true to enable web search: the gateway augments the prompt with live results (citing sources) before the model answers. Can also be triggered via a tools entry {"type":"web_search"}. |
| `reasoning_effort` | string | No | Effort tier: low (default — faster, cheaper) or high (deeper reasoning, billed at the Preview tier). Suffix model names gemini-3.1-pro-low / gemini-3.1-pro-high also work; the legacy id gemini-3.1-pro-preview equals the high tier at its existing price. |

## Request example
```bash
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}'
```

## Response
```json
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "gemini-3.1-pro",
  "choices": [
    {"index": 0, "message": {"role": "assistant", "content": "Hello!"}, "finish_reason": "stop"}
  ],
  "usage": {"prompt_tokens": 11, "completion_tokens": 7, "total_tokens": 18}
}
```

## Image input (Vision)
Put an image in the message content array and the model will analyze it (visual Q&A, reading text / OCR, …). image_url accepts a public image link or an inline base64 data URL (data:image/png;base64,...). Available on multimodal models (gpt-5.5, gemini series, …).

```bash
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": "What is in this image?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
```