Gemini through a relay: choosing between Pro, Flash and Flash-Lite
How the three tiers differ
| Tier | Positioning | Typical use |
|---|---|---|
| Pro | Highest ceiling, highest cost | Complex reasoning, long document analysis, code understanding |
| Flash | Balanced capability and cost | Most production work: conversation, summarisation, extraction |
| Flash-Lite | Cost first, lowest latency | High concurrency, simple classification, batch processing |
The key judgement: on simple tasks the difference between the three is nearly invisible. So the criterion should not be "which one is stronger" but "at which tier does my task start falling short".
A practical test: take twenty real tasks and run them on Flash-Lite first, recording the share that fail → then Flash → then Pro. The first tier that pushes your pass rate past the acceptable line is your answer. That is more accurate than any benchmark.
Four selection axes
One: task complexity
- Classification, extraction, format conversion, rewriting: Flash-Lite is usually enough. The correct answer is determinate and no strong reasoning is needed.
- Summarisation, Q&A, code generation: start at Flash.
- Multi-step reasoning, complex refactoring, cross-referencing long documents: Pro.
Two: latency sensitivity
This axis is often overlooked and matters a great deal:
- Flash-Lite's time to first token is clearly lower than Pro's.
- In interactive settings such as code completion, real-time conversation and agent loops, latency often matters more than capability differences, because an agent waits at every step and the delays accumulate.
A rule of thumb: if one user action sits behind five or more model calls, weight latency higher and favour the low-latency tier.
Three: context length requirements
Long context is the Gemini family's traditional strength. Three cautions:
- The context ceiling differs by tier. It is not uniform across the family.
- Long context means a large request body, which runs into reverse proxy size limits. See our article on context length and truncation.
- Long context takes noticeably longer to process, which makes timeouts more likely.
So when you genuinely need long context, first confirm the ceiling at every link in the chain — client, relay, upstream — and only then choose a tier.
Four: cost
Price differences between the three tiers can reach an order of magnitude. On batch workloads, therefore, tier choice affects total cost far more than negotiating a discount.
One practical approach: send batch work to the lowest tier by default, and rerun only the failures at a higher tier. Sample 5% to 10% for human quality review.
Four things to watch when reaching Gemini through a relay
1. Protocol shape
Gemini's native protocol differs substantially from OpenAI's format. A relay site usually offers two shapes:
- OpenAI-compatible endpoint:
/v1/chat/completions, with a Gemini-family model name. - Gemini native endpoint:
/v1beta/models/...:generateContent, which fewer sites provide.
Which to use: if your code is already built on an OpenAI SDK, the compatible endpoint means less change. But note that multimodal and tool-call conversion quality under OpenAI format varies a lot, as the next two points explain.
2. How multimodal input is carried
Gemini natively supports image, audio and video input. Through an OpenAI-compatible endpoint, however:
- image input usually passes through, since OpenAI also has the image_url format;
- audio and video input essentially does not work, because OpenAI format has no corresponding field.
So if you need audio or video input, confirm whether the site offers the Gemini native endpoint.
3. Tool call conversion quality
Gemini's function calling structure, functionDeclarations, differs substantially from OpenAI's tools. After conversion through a relay you may see:
- context lost across turns;
- argument types drifting, a number arriving as a string.
You must test this: run the four cases from our tool use compatibility article.
4. Model naming
Gemini's version naming is fairly chaotic, with many variants carrying -preview or -exp suffixes, and different relay sites carry different variants.
What to do: take the list returned by /v1/models as authoritative. Do not use names from official documentation.
A selection conclusion
Default starting tier: Flash.
The reason: it is the intersection of "capable enough, controllable cost, acceptable latency". Get the whole pipeline working on it first, then adjust up or down for specific stages — rather than starting at the top tier, which leaves you knowing neither where the money goes nor what downgrading would cost you.
The right way to use Flash-Lite is not as a replacement for Flash, but as the tier that carries batch work not needing strong capability. Draw that boundary clearly and cost falls noticeably with almost no perceptible loss of experience.
Was this useful? If you have run into something the article does not cover, tell us and we will verify it and update the text.
Related articles
Video generation behind a relay: three API shapes, four billing traps, one acceptance checklist
MCP through a relay: what works, what never will, and how to test it in ten minutes
A relay selection decision tree: working back from your scenario to a site
Logging and reconciliation: attributing token spend to the project level
Migrating suppliers gradually: replacing an API site without interrupting service
Build your own probe: twenty lines of script to monitor your API suppliers
The models this article mentions are available on these services
Filtered by the model families the article mentions and ordered by overall score and uptime. This is not a recommendation. Click through to see each service's uptime, latency and endpoint verification.
See the full list in the directory, or browse by model family.