Gemini 3.6 Flash vs 3.5 Flash-Lite: API migration and routing guide
Quick answer
Google released gemini-3.6-flash and gemini-3.5-flash-lite as generally available Gemini API models on July 21, 2026. Both support a 1-million-token context window, up to 64K output tokens, thinking, and built-in tools including Computer Use. They solve different production jobs:
- Use Gemini 3.6 Flash for coding, multimodal reasoning, and multi-step agent workflows where accepted results matter more than the lowest possible cost.
- Use Gemini 3.5 Flash-Lite for extraction, classification, routing, and high-volume subagent work where latency and unit economics dominate.
Do not treat this as a model-ID-only upgrade. These models deprecate temperature, top_p, and top_k, reject conversations that end with a prefilled model turn, and continue the Gemini 3.x migration away from numeric thinking budgets. Remove incompatible fields, run both models through the same task fixtures, and route by workload before changing a production default.
Who this guide is for
This guide is for teams migrating a Gemini API application, coding agent, or automation system.
If you are evaluating other current models, compare the same fixtures with the Kimi K3 rollout guide and Grok 4.5 coding-agent checklist. If the model can execute repository commands, keep the untrusted-repository sandbox gate independent of model choice.
What changed
The new stable models add a useful two-tier route instead of one universal replacement:
| Model | Default thinking | Input / 1M tokens | Output / 1M tokens | Best first test |
|---|---|---|---|---|
| Gemini 3.6 Flash | medium |
$1.50 | $7.50 | Coding, multimodal analysis, tool-heavy planning |
| Gemini 3.5 Flash-Lite | minimal |
$0.30 | $2.50 | Extraction, classification, routing, cheap subagents |
Google says 3.6 Flash uses fewer turns and tool calls than 3.5 Flash, makes fewer unwanted code edits, and improves agentic and spatial tasks. It now powers the Antigravity managed agent by default. Human evaluators still preferred earlier models for some visual styling, so keep screenshot review.
Flash-Lite is the throughput route. Keep minimal for bounded tasks; test medium or high for autonomous planning and complex tools. Higher thinking can erase its latency and cost advantage.
Route by task, not by model rank
Start with this router, then test assumptions:
| Workload | Start with | Promote when | Keep a fallback to |
|---|---|---|---|
| Repository diagnosis or multi-file implementation | 3.6 Flash | Acceptance rises without extra unwanted edits | Current coding model |
| Screenshot-to-code or chart interpretation | 3.6 Flash | Visual fixtures and browser checks pass | Human-reviewed baseline |
| Document extraction or strict JSON parsing | 3.5 Flash-Lite | Schema pass rate holds at target throughput | 3.6 Flash for hard cases |
| Triage, labeling, or request routing | 3.5 Flash-Lite | False-route rate stays below threshold | Rules or current classifier |
| Autonomous subagent with several tools | Flash-Lite at medium, then 3.6 Flash |
Tool completion improves enough to justify cost | One-step manual escalation |
For 100K input and 10K output tokens, listed-token cost is about $0.225 on 3.6 Flash and $0.055 on Flash-Lite. Compare cost per accepted task, not per request.
Migrate the request contract first
Start with the smallest current Interactions API request:
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.6-flash",
input="Inspect this failure and return the most likely cause.",
system_instruction="Do not modify files. Return evidence before recommendations.",
)
print(interaction.output_text)
Then audit the production adapter:
- Replace the model ID with
gemini-3.6-flashorgemini-3.5-flash-litebehind a routing flag. - Remove
temperature,top_p, andtop_k; these fields are deprecated and ignored now, and future model generations will return HTTP 400. - Replace
thinking_budgetwith the stringthinking_level; remove unsupportedcandidate_count. - Remove prefilled model turns. If the final non-empty turn has the
modelrole, the request returns HTTP 400. Usesystem_instructionand structured outputs instead. - Standardize multi-turn state on
previous_interaction_id. ForgenerateContent, preserve required thought signatures and includecall_idplusnamein every function response. - Record model ID, thinking level, input/output tokens, tool rounds, latency, HTTP status, schema result, and human acceptance without logging secrets or sensitive prompt contents.
Six-case canary gate
| Case | Probe | Pass condition |
|---|---|---|
| Contract | Send removed sampling fields and a prefilled model turn in disposable negative tests | Monitoring identifies the expected deprecation or HTTP 400 instead of silently corrupting output |
| Quality | Run 20 representative tasks on the old route, 3.6 Flash, and Flash-Lite | Blind acceptance rate and unwanted-edit rate are recorded under one harness |
| Tools | Exercise search, code execution, function calls, and one failure/retry path | Call IDs match, retries are bounded, and the agent stops on permission boundaries |
| Structure | Validate extraction and refusal cases against the production JSON Schema | Invalid output never reaches downstream writes |
| Cost | Replay short, long-context, and multi-turn tasks | Cost per accepted task and p95 latency stay within explicit budgets |
| Rollback | Disable the route flag during a canary | New sessions return to the prior model without reusing incompatible conversation state |
Promote one workload at a time: 5%, then 25%, then the target share. Stop on schema regressions, unexpected tool actions, budget breaches, or lower acceptance.
Common mistakes
- Sending legacy sampling fields because the API still ignores them today.
- Choosing 3.6 Flash for every subagent and paying frontier-model prices for deterministic extraction.
- Choosing Flash-Lite for complex autonomous planning while leaving thinking at
minimal. - Hot-switching a live conversation between incompatible request contracts.
- Claiming Gemini API availability means the same model is enabled in every Google or third-party product.
- Measuring tokens and latency but not whether the result was actually accepted.
FAQ
Is Gemini 3.6 Flash cheaper than Gemini 3.5 Flash?
Input remains $1.50 per million tokens while output falls from $9.00 to $7.50. Fewer turns and tool calls can matter more than the rate.
Is 3.5 Flash-Lite a good coding model?
It handles lightweight web coding and subagents, but its strongest case is high-throughput bounded work. Start complex repository changes on 3.6 Flash and test fixtures before rerouting.
Can I keep using generateContent?
Yes, but Google recommends the GA Interactions API for the latest models and features. On either surface, test deprecated fields, conversation state, thought signatures, and function responses.
Top comments (0)