How to See Gemini and Vertex AI Token Usage From Your GCP Bill

GuidesJuly 22, 2026Updated August 4, 2026By Andrew Day3 min read

Most ways to track LLM token usage need instrumentation: an SDK wrapper, a logging middleware, or a proxy in front of the model. For Google's Vertex AI and Gemini API, you don't need any of that — the token usage is already itemised in your Google Cloud billing export. StackSpend reads it straight from there.

This matters because instrumentation is exactly the thing platform teams can't always add: you can't wrap a model call that runs in someone else's service, and you don't want a proxy in the hot path. Reading the bill is agentless by construction.

Where the tokens actually are

Google's standard BigQuery billing export itemises Vertex AI and Gemini spend down to the SKU — and for generative models, those SKUs are token-denominated. A single day's export contains lines like "Generate content input token count Gemini 2.5 Flash" and "Generate content output token count Gemini 2.5 Pro", each carrying the token quantity and the cost. The model, the direction (input vs output vs cached), and the token count are all right there in the description.

The catch is that Google's SKU descriptions are free-form prose and change constantly as new models ship, and some token SKUs are billed under a requests unit rather than tokens. A naive parser misses them, which is why raw GCP cost tools show you a dollar figure but no tokens.

How StackSpend reads it

StackSpend connects to the same billing export you'd use for cost — no extra permission, no second integration — and does three things the raw export doesn't:

  1. Recognises token-denominated SKUs even when Google labels them with a requests unit, so the token quantities aren't silently dropped.
  2. Extracts the model, direction, and modality from the SKU description — resolving "Gemini 2.5 Flash Text Input" to the model gemini-2.5-flash, the input direction, and the token count.
  3. Classifies novel SKUs with an LLM when a brand-new wording appears that no rule matches, so a newly released model shows up correctly without waiting for a code change.

The result lands in the AI Explorer alongside every other provider: Vertex and Gemini usage by model, in tokens, with the input/output/cache split — from the bill you already export.

What you can and can't get this way

Reading the bill gives you model- and project-level token usage for Vertex and Gemini, because the export carries the model SKU and the GCP project. What it can't give you is per-user attribution — Google's billing export has no user dimension, so user-level Vertex usage needs a proxy or request logging you'd add yourself. StackSpend is explicit about that rather than showing an empty user column (see our approach to honest coverage).

FAQ

Can I see Gemini token usage in the GCP bill?

Partly. GCP billing reports Vertex AI cost by SKU, which distinguishes input from output tokens, but it does not expose per-request or per-project prompt detail the way a direct provider console does.

Why is Gemini spend harder to attribute than OpenAI?

Because it arrives through GCP billing rather than a dedicated AI console. The cost is real and accurate, but it sits alongside every other GCP service and inherits GCP's attribution model rather than a model-level one.

What can't I get from GCP billing alone?

Per-prompt detail, per-user attribution, and anything below the SKU level. For those you need application-side logging; billing tells you what it cost, not which feature caused it.

Know where your cloud and AI spend stands — every day.

Connect providers in minutes. Get 90 days of visibility and start receiving daily cost updates before the invoice lands.

14-day free trial. No credit card required. Plans from $29/month.
Gemini and Vertex Token Usage in GCP — StackSpend Blog