# Google - gemma-4-31b grades

2 graded endpoints serving gemma-4-31b.
HTML version: [https://inferencecanary.com/google](https://inferencecanary.com/google) · matrix: [https://inferencecanary.com/index.md](https://inferencecanary.com/index.md)

A vendor is graded once per API it speaks, because a shim and a native protocol routinely
behave differently - Google speaks 2.


## Endpoints

| Endpoint | Dialect | Inference | Billing | Probed |
|---|---|---|---|---|
| [Google (native)](https://inferencecanary.com/google/gemma-4-31b.md) (reference) | generateContent - Google's own protocol | B | OK | 2026-08-25 |
| [Google (OpenAI-compat)](https://inferencecanary.com/google-openai/gemma-4-31b.md) | OpenAI chat/completions shim over generateContent | F | OK | 2026-08-25 |


## Billing

Footnote (customer-favoring, not flagged): completion_tokens under-counts its own delivered content - under-bills in the customer's favor.

## Findings affecting Google

- **[high · pricing] Google sells no paid tier for gemma-4: every request is used to improve their products, and quota gates agentic work** - details: [/findings.md](https://inferencecanary.com/findings.md#google-no-paid-tier)
- **[high · inference] Several providers drop replayed reasoning: the model never sees its own prior thinking** - details: [/replayed-reasoning-dropped.md](https://inferencecanary.com/replayed-reasoning-dropped.md)
- **[high · inference] Google's OpenAI-compat shim has no reasoning channel; thought text leaks into content** - details: [/google-openai-no-reasoning-channel.md](https://inferencecanary.com/google-openai-no-reasoning-channel.md)
- **[high · inference] Images in tool results: rejected or silently blinded on several providers** - details: [/tool-result-images.md](https://inferencecanary.com/tool-result-images.md)
- **[medium · inference] Google's shim mislabels streamed tool calls finish_reason: "stop"** - details: [/google-openai-finish-reason.md](https://inferencecanary.com/google-openai-finish-reason.md)

