The OrcaRouter Gemini API catalogue carries thirty rows and a header that reads Models 30 · Cheapest input $0.060/M · Median p50 4,568 ms · Max context 1M · 24h uptime 100.00 % [OURS].
Twenty-five of those rows bill per million tokens. Five bill per request, and the five are not a rounding detail: they are the image-generation models, they are priced between $0.020 and $0.240, and their rows are shaped differently from everything above them [VENDOR: the provider’s published rates, passed through with $0 markup].
| Request-billed row | Price |
| `google/imagen-4.0-fast-generate-001` | $0.020 per request |
| `google/imagen-4.0-generate-001` | $0.040 per request |
| `google/imagen-4.0-ultra-generate-001` | $0.060 per request |
| `Nano Banana 2 (Gemini 3.1 Flash Image Preview)` | $0.151 per request |
| `Nano Banana Pro (Gemini 3 Pro Image Preview)` | $0.240 per request |
The spread across those five is 12×, from two cents to twenty-four cents a call, and the ordering is not the ordering a reader would guess. The cheapest per-request row is an imagen variant; the dearest is the Nano Banana Pro; and the difference between them is not size or resolution listed anywhere in the table — it is the model behind the request.
Why the unit lives inside the cell
A table with thirty rows and one price column cannot have two units unless the unit is written into each cell, and this catalogue does exactly that. The token rows carry a bare dollar figure under a column headed “per million tokens”. The request rows carry the words “per request” after their figure and leave the output column empty.
That is a reasonable compromise and it creates a specific reading hazard. Sort the input column ascending and the five request rows sort in among the token rows: $0.020 for imagen-fast sits beside `openai` embedding prices on a sibling page, $0.060 for imagen-ultra sits exactly at the catalogue’s stated cheapest-input figure, and $0.240 sits between a Gemma row and a Flash row.
So the header statistic — Cheapest input $0.060/M — is a per-million-token claim, and the $0.060 that matches it is a per-request price on a different row [OURS]. Those are two coincidences in the same number, and a reader who takes the header as “the cheapest thing here costs $0.060” and then finds a $0.060 row will have matched a per-request figure to a per-token claim.
The actual cheapest per-token row is Gemma 4 26B A4B at $0.060 in and $0.330 out, with a 262K context and a 0.0075 cached rate. Which is the same $0.060 — this time as a per-token figure. Two different rows, same number, different units, and the header lands on the coincidence.
The conversation rate you cannot compute
For the four image rows priced per request, there is no conversion to tokens, because the request does not consume tokens in the sense the rest of the table measures.
One Nano Banana Pro call at $0.240 is twenty-four cents. At Gemma 4 26B A4B’s $0.060 per million input tokens, that same twenty-four cents buys four million tokens of text. The comparison is arithmetically valid and practically meaningless, because four million tokens of prose and one generated image are not substitutes.
What is meaningful is the comparison within the request group: generating an image with imagen-fast at $0.020 against Nano Banana Pro at $0.240 is a 12× cost difference for a call that produces one image either way [OURS arithmetic on VENDOR rates]. That is a figure you can act on, and it is invisible if you scatter the five rows among twenty-five token rows.
There is one row in the catalogue that sits between the two units and deserves its own mention: Nano Banana (Gemini 2.5 Flash Image) at $0.300 input and $30.00 output, with a 32K context and no cache price [VENDOR]. That row bills by token, in both columns, and its output rate is a hundred times its input rate — the largest output-to-input ratio anywhere in the provider set. What it really means is that the output column is charging for generated images in a token-normalised unit, which makes the row technically comparable to the other twenty-four and practically incomparable.
The per-request group and the free tier question
Five request-billed rows is a small population, and their existence raises a question the table does not answer: what happens on a retry?
A per-token charge scales with work; a per-request charge is a flat fee. If a request fails and is retried, a token-billed row bills for the tokens that were processed, and a request-billed row bills for the request. The catalogue does not say which policy applies, and the difference is material at $0.240 a call.
The honest handling is to treat the per-request price as a *unit price* rather than a *cost guarantee*: it tells you what one successful call costs, and the total depends on a retry policy that lives in the provider’s documentation rather than in this table.
There is a second consequence worth naming. Because these rows have no input or output columns in the token sense, they carry no cache price either — a request has no prefix to repeat. On a page where eighteen of the token rows do carry a cached rate, the five request rows are the ones where a prefix-heavy workload has nothing to optimise.
What the capability census says about the group
The page’s capability chips read Vision 20, Audio 19, Tools 16, Reasoning 17, JSON mode 19 across thirty rows [OURS].
Two of those stand out. Audio 19 is the highest audio count in the provider set — more than the entire Anthropic catalogue has rows. And Tools 16 is the lowest tools share of any major provider here: sixteen of thirty, against 24 of 27 on Qwen and 62 of 76 on OpenAI.
That profile matches the composition. Five image models and nineteen audio-capable rows mean a large share of this catalogue is not a text-completion endpoint, and the tool-calling count reflects how many rows are actually chat models. The catalogue is wide in modalities and narrow in the thing most agent workloads need.
For a reader choosing a row, that is the first filter: if you need tool calling, sixteen rows are candidates and the image group is not among them. If you need image generation, five rows are candidates and none of them bills by token.
How to read a mixed-unit catalogue
Four rules, all of which this page makes concrete.
Read the unit as part of the number. A cell that says `0.240 per request` and a cell that says `0.240` are not the same quantity, and a table that puts them in one column is trusting the reader to notice the words.
Never sort a mixed column and trust the order. The five request rows will interleave with token rows at every price point they touch. Sort within the group, or add a unit column before sorting.
Treat the header statistic as belonging to one group. “Cheapest input $0.060/M” is a per-token claim, and the $0.060 row that matches it is a per-request one. The cheapest token row that genuinely lives at $0.060 is Gemma 4 26B A4B, one line further down.
Check what a request buys before comparing requests. Five request-billed models at between two and twenty-four cents a call produce one output each. The useful comparison is inside the group, not across the page.
A 30-row catalogue with two billing units is not a defect; it is what a multi-modal platform looks like when it is presented as one table. The cost is that the table only works if every cell is read with its unit attached.
Sourcing note: every rate, unit label, capability count and row count in this article is read from the OrcaRouter Google provider page on 2026-10-21. The rates are the provider’s published prices passed through with $0 markup [VENDOR]; the row structure, the two-unit split, the header-to-row matching and the cross-row arithmetic are ours [OURS]. The 0-to-10 quality scores, where mentioned, are our own composite, not a third-party benchmark. No third-party evaluation figures are used. Rates change; all values checked 2026-10-21.
