Using the latest Gemini models

This page 3.5 Flash

Gemini 3.6 Flash (gemini-3.6-flash) and Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite) are generally available (GA) and ready for production use.

  • Gemini 3.6 Flash: Stronger performance on complex agentic and multimodal tasks while reducing token usage, at a lower price point than 3.5 Flash.
  • Gemini 3.5 Flash-Lite: The fastest, lowest-cost model in the 3.5 family. Outperforms prior Flash-Lite generations for high-throughput execution.

This guide explains what's new in each model, what API changes affect your code, and how to migrate.

Gemini 3.6 Flash

  1. Install the skill:

    npx skills add google-gemini/gemini-skills --skill gemini-interactions-api --global
  2. Apply the skill:

    /gemini-interactions-api migrate my app to Gemini 3.6 Flash

Gemini 3.5 Flash-Lite

  1. Install the skill:

    npx skills add google-gemini/gemini-skills --skill gemini-interactions-api --global
  2. Apply the skill:

    /gemini-interactions-api migrate my app to Gemini 3.5 Flash-Lite

New models

Model Model ID Default thinking level Pricing Description
Gemini 3.6 Flash gemini-3.6-flash medium $1.50/1M input tokens and $7.50/1M output tokens Balances speed with intelligence for agentic and multimodal tasks.
Gemini 3.5 Flash-Lite gemini-3.5-flash-lite minimal $0.30/1M input tokens and $2.50/1M output tokens The fastest, lowest-cost 3.5 model for high-throughput execution.

Both models support the 1M token context window, 64k max output tokens, thinking, and the full suite of built-in tools including Computer Use.

For complete specs, see the model pages:

For detailed pricing, see the pricing page.

Quickstart

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.6-flash",
    input="Write a three.js script that renders an interactive 3D robot."
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const interaction = await ai.interactions.create({
    model: "gemini-3.6-flash",
    input: "Write a three.js script that renders an interactive 3D robot.",
  });
  console.log(interaction.outputText);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "model": "gemini-3.6-flash",
    "input": {
      "parts": [{"text": "Write a three.js script that renders an interactive 3D robot."}]
    }
  }'

What's new in Gemini 3.6 Flash

  • Token and turn reduction: Completes multi-step workflows with fewer reasoning steps, conversational turns, and tool calls than Gemini 3.5. It also reduces execution loop spiraling.
  • Improved code generation: Produces higher quality production-ready code with fewer unwanted edits and fewer debugging loops.
  • Better instruction following: Reduces unwanted file changes during diagnostic tasks.
  • Strong multimodal and spatial reasoning: Improved performance on chart interpretation, visual blueprint conversion, and multi-element web layout generation.
  • Upfront programmatic inspection: Prefers running diagnostic code scripts before making changes more frequently than Gemini 3.5 Flash. This improves accuracy on complex tasks, but can add extra exploratory steps on simple frontend work.
  • Computer Use support: Supported as native tool for agentic UI automation.
  • UI styling preference: Better at creating functional code, though human evaluators preferred earlier models for visual layout and styling. You can mitigate this by providing explicit design guidelines.
  • Default thinking effort (medium): Uses the same medium default thinking level as Gemini 3.5 Flash.
  • Reduced pricing: Lower output token costs ($7.50/1M vs. $9.00/1M for 3.5 Flash). Input tokens remain at $1.50/1M.

What's new in Gemini 3.5 Flash-Lite

  • Reduced task execution latency: Highest throughput in the 3.5 family for high-volume data parsing and document extraction.
  • Enhanced reasoning and multimodal performance: Strong migration path from Gemini 2.5 Flash, with higher scores on reasoning tasks like HLE (18.0% vs. 11.0%) and multimodal benchmarks like CharXIV (74.5% vs. 63.7%).
  • Subagent orchestration and tool reliability: Improves tool execution reliability for code execution, search, and MCP workflows. Increase the thinking level for autonomous planning and complex subagent tasks.
  • Improved document understanding: Improves accuracy on document parsing and structured data extraction. Experiment with both minimal and high thinking levels depending on document complexity.
  • Interactive web coding and tabular data processing: Performs strongly on frontend JavaScript and tabular data processing by planning via lightweight code execution.
  • Chatbot and persona persistence: Stronger multi-turn instruction following and persona consistency over Gemini 3.1 Flash-Lite.
  • Computer Use support: Supported as native tool for agentic UI automation.

Choosing the right Flash or Flash-Lite model

Use this table to select the right model and migration path for your workloads.

Both models require removing deprecated sampling parameters (temperature, top_p, top_k) and prefilled model turns. See API changes for details.

Model Primary use cases Recommended migration target
Gemini 3.6 Flash
gemini-3.6-flash
Code generation, spatial/multimodal reasoning, multi-step agentic workflows Gemini 3.5 Flash, Gemini 3 Flash (Preview), or Gemini 3.1 Pro
Gemini 3.5 Flash-Lite
gemini-3.5-flash-lite
Autonomous subagent execution, high-volume data analysis and document extraction, structured JSON parsing Gemini 3.1 Flash-Lite or Gemini 2.5 Flash

Updated Antigravity agent

Due to its improved performance, Gemini 3.6 Flash is now the new default model powering the Antigravity agent in Gemini Managed Agents. This can be changed by setting a new field on the API.

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Read Hacker News, summarize the top 10 stories, and save the results as a PDF.",
    environment="remote",
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "Read Hacker News, summarize the top 10 stories, and save the results as a PDF.",
    environment: "remote",
}, { timeout: 300000 });

console.log(interaction.output_text);

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
    "agent": "antigravity-preview-05-2026",
    "input": "Read Hacker News, summarize the top 10 stories, and save the results as a PDF.",
    "environment": "remote"
}'

API changes and parameter updates

Starting with Gemini 3.6 Flash and Gemini 3.5 Flash-Lite, the following API changes apply to these models and all future Gemini model releases.

  • Sampling parameter deprecation: temperature, top_p, and top_k are deprecated. The API ignores these parameters and returns an error in future model generations.
  • Prefilled model turn validation: Prefilling model turns is no longer supported. If the last non-empty turn in the request is a model turn, the API returns a 400 error.

Below are detailed explanations and code samples for each API change.

1. Sampling parameter deprecation (temperature, top_p, top_k)

temperature, top_p, and top_k are deprecated and ignored. In future model generations, supplying these parameters returns an HTTP 400 error. Remove these parameters from all requests.

# ⚠️ Remove these parameters (deprecated)
generation_config = {
     "temperature": 0.7,
     "top_p": 0.9,
     "top_k": 40,
}

To improve determinism, define a system instruction with explicit rules for your specific use case.

2. Prefilled model turn validation

API requests ending with a non-empty model role turn are disallowed and return an HTTP 400 Error.

⚠️ Avoid

In legacy generateContent or raw REST payloads, ending with a model role turn is now disallowed:

/* ❌ DO NOT: End payload contents with a 'model' role turn */
{
  "contents": [
    {"role": "user", "parts": [{"text": "Translate 'Hello world' to Spanish."}]},
    {"role": "model", "parts": [{"text": "Translation:"}]}  /* ❌ Returns error */
  ]
}

In the Interactions API, model turns are not manually prefilled. If your application previously prefilled a model turn to suppress preambles or force JSON formatting, use system_instruction or Structured outputs instead.

# ✅ RECOMMENDED: Use system_instruction in the Interactions API to specify output format
interaction = client.interactions.create(
    model="gemini-3.6-flash",
    input="Translate 'Hello world' to Spanish.",
    system_instruction="Output only the translation without introductory text.",
)

Migration checklist

Gemini 3.6 Flash

  1. Install the skill:

    npx skills add google-gemini/gemini-skills --skill gemini-interactions-api --global
  2. Apply the skill:

    /gemini-interactions-api migrate my app to Gemini 3.6 Flash

Gemini 3.5 Flash-Lite

  1. Install the skill:

    npx skills add google-gemini/gemini-skills --skill gemini-interactions-api --global
  2. Apply the skill:

    /gemini-interactions-api migrate my app to Gemini 3.5 Flash-Lite

Migrate to gemini-3.6-flash

  • Update Model ID: Change your target model string to gemini-3.6-flash.
  • Remove deprecated sampling parameters:
    • Strip temperature, top_p, and top_k from generation configs.
    • Replace thinking_budget with the string enum thinking_level set to "medium" or "high".
    • Remove candidate_count (unsupported in Gemini 3.x).
  • Enforce turn validation rules:
    • Standardize multi-turn conversations on server-side previous_interaction_id.
    • Remove prefilled model turns.
  • Audit function calling:
    • Place multimodal assets inside the response payload.
    • Format inline instructions using \n\n.
    • If you see Malformed_Function_Call errors tied to pre-tool text, see Workarounds for pre-tool text requirements.
    • Only if using generateContent API: Ensure all FunctionResponse objects include call_id and name.
  • Baseline Gemini 3.x requirements: For SDK updates and thought signature preservation, see the Gemini 3.5 Migration Checklist.

Migrate to gemini-3.5-flash-lite

  • Update Model ID: Change your target model string to gemini-3.5-flash-lite.
  • Configure thinking effort level:
    • For high-volume extraction, routing, or classification: leave thinking_level at "minimal" (default) for maximum throughput.
    • For autonomous subagents with tool calls, code execution, or multi-step reasoning: set thinking_level to "medium" or "high" to prevent premature tool termination.
  • Remove deprecated parameters and validate function calling: Apply the same rules as 3.6 Flash.
  • Baseline Gemini 3.x requirements: Refer to the Gemini 3.5 Migration Checklist.

Next steps