# gemini-3.1-pro-preview — API, Pricing & Context Window | Vivgrid

> Source: https://vivgrid.com/docs/models/gemini-3.1-pro-preview

gemini-3.1-pro-preview on Vivgrid: Google's high-end multimodal coding model with a ~1M-token context window across text, image, video, audio and PDF.

`gemini-3.1-pro-preview` is Google's high-end Gemini model, positioned for coding and complex multimodal reasoning. It accepts **text, image, video, audio, and PDF** within a **~1.05M-token context window**.

On Vivgrid it runs as a globally centralized model. Because it relies on Google's global endpoint, regional acceleration is limited — but it remains available through the same unified API as the rest of the catalog.

## Specifications

| Field | Value |
| --- | --- |
| Provider | Google |
| Model ID | `gemini-3.1-pro-preview` |
| Best for | Coding |
| Available on | Vibe coding |
| Context window | 1,048,576 tokens |
| Max output | 65,536 tokens |
| Modalities | Text, Image, Video, Audio, PDF |
| Tool / function calling | Yes |
| Knowledge cutoff | 2025-01 |
| Acceleration | Global (centralized) |

## Pricing

Pricing in USD per 1M tokens.

| Input | Cached input | Output |
| --- | --- | --- |
| $3.00 | $0.30 | $12.00 |

### What one request costs

The rates above applied to a 20K-token prompt with a 2K-token reply — a typical single agent turn, small enough that every request is billed at the base rate.

| Request | Cost |
| --- | --- |
| Cold prompt, nothing cached | $0.0840 |
| Warm prompt, 90% of the input served from cache | $0.0354 |


## Use gemini-3.1-pro-preview in your coding agent

`gemini-3.1-pro-preview` works with the same Vivgrid key and `https://api.vivgrid.com/v1` endpoint as every other model in the catalog. Grab your API key from the [Vivgrid Console](https://console.vivgrid.com), then drop one of the configurations below into your agent of choice.

### OpenCode

[OpenCode](https://opencode.ai) has Vivgrid built in, so you can use `gemini-3.1-pro-preview` without writing any config: open `/models`, search for `vivgrid`, paste your API key and pick the model. The [OpenCode tutorial](/docs/tutorials/opencode) walks through it step by step.

Prefer to configure it by hand? Install OpenCode:

```bash
npm i -g opencode-ai
```

Declare `gemini-3.1-pro-preview` under the Vivgrid provider in your global OpenCode config, `~/.config/opencode/opencode.json`. The `@ai-sdk/openai-compatible` provider talks to Vivgrid over **Chat Completions** (`/v1/chat/completions`):

```json title="~/.config/opencode/opencode.json" lines icon="json" highlight={3,6,9,10}
{
  "$schema": "https://opencode.ai/config.json",
  "model": "vivgrid/gemini-3.1-pro-preview",
  "provider": {
    "vivgrid": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Vivgrid",
      "options": {
        "baseURL": "https://api.vivgrid.com/v1",
        "apiKey": "{env:VIVGRID_API_KEY}"
      },
      "models": {
        "gemini-3.1-pro-preview": {
          "name": "gemini-3.1-pro-preview",
          "tool_call": true,
          "attachment": true,
          "modalities": { "input": ["text", "image", "video", "audio", "pdf"], "output": ["text"] },
          "limit": { "context": 1048576, "output": 65536 }
        }
      }
    }
  }
}
```

Export your key and launch OpenCode:

```bash
export VIVGRID_API_KEY="viv-xxxxxxxxxxxxx"
opencode
```

Use `/models` to switch between `gemini-3.1-pro-preview` and other Vivgrid models mid-session. See the full [OpenCode tutorial](/docs/tutorials/opencode).

### Pi

Install [Pi](https://pi.dev):

```bash
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
```

Add `gemini-3.1-pro-preview` to the Vivgrid provider in `~/.pi/agent/models.json`. Pi talks to Vivgrid over **Chat Completions** (`/v1/chat/completions`):

```json title="~/.pi/agent/models.json" lines icon="json" highlight={4,5,12}
{
  "providers": {
    "vivgrid": {
      "baseUrl": "https://api.vivgrid.com/v1",
      "apiKey": "viv-xxxxxxxxxxxxx",
      "api": "openai-completions",
      "compat": {
        "sendSessionAffinityHeaders": true
      },
      "models": [
        {
          "id": "gemini-3.1-pro-preview",
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 65536
        }
      ]
    }
  }
}
```

Make it the model Pi starts with in `~/.pi/agent/settings.json`:

```json title="~/.pi/agent/settings.json" lines icon="json" highlight={2,3}
{
  "defaultProvider": "vivgrid",
  "defaultModel": "gemini-3.1-pro-preview"
}
```

Then verify and start Pi:

```bash
pi --list-models vivgrid
pi
```

Or run a one-shot prompt without entering the TUI:

```bash
pi -p "explain the auth flow in this repo" --model vivgrid/gemini-3.1-pro-preview
```

See the full [Pi tutorial](/docs/tutorials/pi).

## API surfaces

The Vivgrid Console catalogs `gemini-3.1-pro-preview` on one surface, all behind the same API key. The endpoint shown is the one the Console previews for that surface.

| Surface | Primary endpoint | Use it for |
| --- | --- | --- |
| Vibe coding | `/chat/completions` | Coding CLIs and IDE agents that drive the model themselves — point the tool at Vivgrid and keep your own loop. |

## Quick start

Get an API key from the Vivgrid Console (https://console.vivgrid.com), then call `gemini-3.1-pro-preview` directly.

```bash
curl https://api.vivgrid.com/v1/chat/completions \
  -H "Authorization: Bearer $VIVGRID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-pro-preview",
    "messages": [
      { "role": "user", "content": "Say hello in English, Chinese and Spanish." }
    ],
    "stream": true
  }'
```


## Ideal use cases

- Multimodal coding and reasoning agents
- Tasks blending long text with images, video, audio, or PDFs
- Large-context analysis up to ~1M tokens
- Workflows that benefit from Gemini's native multimodality

## Related models

- [gemini-4-argon](/docs/models/gemini-4-argon) — the latest flagship Gemini release
- [gpt-6-astra](/docs/models/gpt-6-astra) — OpenAI's frontier gpt-6 coding model
- [gemini-3.8-flash](/docs/models/gemini-3.8-flash) — faster Gemini sibling
