Back to blog
Gemini 2.5 Pro Deprecation: Your Old Model String Becomes a Flash Model on December 1

Gemini 2.5 Pro Deprecation: Your Old Model String Becomes a Flash Model on December 1

November 2, 2026
Updated November 2, 2026By Admin

Gemini 2.5 Pro Deprecation: Your Old Model String Becomes a Flash Model on December 1

Google pulled Gemini 2.5 Pro from AI Studio on November 2. The changelog also sets a date most teams will miss: from December 1, 2026, every API call to gemini-2.5-pro gets quietly answered by gemini-3.8-flash instead.

Nothing errors. Nobody gets paged. Your app keeps returning responses, just from a different model, at a different price.

That's why this deprecation is worth an hour this week. December's bill goes down. January's might go up.

What the Gemini 2.5 Pro Deprecation Actually Does

Google's wording is direct: all API requests to gemini-2.5-pro will automatically route to gemini-3.8-flash and be billed at Gemini 3.8 Flash rates. 2.5 Flash gets the same deal, pointed at a cheaper model.

You callFrom Dec 1 you getBilled as
gemini-2.5-progemini-3.8-flash3.8 Flash
gemini-2.5-flashgemini-3.5-flash-lite3.5 Flash-Lite

Look at the Pro row again. It isn't moving to a newer Pro. It's moving down a tier, to Flash.

The deprecations page adds a detail the changelog skips. API access to 2.5 Pro is now limited to existing users who have actively used it in the past. New projects can't start on it at all.

We couldn't find any documented way to opt out or pin the old model past December 1.

Key Breaking Changes in the Gemini 3.8 Flash Migration

The model swap is the easy part. The migration guide lists request changes that'll bite older code.

  • thinking_budget is gone. You replace it with the string enum thinking_level: low, medium (the default) or high. Sending minimal will return an error on 3.8 Flash.
  • Sampling knobs are deprecated. temperature, top_p and top_k are on the way out, and candidate_count isn't supported in Gemini 3 and later.
  • No more prefilled model turns. If you seed the reply with { to force JSON, that trick's done. Multi-turn chats should use server-side previous_interaction_id.
  • Stricter function calling. On the generateContent API, every FunctionResponse needs both call_id and name.

There's no official table that maps an old token budget to a level. Pick medium, compare against high, and measure.

Here's the open question nobody's answered yet. Routing swaps the model, not your request body. Google doesn't say what happens when a routed call still carries thinking_budget or temperature, so assume it might fail and fix it first.

Gemini 3.8 Flash Pricing: The January Flip

Standard paid-tier prices from Google's pricing page, per million tokens:

ModelInputOutput
Gemini 2.5 Pro$1.25 (≤200k), $2.50 (>200k)$10 (≤200k), $15 (>200k)
Gemini 3.8 Flash, through Dec 31$0.75$3.75
Gemini 3.8 Flash, from Jan 1, 2027$1.50$7.50

December is a sale. Routed Pro traffic costs 40% less on input and 62.5% less on output.

January isn't. Input jumps to $1.50, which is higher than 2.5 Pro's $1.25 short-prompt rate. Output stays cheaper.

For prompts under 200k tokens, the break-even is exactly 10 input tokens for every output token:

  • Under 10:1 (chat, code generation, long answers): 3.8 Flash costs less than 2.5 Pro did.
  • Right at 10:1: no change. 100M in and 10M out is $225 a month on both.
  • Over 10:1 (RAG, document Q&A, classification): you pay more from January.

A concrete case: a RAG app sending 500M input tokens and getting 10M back each month. That's $725 on 2.5 Pro and $825 on 3.8 Flash in January. Roughly 14% more, for a cheaper tier of model.

Two things soften it. 3.8 Flash has no separate rate above 200k tokens, so giant prompts that hit Pro's $2.50/$15 tier get much cheaper. And cached input runs $0.075 now and $0.15 from January, so repeated context is where you claw money back.

Real-World Use Cases: Who Should Move First

RAG and document pipelines. You're the most exposed, because your input-to-output ratio is probably well over 10:1. Turn on context caching for shared documents before January.

Eval harnesses. If you pin temperature: 0 for repeatable runs, that knob's going away. Rebaseline on 3.8 Flash before you trust any score change.

Agents with tool calls. Audit every FunctionResponse for call_id and name. A broken tool loop fails quietly and burns tokens doing it.

Structured output. Drop the prefill hack. Use a strict schema or system prompt, then validate the output in code.

2.5 Flash users. Your text prices barely move, so the work is mostly the API changes.

Hard Limitations

No opt-out. If your product depends on 2.5 Pro's exact behavior, there's no documented way to keep it after December 1.

No head-to-head numbers. Google hasn't published a 2.5 Pro vs 3.8 Flash comparison. We haven't run 3.8 Flash on our own workloads either, so treat quality as unproven until you test it.

Token usage can climb. The migration guide warns long-running tasks may use more tokens, which eats into per-token savings.

Vertex AI isn't mentioned. The notice covers the Gemini API and AI Studio. If you're on Vertex, check its own docs before assuming anything.

Your Action Plan Before December 1

Don't let the auto-route make the switch for you. Do it yourself, while December prices make testing cheap.

  1. Find every call. Run grep -rnE gemini-2\.5-(pro|flash)\b|thinking_budget|top_p|top_k|candidate_count --exclude-dir=node_modules --exclude-dir=.git . and search for temperature on its own. Skip hits for gemini-2.5-flash-lite, which isn't affected.
  2. Swap the model string to gemini-3.8-flash (from Pro) or gemini-3.5-flash-lite (from Flash).
  3. Replace thinking_budget with thinking_level, starting at medium.
  4. Strip sampling params and prefills, then rerun your evals.
  5. Fix tool responses so each one carries call_id and name.
  6. Check your ratio. Divide monthly input tokens by output tokens. Over 10, budget for a bigger January bill or lean on caching.

December is the cheap month to get this right. January's price is the one you'll keep paying.