Model Details
Gemini 3.7 Flash is a **thinking model**: it reasons internally before answering, which makes it markedly stronger on complex coding, multi-step agentic workflows and reliable tool use than a single-pass model of similar cost.
Thinking is on by default at a `medium` level and is tunable (`low`, `medium`, `high`) — more thinking generally means better answers on hard problems and higher cost, since **thinking tokens are billed as output tokens**. It supports a 1M-token context window and up to 64k output tokens.
Served through the **OpenAI-compatible chat completions API**:
``` POST https://queue.modelrunner.run/google/gemini-3.7-flash/chat/completions ```
Point any OpenAI SDK or OpenAI-compatible tool at `base_url = https://queue.modelrunner.run/google/gemini-3.7-flash` with your ModelRunner API key. Streaming, tool calling and JSON mode all work.
⚠️ This generation **no longer accepts the `temperature`, `top_p` and `top_k` sampling parameters**. Tools that send them by default may need them disabled.
Billing is per token from the model's own reported usage, thinking tokens included. Cached input is billed at a reduced rate.
The request body follows OpenAI's chat completions shape: a `messages` array of `system`/`user`/`assistant`/`tool` turns, `reasoning_effort` (`low`/`medium`/`high`, default `medium`) to trade thinking depth for cost, a `max_tokens` cap (thinking consumes this budget, so leave generous headroom), a `seed` for best-effort determinism, and up to four `stop` sequences. Pass an OpenAI-format `tools` array with `tool_choice` for function calling, and set `response_format` to `{"type": "json_object"}` for guaranteed-valid JSON. Responses come back as a standard ChatCompletion object; `usage.completion_tokens_details.reasoning_tokens` reports how many tokens went to thinking versus the visible reply.
Pricing is $2.10 per 1M input tokens, $0.21 per 1M cached input tokens, and $10.50 per 1M output tokens (thinking tokens bill at the output rate). Reach for this tier over Gemini 3.5 Flash when a task genuinely benefits from multi-step reasoning — non-trivial coding, agentic tool-use loops with several dependent steps, or problems where a single-pass answer is often wrong — and drop `reasoning_effort` to `low` when speed matters more than depth.
