# Gemini 2.5 Pro Deprecated: What Changes on December 1

> On December 1, 2026 Google routes every gemini-2.5-pro request to gemini-3.8-flash at 3.8 Flash prices. What breaks, what to change and the price math.

- Canonical HTML: https://omniakey.com/blog/gemini-2-5-pro-deprecated-migration-guide
- Markdown: https://omniakey.com/blog/gemini-2-5-pro-deprecated-migration-guide.md
- Published: 2026-11-04 (updated 2026-11-04)
- Author: Kiki, COO at OmniaKey
- Language: en
- Category: Guide
- Reading time: 8 min
- All posts: https://omniakey.com/blog/llms.txt

---

On December 1, 2026, Google sends every [Gemini 2.5 Pro](https://omniakey.com/gemini-2-5-pro) request to [Gemini 3.8 Flash](https://omniakey.com/gemini-3-8-flash) and bills it at 3.8 Flash rates: $0.75 per million input tokens and $3.75 per million output tokens through December 31, 2026 (Google's deprecations page, checked November 4, 2026). Calls keep succeeding on the day. Payloads written for the old model do not, and most of the fixes are small.

Three edits cover most of the work:

- change the model string to `gemini-3.8-flash`;
- replace `thinking_budget` with `thinking_level`;
- remove `temperature`, `top_p`, `top_k`, `candidate_count` and prefilled model turns.

The other three steps cover multi-turn state, function calling and the SDK. Each one gets a number below, with what you see if you skip it.

## What happens on December 1?

The date comes from Google's release notes, not a countdown page. The entry headed November 2, 2026 marks `gemini-2.5-pro` as deprecated and says all API requests will automatically go to `gemini-3.8-flash` and be billed at Gemini 3.8 Flash rates (Google's release notes, checked November 4, 2026).

The deprecations table adds the dates around it: released June 17, 2025, shutdown December 1, 2026, replacement `gemini-3.8-flash` (checked November 4, 2026). The model page is narrower still: API access is limited to existing users who have actively used it, and only until December 1, 2026. The AI Studio picker has already dropped the model.

One detail is worth reading twice. The same table row gives December 1, 2026 as a shutdown date and promises automatic forwarding to 3.8 Flash. Google does not say whether a forwarded call reports `gemini-2.5-pro` or `gemini-3.8-flash` in the response, so log the model ID you get back on the first day.

Whatever the response says, the replacement is stable: `gemini-3.8-flash` shipped September 2, 2026, has one stable version ID, and has no shutdown date announced (Google's deprecations page, checked November 4, 2026).

## What the reroute means for your code and your bill

The existing-users rule applies now, before December 1: Google's 2.5 Pro model page says API access is limited to existing users who have actively used it, and only until December 1, 2026 (checked November 4, 2026). Test the key your team actually deploys with before you plan the rest of the work.

The two models are closer than that rule suggests. Both models take 1,048,576 input tokens and return up to 65,536, both read text, images, video, audio and PDF, and both return text (Google's model pages, checked November 4, 2026). Differences show up at the edges: the 3.8 Flash page lists computer use as supported, and the 2.5 Pro page has no computer-use row. Audio generation, image generation and Live API are marked unsupported on both.

Then the bill. From December 1 you pay 3.8 Flash rates for the same request. Before that date, 2.5 Pro keeps its own price and its 200,000-token tier.

## What breaks when you move to 3.8 Flash

Six request shapes change behavior, and function calling needs the most careful pass. Google's 3.8 Flash migration checklist names each change (checked November 4, 2026).

|What you send|What happens|What to change|
|-|-|-|
|`thinking_budget`|replaced in the 3.8 request|send `thinking_level`|
|`thinking_level: "minimal"`|returns an error|use `low`, `medium` or `high`|
|`temperature`, `top_p`, `top_k`|ignored now, HTTP 400 in future generations|delete them|
|`candidate_count`|unsupported in Gemini 3 and later|one candidate per call|
|a final turn with `role: "model"`|HTTP 400|move the rule into `system_instruction`|
|`FunctionResponse` without `call_id` and `name`|`Malformed_Function_Call`|add both fields|

The sampling parameters are the quiet failure. Google's 3.6 notes say `temperature`, `top_p` and `top_k` are deprecated and ignored today, and that supplying them returns an HTTP 400 in future model generations (checked November 4, 2026). Ignored is worse than rejected for a tuned prompt: your determinism settings stop doing anything and no error tells you.

Prefill is the loud one. A request whose last non-empty turn is a `model` turn returns HTTP 400, and the fix is `system_instruction` or structured outputs (Google's 3.6 notes, checked November 4, 2026). Multi-turn conversations should carry `previous_interaction_id` instead of a rebuilt transcript with a prefilled last turn.

For function calling, put multimodal assets inside the response payload, separate inline instructions with `\n\n`, and use Google's workaround if `Malformed_Function_Call` appears around pre-tool text. On the legacy `generateContent` call, every `FunctionResponse` needs `call_id` and `name`.

Thought signatures are the sixth item, and they matter when your SDK is older than the model. Google's checklist sends you to its thought-signature page for SDK updates and signature preservation.

## The six code changes, step by step

Work in this order. The first two touch every request; the rest touch specific features.

1. **Change the model string.** Send `gemini-3.8-flash` instead of `gemini-2.5-pro`, in config rather than in a retry helper, so logs show the ID you meant to call.
2. **Replace the thinking budget.** `thinking_budget` becomes `thinking_level` with `low`, `medium` or `high`. `medium` is the default and `minimal` returns an error.
3. **Delete the sampling parameters and the prefilled turn.** `temperature`, `top_p`, `top_k`, `candidate_count` and a trailing `model` turn all go.
4. **Move multi-turn state.** Standardize on server-side `previous_interaction_id`.
5. **Audit function calling.** Assets inside the response payload, `\n\n` between inline instructions, `call_id` and `name` on every `FunctionResponse`.
6. **Update the SDK and keep thought signatures.** The 3.8 checklist links Google's thought-signature page for this.

The request diff fits in one block. Before:

```json
{
  "model": "gemini-2.5-pro",
  "contents": [{"role": "user", "parts": [{"text": "Summarize the attached invoice."}]}],
  "generation_config": {
    "thinking_budget": 8192,
    "temperature": 0.7,
    "top_p": 0.9
  }
}
```

After:

```json
{
  "model": "gemini-3.8-flash",
  "contents": [{"role": "user", "parts": [{"text": "Summarize the attached invoice."}]}],
  "generation_config": {
    "thinking_level": "medium"
  }
}
```

Run one real request on `gemini-3.8-flash` before December 1 and log the model ID in the response.

If you want another way to call `gemini-3.8-flash` during the changeover, the [Gemini 3.8 Flash model page](https://omniakey.com/gemini-3-8-flash) lists the ID, the 1M context and the three thinking levels. Current rates for both models are on the [pricing page](https://omniakey.com/pricing).

## The price difference

On the standard paid tier, 3.8 Flash costs less than half of 2.5 Pro on output and 40% less on input until December 31, 2026 (Google's pricing page, checked November 4, 2026).

|Model|Input per 1M|Output per 1M|
|-|-|-|
|`gemini-2.5-pro`, up to 200k|$1.25|$10.00|
|`gemini-2.5-pro`, over 200k|$2.50|$15.00|
|`gemini-3.8-flash`, to Dec 31 2026|$0.75|$3.75|
|`gemini-3.8-flash`, from Jan 1 2027|$1.50|$7.50|

A request with 100,000 input tokens and 20,000 output tokens makes the gap concrete. On 2.5 Pro it costs $0.125 + $0.20 = $0.325. On 3.8 Flash it costs $0.075 + $0.075 = $0.15 through December 31, 2026, and $0.15 + $0.15 = $0.30 from January 1, 2027.

Read the 2027 row before you celebrate. Input rises 20% above 2.5 Pro's $1.25, and output stays 25% below 2.5 Pro's $10.00. A request that is mostly input will cost more next year than it does on 2.5 Pro today.

Batch pricing keeps the same shape: 2.5 Pro charges $0.625 input and $5.00 output up to 200k tokens, and 3.8 Flash charges $0.375 and $1.875 through December 31, 2026 (Google's pricing page, checked November 4, 2026).

The full rate card, with caching, Priority and the 2027 numbers, is in the [Gemini 3.8 Flash pricing guide](https://omniakey.com/blog/gemini-3-8-flash-api-pricing).

## 2.5 Flash and 2.5 Flash-Lite

2.5 Flash takes the same December 1 date; 2.5 Flash-Lite does not.

|Model|Shutdown|Replacement|
|-|-|-|
|`gemini-2.5-flash`|December 1, 2026|`gemini-3.5-flash-lite`|
|`gemini-2.5-flash-lite`|none announced|stays available|

Google's deprecations page (checked November 4, 2026) puts `gemini-2.5-flash` on the same terms as 2.5 Pro: released June 17, 2025, requests go to `gemini-3.5-flash-lite` from December 1, 2026, and billing moves to 3.5 Flash-Lite rates. `gemini-2.5-flash-lite` is not deprecated and remains available until further notice.

Two audio IDs need their own calendar entry. `gemini-2.5-pro-preview-tts` and `gemini-2.5-flash-preview-tts` shut down on November 17, 2026, replaced by `gemini-3.8-flash-tts` or `gemini-3.8-flash-lite-tts`.

The older pinned 2.5 Pro previews are already off. `gemini-2.5-pro-preview-03-25`, `-05-06` and `-06-05` have a December 2, 2025 shutdown date, so a config that still names one of them is failing today.

## Frequently asked questions

### Is gemini 2.5 pro deprecated?

Yes. Google's release notes dated November 2, 2026 mark `gemini-2.5-pro` as deprecated, and the deprecations page sets December 1, 2026 as the date every API request moves to `gemini-3.8-flash` (checked November 4, 2026). The model is already gone from the AI Studio picker.

### What happens to my calls on December 1, 2026?

They keep returning answers. Google says requests to `gemini-2.5-pro` automatically go to `gemini-3.8-flash` and are billed at 3.8 Flash rates. The same table also lists December 1, 2026 as a shutdown date, and Google does not say which model ID the response reports, so log it on the first day.

### Is Gemini 2.5 Pro still in AI Studio?

No. Google removed `gemini-2.5-pro` from the AI Studio picker and limits API access to existing users who have actively used it, until December 1, 2026 (Google's deprecations and model pages, checked November 4, 2026).

### Will my code break if I change nothing?

Expect failures where 3.8 Flash rejects an old field: `thinking_level: "minimal"`, `candidate_count`, a final `model` turn, and `FunctionResponse` objects without `call_id` and `name`. `thinking_budget` has to become `thinking_level`, and `temperature`, `top_p` and `top_k` are already ignored. Google's migration guide lists each change, and a request ending on a non-empty `model` turn already returns HTTP 400.

### How much cheaper is Gemini 3.8 Flash?

Through December 31, 2026 it is 40% cheaper on input and 62.5% cheaper on output than 2.5 Pro below 200k tokens: $0.75 against $1.25, and $3.75 against $10.00 per million. From January 1, 2027, input costs 20% more than 2.5 Pro and output costs 25% less.

## Sources checked

- [Google Gemini API deprecations](https://ai.google.dev/gemini-api/docs/deprecations)
- [Google Gemini API release notes](https://ai.google.dev/gemini-api/docs/changelog)
- [Migrate to Gemini 3.8 Flash](https://ai.google.dev/gemini-api/docs/whats-new-gemini-3.8)
- [Gemini 3.6 API changes and parameter updates](https://ai.google.dev/gemini-api/docs/whats-new-gemini-3.6)
- [Gemini 2.5 Pro model page](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-pro)
- [Gemini 3.8 Flash model page](https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash)
- [Gemini API pricing](https://ai.google.dev/gemini-api/docs/pricing)
