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-transcribe and gemini-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.

ModelInput priceOutput priceContext 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 minuteAudio 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 minuteBidirectional 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 tokensGeneral 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

OptionBest forPricingKey capabilityKey limitation
Gemini 3.5 TranscribeUploaded audio files, batch jobs, meeting recordings, support calls$2.00 input and $12.00 output per 1M tokens; about $0.005 per minute85+ language detection, speaker diarization, word timestamps, custom vocabularyDiarization or word timestamps reduce supported processing length to 30 minutes
Gemini 3.5 Transcribe LiveReal-time captions, live calls, voice agents, streaming microphone input$3.50 input and $21.00 output per 1M tokens; about $0.009 per minute blendedLow-latency WebSocket transcription for streaming audioMore expensive than non-streaming transcription and needs streaming infrastructure
Gemini 3.5 FlashSummarizing, extracting, classifying, and scoring transcript text$1.50 input and $9.00 output per 1M tokensGeneral reasoning over transcript content after ASR is doneNot 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:

  1. Transcribe first. Send audio to gemini-3.5-transcribe and save raw transcript, speaker labels, timestamps, and model version.
  2. Normalize second. Clean obvious formatting issues, but keep a copy of the original transcript for audits.
  3. Analyze third. Send transcript text to a reasoning model for summary, action items, QA scoring, or structured extraction.
  4. Route by job type. Use the non-streaming model for recordings. Use gemini-3.5-transcribe-live only 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

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 Free

FAQ

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.