Gemini API
changelog-20260828-455e7c2b commercialBuild with Gemini 2.0 Flash, 2.5 Pro, and Gemma using the Gemini API and Google AI Studio.
{
"model": "gemini-omni-1.1-flash",
"input": "A drone shot of a mountain landscape at sunrise.",
"resolution": "1080p"
}
{
"model": "gemini-omni-1.1-flash",
"first_frame_b64": "<BASE64_IMAGE_1>",
"last_frame_b64": "<BASE64_IMAGE_2>",
"input": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky."
}
{
"model": "gemini-omni-1.1-flash",
"contents": [
{"type": "document", "uri": "$VIDEO_URI"},
{"type": "document", "uri": "$CHARACTER_IMG_URI"},
{"type": "text", "text": "Extend this video: have the character shown in <IMAGE_REF_0> enter the scene and wave."}
]
}
curl -X POST "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"
}
],
"generation_config": {
"transcription_config": {
"mode": {
"type": "verbatim",
"diarization_mode": "speaker",
"timestamp_granularities": ["word"]
}
}
}
}'
curl -X POST "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"
}
],
"generation_config": {
"transcription_config": {
"custom_vocabulary": ["Gemini", "Kubernetes", "BigQuery"],
"mode": "smart"
}
}
}'
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-omni-1.1-flash:generateContent \
-H 'Content-Type: application/json' \
-d '{
"contents": [{"parts": [{"text": "Continue this video with a sunset scene"}]}],
"generationConfig": {
"task": "extend",
"video_config": {
"resolution": "1080p"
}
}
}'
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-omni-1.1-flash:generateContent \
-H 'Content-Type: application/json' \
-d '{
"contents": [{"parts": [
{"inline_data": {"mime_type": "image/jpeg", "data": "<first_frame_base64>"}},
{"inline_data": {"mime_type": "image/jpeg", "data": "<last_frame_base64>"}}
]}],
"generationConfig": {
"task": "image_to_video",
"video_config": {"resolution": "720p"}
}
}'
curl -X POST "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"
}
],
"generation_config": {
"transcription_config": {
"mode": {
"type": "verbatim",
"diarization_mode": "speaker",
"timestamp_granularities": ["word"]
}
}
}
}'
curl -X POST "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"
}
],
"generation_config": {
"transcription_config": {
"custom_vocabulary": ["Gemini", "Kubernetes", "BigQuery"],
"mode": "smart"
}
}
}'
curl -X POST https://api.gemini.example/v1/video:generate \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-omni-1.1-flash",
"input": "A drone shot of a mountain landscape at sunrise.",
"resolution": "1080p"
}'
curl -X POST https://api.gemini.example/v1/video:generate \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-omni-1.1-flash",
"first_frame_b64": "'$FIRST_FRAME_B64'",
"last_frame_b64": "'$LAST_FRAME_B64'",
"input": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky."
}'
{
"model": "gemini-omni-1.1-flash",
"contents": [{"parts": [{"text": "A drone flyover of a mountain range at sunset"}]}],
"video_config": {
"resolution": "4k"
}
}
{
"model": "gemini-omni-1.1-flash",
"task": "image_to_video",
"contents": [
{"parts": [{"inline_data": {"mime_type": "image/jpeg", "data": "<first_frame_base64>"}}]},
{"parts": [{"inline_data": {"mime_type": "image/jpeg", "data": "<last_frame_base64>"}}]}
],
"video_config": {
"resolution": "720p"
}
}
{
"model": "gemini-omni-1.1-flash",
"task": "extend",
"contents": [
{"parts": [{"inline_data": {"mime_type": "video/mp4", "data": "<source_video_base64>"}}]}
],
"video_config": {
"resolution": "1080p"
}
} Summary
Build with Gemini 2.0 Flash, 2.5 Pro, and Gemma using the Gemini API and Google AI Studio.
Release history
- docs update└──▷ USE ITGenerate a high-resolution drone shot video at 1080p instead of the default 720p.
{ "model": "gemini-omni-1.1-flash", "input": "A drone shot of a mountain landscape at sunrise.", "resolution": "1080p" }Create a video that transitions smoothly between two images using first-and-last-frame interpolation.{ "model": "gemini-omni-1.1-flash", "first_frame_b64": "<BASE64_IMAGE_1>", "last_frame_b64": "<BASE64_IMAGE_2>", "input": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky." }Extend an uploaded video and introduce a new character from a reference image into the continued scene.{ "model": "gemini-omni-1.1-flash", "contents": [ {"type": "document", "uri": "$VIDEO_URI"}, {"type": "document", "uri": "$CHARACTER_IMG_URI"}, {"type": "text", "text": "Extend this video: have the character shown in <IMAGE_REF_0> enter the scene and wave."} ] }- ›Adds
resolutionfield to video generation config forgemini-omni-1.1-flash, supporting values360p,720p(default),1080p, and4K. - ›Adds
first_frame_b64/firstFrameB64andlast_frame_b64/lastFrameB64fields for first-and-last-frame video interpolation, animating a smooth transition between two images. - ›Adds
video_configwithextendmode to seamlessly continue an existing video (uploaded via Files API or generated in multi-turn) by 3–10 seconds per extension, up to a total of 40 seconds. - ›Supports reference media in video extension via the
<IMAGE_REF_0>and<VIDEO_REF_0>prompt tags, allowing new characters or objects to be introduced into an extended clip (video references support up to 3 clips, up to 3 seconds each). - ›Adds explicit prompt tag syntax for declaring media roles:
<FIRST_FRAME>,<LAST_FRAME>,<VIDEO_REF_N>,<VIDEO_0>,<PREVIOUS_VIDEO>inline, and structured[# Sources ...]/[# References ...]declarations for multi-input scenarios.
+1 moreshow less
- ›New
gemini-omni-1.1-flashmodel is available for video generation.
- ›Adds
- docs update└──▷ TRY ITTranscribe a recorded call with both speaker labels and word-level timestamps to build a searchable, attributed transcript.
$ curl -X POST "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" } ], "generation_config": { "transcription_config": { "mode": { "type": "verbatim", "diarization_mode": "speaker", "timestamp_granularities": ["word"] } } } }'
Transcribe a technical meeting recording with domain jargon and clean up filler words automatically for a readable summary.$ curl -X POST "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" } ], "generation_config": { "transcription_config": { "custom_vocabulary": ["Gemini", "Kubernetes", "BigQuery"], "mode": "smart" } } }'
- ›New
POST https://generativelanguage.googleapis.com/v1beta/interactionsendpoint accepts audio input and returns transcriptions whenmodelis set togemini-3.5-transcribe. - ›New
generation_config.transcription_config.language_codesfield accepts BCP-47 codes (e.g.es-ES) to hint at spoken language, or an empty list for automatic detection across 85+ locales with dynamic code-switching support. - ›New
generation_config.transcription_config.custom_vocabularyarray accepts up to 1,000 domain-specific terms, brand names, or acronyms to bias recognition (optimal results with up to 100 terms). - ›New
generation_config.transcription_config.mode.diarization_modefield (set tospeaker) enables speaker diarization, tagging segments with labels likespk_1/spk_2for up to 8 speakers. - ›New
generation_config.transcription_config.modefield supports two transcription modes:verbatim(default, exact word-for-word output) andsmart(disfluency removal, inline self-corrections, automatic structured formatting into paragraphs/lists, and grammatical cleanup).
+2 moreshow less
- ›Transcription output is returned in
interaction.output_text; whendiarization_modeortimestamp_granularitiesis enabled, detailed word-level annotations are attached to the interaction content. - ›New
gemini-3.5-transcribemodel supports automatic language detection, diverse accents, background noise, and multi-language (code-switching) conversations without manual configuration.
- ›New
- changelog-20260828-455e7c2b
Gemini Omni Flash GA adds video extension, interpolation, and resolution control; Gemini 3.5 Transcribe GA brings streaming and non-streaming speech-to-text
└──▷ TRY ITGenerate a 1080p video continuation of an existing clip using the newextendtask andresolutionparameter.$ curl https://generativelanguage.googleapis.com/v1beta/models/gemini-omni-1.1-flash:generateContent \ -H 'Content-Type: application/json' \ -d '{ "contents": [{"parts": [{"text": "Continue this video with a sunset scene"}]}], "generationConfig": { "task": "extend", "video_config": { "resolution": "1080p" } } }'
Generate an interpolated video transitioning between two images using theimage_to_videotask ongemini-omni-1.1-flash.$ curl https://generativelanguage.googleapis.com/v1beta/models/gemini-omni-1.1-flash:generateContent \ -H 'Content-Type: application/json' \ -d '{ "contents": [{"parts": [ {"inline_data": {"mime_type": "image/jpeg", "data": "<first_frame_base64>"}}, {"inline_data": {"mime_type": "image/jpeg", "data": "<last_frame_base64>"}} ]}], "generationConfig": { "task": "image_to_video", "video_config": {"resolution": "720p"} } }'
- ›New
resolutionparameter invideo_configforgemini-omni-1.1-flashsupports360p,720p(default), and1080poutputs (with upscaling for 1080p and 4K). - ›New
extendtask ongemini-omni-1.1-flashenables seamless video extension by generating continuations appended to an existing clip. - ›New
image_to_videotask with up to 2 images ongemini-omni-1.1-flashenables interpolation between a first and last frame to generate a transitioning video. - ›New
gemini-3.5-transcribe-livemodel provides low-latency, bidirectional streaming speech-to-text over WebSockets via the Live API, supporting interim and finalized transcription events, Smart transcription mode, and multiple Voice Activity Detection (VAD) strategies.
└──▷ BREAKING ON UPGRADE- !The existing (pre-GA) Gemini Omni endpoint will be deprecated on September 30, 2026.
- ›New
- docs update
Gemini API adds Gemini 3.7 Flash model with Java SDK support for configurable thinking levels
- ›Adds
ThinkingLevelenum (with values such asHIGH) toGenerationConfigin the Java SDK, enabling control over reasoning depth viacom.google.genai.gaos.models.interactions.ThinkingLevel. - ›Introduces Gemini 3.7 Flash as a new available model for thinking/reasoning interactions.
- ›New Java SDK classes
CreateModelInteraction,InteractionsInput,GenerationConfig, Interaction, andCreateInteractionRequestBodyundercom.google.genai.gaos.models.interactionssupport structured reasoning API calls.
- ›Adds
- docs update
Gemini Live API adds real-time speech-to-text streaming with automatic language detection and custom vocabulary.
- ›Adds Live Transcription: real-time, continuous speech-to-text streaming with automatic language detection and custom vocabulary, supporting use cases such as live subtitles, meeting transcription, voice dictation, and customer call logging.
- ›Gemini 3.7 Flash is now available on the Live API.
- docs update
Gemini API adds
gemini-3.5-transcribemodel with diarization, word timestamps, custom vocabulary, and smart transcription viaPOST /v1beta/interactions└──▷ TRY ITTranscribe a recorded meeting with per-word timestamps and speaker labels to attribute statements to individuals for downstream analysis.$ curl -X POST "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" } ], "generation_config": { "transcription_config": { "mode": { "type": "verbatim", "diarization_mode": "speaker", "timestamp_granularities": ["word"] } } } }'
Transcribe a technical call with product-specific terminology, using custom vocabulary to improve recognition accuracy for jargon and brand names.$ curl -X POST "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" } ], "generation_config": { "transcription_config": { "custom_vocabulary": ["Gemini", "Kubernetes", "BigQuery"], "mode": "smart" } } }'
- ›New
POST https://generativelanguage.googleapis.com/v1beta/interactionsendpoint acceptingmodel: gemini-3.5-transcribeto convert speech in uploaded audio files to text. - ›Adds
generation_config.transcription_config.language_codesfield (BCP-47 list, e.g.["es-ES"]) to hint or restrict language detection; omit or pass[]for automatic detection across 85+ locales with dynamic code-switching. - ›Adds
generation_config.transcription_config.custom_vocabularyarray (up to 1,000 terms, best results with up to 100) to bias recognition toward domain-specific terms, acronyms, and proper names. - ›Adds
generation_config.transcription_config.mode.diarization_mode: "speaker"to tag each spoken segment with a speaker identifier (spk_1,spk_2, etc.); supports up to 8 speakers (3+ is experimental). - ›Adds
generation_config.transcription_config.mode.timestamp_granularities: ["word"]to return exact start/end time offsets for every recognized word.
+2 moreshow less
- ›Adds
generation_config.transcription_config.modefield accepting{"type": "verbatim"}(default, word-for-word with filler words preserved) or"smart"(removes disfluencies, resolves self-corrections, applies structured formatting such as numbered lists, currencies, and dates). - ›New
gemini-3.5-transcribemodel delivers automatic language identification, speaker diarization, word-level timestamps, and smart transcription in a single API call;interaction.output_textcarries the full transcript.
- ›New
- docs update
Gemini Omni 1.1 Flash gains output resolution control (360p–4K), first/last frame interpolation, and video extension via prompt or Files API
└──▷ TRY ITGenerate a high-resolution video at 1080p when you need broadcast-quality output from a text prompt.$ curl -X POST https://api.gemini.example/v1/video:generate \ -H 'Content-Type: application/json' \ -d '{ "model": "gemini-omni-1.1-flash", "input": "A drone shot of a mountain landscape at sunrise.", "resolution": "1080p" }'
Animate a smooth transition between two keyframe images — useful for creating cinematic scene changes without manual frame-by-frame work.$ curl -X POST https://api.gemini.example/v1/video:generate \ -H 'Content-Type: application/json' \ -d '{ "model": "gemini-omni-1.1-flash", "first_frame_b64": "'$FIRST_FRAME_B64'", "last_frame_b64": "'$LAST_FRAME_B64'", "input": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky." }'
- ›Adds
resolutionparameter to video generation requests, supporting360p,720p(default),1080p, and4Koutput values for thegemini-omni-1.1-flashmodel. - ›Adds first/last frame interpolation via
first_frame_b64andlast_frame_b64fields, letting you supply a start image and end image so the model animates a smooth cinematic transition between them. - ›Adds video extension capability: upload a clip via the Files API and prompt the model (e.g. 'Continue the scene.') to generate a seamless 3–10 second continuation appended to the end of the clip.
- ›Supports reference media during video extension — supply additional images or video clips alongside your base video to introduce new characters or objects into the extended footage using
<IMAGE_REF_N>and<VIDEO_REF_N>prompt tags. - ›Adds explicit prompt-based source/reference declaration syntax (
[# Sources <FIRST_FRAME>@Image1 <LAST_FRAME>@Image2],[# References <VIDEO_REF_0>@Video1]) for multi-input video generation with precisely assigned roles.
+3 moreshow less
- ›Supports looping video generation by setting both
<FIRST_FRAME>and<LAST_FRAME>to the same image. - ›Introduces
<VIDEO_0>and<PREVIOUS_VIDEO>source tags for video editing and multi-turn extension respectively. - ›Video extension supports up to 40 seconds total length, extending in 10-second increments using the last 10 seconds of the original clip as context.
- ›Adds
- docs update
Gemini API adds Gemini 3.7 Flash and Gemini 3.5 Transcribe speech-to-text models with speaker diarization and word timestamps.
- ›New
gemini-3.5-transcribemodel ID available for low-latency speech-to-text with utterance-based language detection, speaker diarization, word-level timestamps, and custom vocabulary biasing. - ›New
gemini-3.5-transcribe-livemodel ID available for live/streaming speech-to-text with the same diarization and timestamp capabilities. - ›New
gemini-omni-1.1-flashmodel ID available supporting fast video generation, editing, keyframe interpolation, and extension with native audio. - ›New Gemini 3.7 Flash model is now available.
- ›New
- docs update
Gemini API adds Gemini 3.7 Flash, Omni Flash video generation, 3.5 Transcribe speech-to-text, and a new Interactions API as the default interface.
- ›Introduces the Interactions API as the new default interface for building with Gemini models and agents, replacing the now-legacy
generateContentAPI; a step-by-step migration guide is available. - ›Adds Gemini Omni Flash, a new model for video generation and editing.
- ›Adds native image generation and editing capability via Nano Banana.
- ›Adds streaming support in the Interactions API for real-time tokens, incremental thoughts, and tool call events.
└──▷ BREAKING ON UPGRADE- !The
generateContentAPI is now considered legacy; the Interactions API is the default interface as of June 2026. Existing integrations continue to be supported but new projects should migrate.
- ›Introduces the Interactions API as the new default interface for building with Gemini models and agents, replacing the now-legacy
- docs update
Gemini API adds Gemini 3.7 Flash, Gemini 3.5 Transcribe, Omni Flash video model, and promotes Interactions API as the new default interface.
- ›New Interactions API is now the default interface as of June 2026 for building with Gemini models and agents, superseding the
generateContentAPI (now considered legacy); a migration guide and Interactions Overview are available.
└──▷ BREAKING ON UPGRADE- !The
generateContentAPI is now considered legacy; the Interactions API has become the default interface as of June 2026. Existing integrations continue to be supported but new projects should migrate.
- ›New Interactions API is now the default interface as of June 2026 for building with Gemini models and agents, superseding the
- August 27, 2026
Gemini Omni Flash GA: video extension, frame interpolation, and 4K resolution control via
gemini-omni-1.1-flash└──▷ USE ITGenerate a 4K video from a prompt using the new resolution control parameter to get the highest-quality output.{ "model": "gemini-omni-1.1-flash", "contents": [{"parts": [{"text": "A drone flyover of a mountain range at sunset"}]}], "video_config": { "resolution": "4k" } }Interpolate between two images to create a smooth transition video using theimage_to_videotask.{ "model": "gemini-omni-1.1-flash", "task": "image_to_video", "contents": [ {"parts": [{"inline_data": {"mime_type": "image/jpeg", "data": "<first_frame_base64>"}}]}, {"parts": [{"inline_data": {"mime_type": "image/jpeg", "data": "<last_frame_base64>"}}]} ], "video_config": { "resolution": "720p" } }Extend an existing video clip by generating a continuation using theextendtask.{ "model": "gemini-omni-1.1-flash", "task": "extend", "contents": [ {"parts": [{"inline_data": {"mime_type": "video/mp4", "data": "<source_video_base64>"}}]} ], "video_config": { "resolution": "1080p" } }- ›Releases
gemini-omni-1.1-flash, the GA fast conversational video generation and editing model. - ›Adds video extension capability: generate continuations at the end of an existing clip using the
extendtask or a direct prompt. - ›Adds frame interpolation via the
image_to_videotask with up to 2 images, generating a video that transitions between a first and last frame. - ›Adds a
resolutionparameter invideo_configsupporting360p,720p(default),1080p, and4koutputs (1080p and 4K use upscaling).
└──▷ BREAKING ON UPGRADE- !The
gemini-omni-flash-previewendpoint will be deprecated on September 30, 2026; callers must migrate togemini-omni-1.1-flash.
- ›Releases
- August 26, 2026
Gemini 3.5 Transcribe GA: two dedicated speech-to-text models with diarization, streaming, and 85+ language support
- ›Adds
gemini-3.5-transcribemodel: high-accuracy, non-streaming speech-to-text with utterance-based language detection across 85+ languages, speaker diarization, word-level timestamps, and custom vocabulary biasing of up to 1,000 terms. - ›Adds
gemini-3.5-transcribe-livemodel: low-latency, bidirectional streaming speech-to-text over WebSockets via the Live API, with interim and finalized transcription events, Smart transcription mode, and configurable Voice Activity Detection (VAD) strategies.
- ›Adds
- August 13, 2026
Gemini 3.7 Flash (
gemini-3.7-flash) is now GA, targeting coding, web dev, and agentic workflows.- ›Adds
gemini-3.7-flashas a generally available model with improvements across software engineering, web development, and agentic workflows, available at an introductory price through December 31, 2026.
- ›Adds
- July 30, 2026
Gemini Robotics ER 2 enters public preview with two new model endpoints for spatial reasoning and real-time robot streaming.
- ›Adds
gemini-robotics-er-2-previewendpoint supporting advanced spatial reasoning, agentic code execution, multi-step tool orchestration, video moment finding, progress classification, and multi-robot coordination. - ›Adds
gemini-robotics-er-2-streaming-previewendpoint optimized for real-time text streaming via the Live API, enabling low-latency robot agents with bidirectional audio and video input. - ›Both
gemini-robotics-er-2-previewandgemini-robotics-er-2-streaming-previewaccept text, image, video, and audio inputs and support function calling with blocking behavior for physical robot actions.
- ›Adds