Product: Vercel AI Gateway Feature: Speech-to-text / transcription Model: google/gemini-3.5-transcribe Endpoint: POST https://ai-gateway.vercel.sh/v4/ai/transcription-model Auth: AI Gateway API key (system credentials, not BYOK) Example generationId: gen_01M11K75WKZPWRXY37603K104G
What I need
Speaker diarization from Gemini 3.5 Transcribe: word-level speaker labels (spk_1, spk_2, …) so I can split a meeting transcript by speaker.
Google’s native Transcribe API supports this. Docs: https://ai.google.dev/gemini-api/docs/transcribe
Native request shape:
"mode": { "type": "verbatim", "diarization_mode": "speaker" }
What Gateway does1. Native mode object is rejectedproviderOptions.google.mode as an object (type + diarization_mode) returns HTTP 400: “invalid google provider options”.
Gateway does not accept the Google-native diarization config.
2. Flattened options are accepted, but speaker metadata is strippedThis is accepted (HTTP 200):
POST [https://ai-gateway.vercel.sh/v4/ai/transcription-model](https://ai-gateway.vercel.sh/v4/ai/transcription-model)Authorization: Bearer $AI_GATEWAY_API_KEYContent-Type: application/jsonai-model-id: google/gemini-3.5-transcribeai-transcription-model-specification-version: 4ai-gateway-protocol-version: 0.0.1ai-gateway-auth-method: api-key{ "audio": "", "mediaType": "audio/mpeg", "providerOptions": { "google": { "mode": "VERBATIM", "diarization": true, "languageCodes": ["ru-RU"] } }}Also tried (all 200, same empty speaker data):
diarizationMode: "speaker"timestampGranularities: ["word"]Response always looks like:
{ "text": "", "segments": [], "warnings": [], "providerMetadata": { "google": { "usage": { "...": "token counts only" } } }}There is no word_info, no spk_*, no speaker field on segments. segments is always [].
The catalog entry for this model lists supported_parameters as chat-style fields (max_tokens, temperature, stop) and does not mention diarization.
Docs also don’t cover Google diarization on this endpoint: [https://vercel.com/docs/ai-gateway/modalities/speech-to-text](https://vercel.com/docs/ai-gateway/modalities/speech-to-text)
AskIs this a known limitation of the transcription abstraction, or a bug?Can Gateway pass through Google’s word_info (or fill segments[] with speaker + timestamps) when diarization is requested?If not yet, is there a supported providerOptions mapping for diarization_mode: "speaker", and a timeline to surface it?This is a capability gap, not an integration bug on my side. I’m already billed on Gateway credits for these calls. Workaround today is a second Gateway chat request with the same audio, which doubles cost and is worse than native word_info.