Gemini 3.5 Flash
Gemini 3.5 Flash advances the Flash line with improved coding proficiency, parallel agentic execution, stronger core reasoning, tighter instruction following, and higher-quality reasoning traces in thinking mode.
View API reference- Input and output price
- Prices from: Input $1.50, Output $9, Per 1M tokens
- 24h uptime
- Loading AI Gateway uptime
import { streamText } from 'ai'
const result = streamText({ model: 'google/gemini-3.5-flash', prompt: 'Why is the sky blue?'})Copy link to headingPlayground
Try out Gemini 3.5 Flash by Google. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.
Gemini 3.5 Flash
Copy link to headingProviders
Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.
| Provider |
|---|
Copy link to headingUptime24 hours
Direct request success rate on AI Gateway and per-provider. Visit the docs for more info.
Copy link to headingThroughput24 hours
P50 throughput on live AI Gateway traffic, in tokens per second (TPS). Visit the docs for more info.
Copy link to headingLatency24 hours
P50 time to first token (TTFT) on live AI Gateway traffic, in milliseconds. View the docs for more info.
Getting started
Call Gemini 3.5 Flash through AI Gateway with the AI SDK generateText and streamText functions, or through the OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages APIs by changing the base URL. AI Gateway authenticates the request and routes it to an available provider.
Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the text generation quickstart.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', prompt: 'Why is the sky blue?', });
console.log(result.text);}
main().catch(console.error);Top-level parameters
The same Gemini 3.5 Flash request in each API format AI Gateway supports.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', system: 'You are a concise technical assistant.', prompt: 'Summarize the tradeoffs between static generation and SSR.', maxOutputTokens: 1024, });
console.log(result.text);}
main().catch(console.error);Standard parameters like prompt, messages, temperature, and tools work as documented in the AI SDK docs. These are the parameters with model-specific behavior.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model ID in the form creator/model, e.g. google/gemini-3.5-flash. AI Gateway routes the request to an available provider. |
maxOutputTokens | number | No | Hard cap on generated tokens. Gemini 3.5 Flash supports up to 64,000 output tokens. Reasoning tokens count toward this limit. |
reasoning | 'provider-default' | 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | No | Provider-agnostic reasoning effort, available in AI SDK 7 or later. Maps to the provider’s native reasoning configuration; reasoning settings under providerOptions take precedence when both are set. See the Reasoning section below. |
providerOptions | Record<string, JSONValue> | No | AI Gateway routing options under gateway, plus any provider-native options under the provider’s own namespace — see the table below. |
Input limits
| Input | Formats | Sources | Max count | Max size | Limits |
|---|---|---|---|---|---|
| Text | — | — | — | — | Prompt and response share the 1M-token context window |
| Image | — | URL, base64, Uint8Array | — | — | Sent as image parts in messages; counts as input tokens |
| — | URL, base64, Uint8Array | — | — | Sent as file parts in messages; counts as input tokens |
Provider options
Set AI Gateway routing options under providerOptions.gateway. For provider-specific options, pass them under the provider’s namespace as documented by the AI SDK.
Learn more in the AI SDK google provider docs.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', prompt: 'Why is the sky blue?', providerOptions: { gateway: { only: ['google', 'vertex'], }, }, });
console.log(result.text);}
main().catch(console.error);These AI Gateway routing options apply to every model. Provider-specific options pass through under the provider’s own namespace (for example providerOptions.anthropic) exactly as documented by the AI SDK.
| Parameter | Type | Required | Description |
|---|---|---|---|
providerOptions.gateway.only | string[] | No | Restrict routing to these provider slugs. Requests fail over only within the listed providers. |
providerOptions.gateway.order | string[] | No | Preferred provider order. Listed providers are tried first; unlisted providers remain available as fallbacks. |
providerOptions.gateway.sort | 'cost' | 'ttft' | 'tps' | No | Rank candidate providers by price, time to first token, or tokens per second instead of the default routing order. |
providerOptions.gateway.zeroDataRetention | boolean | No | Route only to providers with a zero-data-retention policy for this model. |
Routing across providers
AI Gateway serves the same model through multiple providers and fails over automatically. order expresses a preference while keeping every provider eligible; only is a hard allowlist — if none of the listed providers are available the request fails instead of falling back.
Options under a provider's own namespace (for example providerOptions.anthropic) are forwarded to that provider with the request. Providers ignore option namespaces that don't apply to them, so it is safe to set provider options alongside gateway routing options.
Reasoning
AI Gateway bridges reasoning across every API format. The AI SDK exposes a provider-agnostic top-level reasoning level (none, minimal, low, medium, high, or xhigh); the Chat Completions and Responses formats take the same effort under reasoning.effort; and the Anthropic Messages format uses a native thinking token budget. Whichever you send, the gateway maps it to the target model’s native configuration, converting between effort levels and token budgets as needed. Reasoning-related settings under providerOptions take full precedence over the top-level reasoning value and are never merged. Reasoning tokens typically count toward your output-token usage, though how they’re reported and billed varies by provider.
Learn more in the AI Gateway reasoning guide.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', prompt: 'Explain the Monty Hall problem step by step.', reasoning: 'high', });
console.log(result.text);}
main().catch(console.error);Image input
Send images alongside text as message parts. Images count as input tokens.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', messages: [ { role: 'user', content: [ { type: 'text', text: 'Describe this image.' }, { type: 'image', image: 'https://example.com/photo.jpg' }, ], }, ], });
console.log(result.text);}
main().catch(console.error);PDF input
Attach PDFs as file parts. Their contents count as input tokens.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', messages: [ { role: 'user', content: [ { type: 'text', text: 'Summarize this document.' }, { type: 'file', mediaType: 'application/pdf', data: 'https://example.com/document.pdf', }, ], }, ], });
console.log(result.text);}
main().catch(console.error);Tool calling
Expose tools the model can call. Define each tool’s inputs with a Zod schema.
import { generateText, tool } from 'ai';import { z } from 'zod';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'google/gemini-3.5-flash', prompt: 'What is the weather in San Francisco?', tools: { getWeather: tool({ description: 'Get the current weather for a location', inputSchema: z.object({ location: z.string() }), execute: async ({ location }) => ({ location, temperatureC: 18 }), }), }, });
console.log(result.text);}
main().catch(console.error);Copy link to headingAbout Gemini 3.5 Flash
Gemini 3.5 Flash is Google's update to the Flash tier, building on Gemini 3 Flash with focused improvements for coding workflows and agentic execution. Coding proficiency and parallel agentic execution loops both improve over previous Flash versions, which makes Gemini 3.5 Flash a better fit for agents that issue concurrent tool calls or refactor code across multiple files in one pass.
Core reasoning, instruction following, and multi-turn coherence all see upgrades. For complex tasks the model produces higher-quality reasoning traces in thinking mode, which is useful when you need to audit the model's intermediate steps or train downstream systems on chain-of-thought data. Gemini 3.5 Flash defaults to the medium thinking level, balancing quality against faster, more cost-efficient generation, and exposes thinkingLevel and includeThoughts through providerOptions for finer control.
Because Gemini 3.5 Flash sits at the intersection of agentic capability and Flash-tier throughput, it suits production traffic patterns from low-latency chat interfaces to high-volume code-transformation pipelines. Accessing Gemini 3.5 Flash through AI Gateway adds observability, automatic retries, and provider failover without requiring a Google Cloud account.
Copy link to headingWhat To Consider When Choosing a Provider
- Configuration: Gemini 3.5 Flash defaults to the
mediumthinking level. SetthinkingLevelto'high'viaproviderOptions.google.thinkingConfigwhen the task demands deeper reasoning, and enableincludeThoughtsto surface the model's intermediate steps. Parameters liketemperature,topP,topK, andthinking_budgetare not supported. - Zero Data Retention: Zero Data Retention is available for this model. It is offered on a per-provider and model basis. See the documentation for details.
- Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.
Copy link to headingWhen to Use Gemini 3.5 Flash
Best for
- Agentic coding workflows: Parallel tool calls and multi-file refactors benefit from improved coding proficiency and parallel execution
- Multi-turn assistants: Instruction following and conversational coherence drive task completion across long sessions
- Auditable agent pipelines: Higher-quality reasoning traces in thinking mode aid debugging and downstream chain-of-thought data
- Cost-sensitive production traffic: The default
mediumthinking level balances quality with throughput - Gemini 3 Flash migrations: Teams on the previous Flash version get the latest coding and agentic improvements without changing tier
Consider alternatives when
- Deepest reasoning required: Latency and cost are secondary (consider
google/gemini-3-pro-previeworgoogle/gemini-3.1-pro-preview) - Native image generation needed: Image output is part of the task (consider
google/gemini-3-pro-imageorgoogle/gemini-3.1-flash-image-preview) - Throughput and budget dominate: Reasoning depth is not required (consider
google/gemini-3.1-flash-lite-preview) - Sampling parameters required: Your code depends on
temperature,topP,topK, orthinking_budget, which Gemini 3.5 Flash does not support
Copy link to headingConclusion
Gemini 3.5 Flash is the right Flash-tier choice for teams building coding agents, parallel tool-using workflows, and instruction-heavy assistants on AI Gateway. It carries the Flash speed and cost profile while adding the coding, agentic, and reasoning-trace improvements that production teams have been asking for in the Flash line.
Copy link to headingFrequently Asked Questions
What's new in Gemini 3.5 Flash versus Gemini 3 Flash?
Gemini 3.5 Flash improves coding proficiency and supports more reliable parallel agentic execution loops. Core reasoning, instruction following, and multi-turn coherence are all stronger, and thinking-mode outputs include higher-quality reasoning traces.
How do I control how much Gemini 3.5 Flash thinks before responding?
Set
thinkingLevel(for example'high') andincludeThoughts: trueunderproviderOptions.google.thinkingConfigwhen using the AI SDK plus Chat Completions / Responses / Messages APIs. Gemini 3.5 Flash defaults to themediumlevel.Which sampling parameters does Gemini 3.5 Flash support?
Gemini 3.5 Flash does not support
temperature,topP,topK, orthinking_budget. If your application depends on those parameters, evaluate a different model before migrating production traffic.Is Gemini 3.5 Flash suitable for agentic coding tasks?
Yes. Improved coding proficiency and parallel agentic execution make Gemini 3.5 Flash well-suited for refactoring services, running concurrent tool calls, and multi-step code transformation workflows where reliability across steps matters.
Does Gemini 3.5 Flash support streaming?
Yes. Use
streamTextfrom the AI SDK plus Chat Completions / Responses / Messages APIs withmodel: 'google/gemini-3.5-flash'for streaming responses.Do I need a Google Cloud account to use Gemini 3.5 Flash on AI Gateway?
No. AI Gateway manages provider authentication. Connect using a Vercel API key or OIDC token and AI Gateway handles routing to the underlying provider.
How does Zero Data Retention work with Gemini 3.5 Flash through AI Gateway?
Yes, Zero Data Retention is available for this model. Zero Data Retention is offered on a per-provider basis. See https://vercel.com/docs/ai-gateway/capabilities/zdr for details.
When should I use Gemini 3.5 Flash versus Gemini 3.1 Pro?
Choose Gemini 3.5 Flash when Flash-tier latency and cost matter and the task fits within the Flash quality envelope. Choose Gemini 3.1 Pro for the deepest reasoning, long agentic sessions, or finance and spreadsheet workloads that benefit from pro-tier capability.