Gemini 3.5 Transcribe API Guide (2026): Pricing, Code, and Speech-to-Text Routing
Google's AI blog surfaced a new release on August 26, 2026: Gemini 3.5 Transcribe, a Gemini API speech-to-text model built for transcription rather than general chat. The timing is good. A lot of teams have quietly outgrown “send the audio to a general multimodal model and hope the transcript is clean.” That works for demos. It gets expensive and messy in production.
The important bit: Gemini 3.5 Transcribe is not just another audio input mode. Google's developer docs describe a dedicated speech-to-text model with automatic language detection, speaker diarization, word-level timestamps, smart transcription, and custom vocabulary biasing. If you're building call analytics, meeting notes, support QA, podcast indexing, or voice-agent logs, this is worth a look.
TL;DR / Key Takeaways
- Google's AI blog listed “Intelligent transcription with Gemini 3.5 Transcribe” on August 26, 2026, and Google AI documentation now lists
gemini-3.5-transcribeandgemini-3.5-transcribe-live. - Gemini 3.5 Transcribe costs $2.00 per million audio input tokens and $12.00 per million text output tokens in the paid Gemini API tier.
- Google estimates Gemini 3.5 Transcribe at about $0.005 per minute for non-streaming transcription, based on 25 audio tokens per second and 175 text tokens per minute.
- Gemini 3.5 Transcribe supports 85+ languages, speaker diarization, word-level timestamps, smart transcription, and up to 1,000 custom vocabulary terms.
- Standard Gemini 3.5 Transcribe requests support audio files up to 1 hour, but diarization or word-level timestamps limit processing to 30 minutes.
Pricing and Limits
Transcription pricing is easy to misread because the API still bills in tokens. Google gives both token prices and minute estimates. For planning, use the per-minute number for product managers and the token number for engineering budgets.
| Model | Input price | Output price | Context window / operating limit |
|---|---|---|---|
Gemini 3.5 Transcribe (gemini-3.5-transcribe) | $2.00 per 1M audio input tokens; estimated $0.003 per audio minute | $12.00 per 1M text output tokens; estimated $0.002 per text minute | Audio files up to 1 hour; diarization or word-level timestamps up to 30 minutes |
Gemini 3.5 Transcribe Live (gemini-3.5-transcribe-live) | $3.50 per 1M audio input tokens; estimated $0.005 per audio minute | $21.00 per 1M text output tokens; estimated $0.004 per text minute | Bidirectional streaming transcription over WebSockets for live audio |
Gemini 3.5 Flash (gemini-3.5-flash) | $1.50 per 1M input tokens | $9.00 per 1M output tokens | General Gemini model; use for reasoning over transcripts, not first-pass ASR |
My take: use the dedicated transcription model for the transcript, then send the cleaned text to a reasoning model only when you need summary, classification, coaching, or extraction. Don't pay a general model to do speech recognition and analysis in one giant request unless latency matters more than cost.
Model and Option Comparison
| Option | Best for | Pricing | Key capability | Key limitation |
|---|---|---|---|---|
| Gemini 3.5 Transcribe | Uploaded audio files, batch jobs, meeting recordings, support calls | $2.00 input and $12.00 output per 1M tokens; about $0.005 per minute | 85+ language detection, speaker diarization, word timestamps, custom vocabulary | Diarization or word timestamps reduce supported processing length to 30 minutes |
| Gemini 3.5 Transcribe Live | Real-time captions, live calls, voice agents, streaming microphone input | $3.50 input and $21.00 output per 1M tokens; about $0.009 per minute blended | Low-latency WebSocket transcription for streaming audio | More expensive than non-streaming transcription and needs streaming infrastructure |
| Gemini 3.5 Flash | Summarizing, extracting, classifying, and scoring transcript text | $1.50 input and $9.00 output per 1M tokens | General reasoning over transcript content after ASR is done | Not the cheapest first-pass speech-to-text path |
Basic API Flow
The non-streaming flow is simple: upload an audio file, pass the file URI to gemini-3.5-transcribe, and store both the raw transcript and metadata. Don't throw away timestamps. Even if your first version only shows text, timestamps become useful later for quote playback, QA review, and “jump to moment” UI.
curl example
curl "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.5-transcribe",
"input": [
{
"type": "audio",
"uri": "YOUR_FILE_URI",
"mime_type": "audio/mp3"
}
]
}'
That example assumes you've already uploaded the file and received a URI. For anything longer than a few seconds, use the Files API instead of stuffing audio directly into the request.
Python example
from google import genai
client = genai.Client(api_key="YOUR_GEMINI_API_KEY")
audio_file = client.files.upload(file="support-call.mp3")
interaction = client.interactions.create(
model="gemini-3.5-transcribe",
input=[{
"type": "audio",
"uri": audio_file.uri,
"mime_type": audio_file.mime_type,
}],
config={
"timestamp_granularities": ["word"],
"diarization_mode": "speaker",
"custom_vocabulary": ["KissAPI", "token routing", "GPT-5.5"]
}
)
print(interaction.output_text)
Keep custom vocabulary short and boring. Brand names, product names, medical terms, legal terms, and internal project names are good candidates. Common words are not. Google allows up to 1,000 terms, but its docs say the best results usually come from up to 100 terms.
Node.js example
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const file = await ai.files.upload({ file: "meeting.mp3" });
const result = await ai.interactions.create({
model: "gemini-3.5-transcribe",
input: [{
type: "audio",
uri: file.uri,
mime_type: file.mimeType
}],
config: {
diarization_mode: "speaker",
timestamp_granularities: ["word"],
custom_vocabulary: ["KissAPI", "Claude Code", "OpenAI-compatible API"]
}
});
console.log(result.output_text);
A Practical Routing Pattern
Here's the architecture I'd use for most products:
- Transcribe first. Send audio to
gemini-3.5-transcribeand save raw transcript, speaker labels, timestamps, and model version. - Normalize second. Clean obvious formatting issues, but keep a copy of the original transcript for audits.
- Analyze third. Send transcript text to a reasoning model for summary, action items, QA scoring, or structured extraction.
- Route by job type. Use the non-streaming model for recordings. Use
gemini-3.5-transcribe-liveonly when users need live captions or real-time agent behavior.
If your app already uses an OpenAI-compatible gateway, keep transcription and reasoning as separate routes. KissAPI is useful here when you want one place to manage fallback models and token budgets for the reasoning step after transcription. You don't need to move every workload at once; start with the parts that burn the most money.
Cost Example: 10,000 Support Calls
Assume 10,000 calls per month, each 8 minutes long. Google's non-streaming estimate is about $0.005 per minute for Gemini 3.5 Transcribe.
10,000 calls × 8 minutes × $0.005 = $400/month
Now add a transcript summary step. If the average transcript is 6,000 tokens and the summary is 500 tokens, your reasoning model cost becomes a separate line item. That separation matters. It lets you pick a cheaper model for simple classification and reserve stronger models for escalation, compliance, or high-value accounts.
Implementation Notes That Save Pain Later
- Chunk long audio on purpose. If you need diarization or word timestamps, stay under the 30-minute processing limit.
- Store model metadata. Save model name, timestamp settings, diarization settings, and vocabulary version with every transcript.
- Use confidence-aware UX. Let users jump to the audio around uncertain or high-impact phrases.
- Don't mix smart transcription with incompatible features. Google's docs say smart transcription cannot be combined with timestamp granularities or diarization mode.
- Watch output tokens. Transcription has text output cost too. Verbose formatting and metadata can add up.
Build AI Audio Workflows Without Model Lock-In
Use KissAPI to route transcript analysis, fallback models, and cost controls through one OpenAI-compatible API layer.
Start FreeFAQ
Is Gemini 3.5 Transcribe a chat model?
No. Gemini 3.5 Transcribe is a speech-to-text model for audio transcription. Use a separate reasoning model if you need summaries, sentiment, QA scoring, or structured extraction from the transcript.
Does Gemini 3.5 Transcribe support speaker diarization?
Yes. Google says Gemini 3.5 Transcribe supports speaker diarization, with up to 8 speakers. Google also notes that speaker attribution for 3 or more speakers is experimental.
What is the difference between Gemini 3.5 Transcribe and Gemini 3.5 Transcribe Live?
Gemini 3.5 Transcribe is for uploaded audio files and non-streaming jobs. Gemini 3.5 Transcribe Live is for real-time transcription over WebSockets and costs more per million tokens.