The Gemini Interactions API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information including language, images, audio, video, and code. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more.
Creating an interaction
Creates a new interaction.
Path / Query Parameters
Which version of the API to use.
Request body
The request body contains data with the following structure:
model ModelOption (optional)
The name of the `Model` used for generating the interaction.
Required if `agent` is not provided.
Possible values
-
gemini-2.5-computer-use-preview-10-2025An agentic capability model designed for direct interface interaction, allowing Gemini to perceive and navigate digital environments.
-
gemini-2.5-flashOur first hybrid reasoning model which supports a 1M token context window and has thinking budgets.
-
gemini-2.5-flash-imageOur native image generation model, optimized for speed, flexibility, and contextual understanding. Text input and output is priced the same as 2.5 Flash.
-
gemini-2.5-flash-liteOur smallest and most cost effective model, built for at scale usage.
-
gemini-2.5-flash-lite-preview-09-2025The latest model based on Gemini 2.5 Flash lite optimized for cost-efficiency, high throughput and high quality.
-
gemini-2.5-flash-native-audio-preview-12-2025Our native audio models optimized for higher quality audio outputs with better pacing, voice naturalness, verbosity, and mood.
-
gemini-2.5-flash-preview-09-2025The latest model based on the 2.5 Flash model. 2.5 Flash Preview is best for large scale processing, low-latency, high volume tasks that require thinking, and agentic use cases.
-
gemini-2.5-flash-preview-ttsOur 2.5 Flash text-to-speech model optimized for powerful, low-latency controllable speech generation.
-
gemini-2.5-proOur state-of-the-art multipurpose model, which excels at coding and complex reasoning tasks.
-
gemini-2.5-pro-preview-ttsOur 2.5 Pro text-to-speech audio model optimized for powerful, low-latency speech generation for more natural outputs and easier to steer prompts.
-
gemini-3-flash-previewOur most intelligent model built for speed, combining frontier intelligence with superior search and grounding.
-
gemini-3-pro-image-previewState-of-the-art image generation and editing model.
-
gemini-3-pro-previewOur most intelligent model with SOTA reasoning and multimodal understanding, and powerful agentic and vibe coding capabilities.
-
gemini-3.1-pro-previewOur latest SOTA reasoning model with unprecedented depth and nuance, and powerful multimodal understanding and coding capabilities.
-
gemini-3.1-flash-image-previewPro-level visual intelligence with Flash-speed efficiency and reality-grounded generation capabilities.
-
gemini-3.1-flash-liteOur most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.
-
gemini-3.1-flash-lite-previewOur most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.
-
gemini-3.1-flash-tts-previewGemini 3.1 Flash TTS: Powerful, low-latency speech generation. Enjoy natural outputs, steerable prompts, and new expressive audio tags for precise narration control.
-
gemini-3.5-flashOur most intelligent model for sustained frontier performance in agentic and coding tasks.
-
lyria-3-clip-previewOur low-latency, music generation model optimized for high-fidelity audio clips and precise rhythmic control.
-
lyria-3-pro-previewOur advanced, full-song generative model with deep compositional understanding, optimized for precise structural control and complex transitions across diverse musical styles.
agent AgentOption (optional)
The name of the `Agent` used for generating the interaction.
Required if `model` is not provided.
Possible values
-
deep-research-pro-preview-12-2025Gemini Deep Research Agent
-
deep-research-preview-04-2026Gemini Deep Research Agent
-
deep-research-max-preview-04-2026Gemini Deep Research Max Agent
-
antigravity-preview-05-2026Use the Antigravity managed agent to perform multi-step tasks that require reasoning, file operations, and tool use.
The inputs for the interaction (common to both Model and Agent).
System instruction for the interaction.
A list of tool declarations the model may call during interaction.
Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
Input only. Whether the interaction will be streamed.
Input only. Whether to store the response and request for later retrieval.
Input only. Whether to run the model interaction in the background.
generation_config GenerationConfig (optional)
Model Configuration
Configuration parameters for the model interaction.
Alternative to `agent_config`. Only applicable when `model` is set.
Fields
The maximum number of tokens to include in the response.
Seed used in decoding for reproducibility.
speech_config SpeechConfig (optional)
Configuration for speech interaction.
Fields
The language of the speech.
The speaker's name, it should match the speaker name given in the prompt.
The voice of the speaker.
A list of character sequences that will stop output interaction.
Controls the randomness of the output.
thinking_level ThinkingLevel (optional)
The level of thought tokens that the model should generate.
Possible values
-
minimalLittle to no thinking.
-
lowLow thinking level.
-
mediumMedium thinking level.
-
highHigh thinking level.
thinking_summaries ThinkingSummaries (optional)
Whether to include thought summaries in the response.
Possible values
-
autoAuto thinking summaries.
-
noneNo thinking summaries.
The tool choice configuration.
Possible values:
-
autoAuto tool choice.
-
anyAny tool choice.
-
noneNo tool choice.
-
validatedValidated tool choice.
The maximum cumulative probability of tokens to consider when sampling.
video_config VideoConfig (optional)
Configuration for video generation.
Fields
Optional task mode for video generation. If not specified, the model automatically determines the appropriate mode based on the provided text prompt and input media.
Possible values:
-
text_to_videoGenerates video solely from a text prompt.
-
image_to_videoGenerates video from one or two source images. The first image defines the starting frame, and the optional second image defines the ending frame.
-
reference_to_videoGenerates video using reference media (such as images, audio, or video).
-
editModifies an existing input video.
agent_config object (optional)
Agent Configuration
Configuration for the agent.
Alternative to `generation_config`. Only applicable when `agent` is set.
Possible Types
Polymorphic discriminator: type
DynamicAgentConfig
Configuration for dynamic agents.
No description provided.
Always set to "dynamic".
DeepResearchAgentConfig
Configuration for the Deep Research agent.
Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
Enables bigquery tool for the Deep Research agent.
thinking_summaries ThinkingSummaries (optional)
Whether to include thought summaries in the response.
Possible values
-
autoAuto thinking summaries.
-
noneNo thinking summaries.
No description provided.
Always set to "deep-research".
Whether to include visualizations in the response.
Possible values:
-
offDo not include visualizations.
-
autoAutomatically include visualizations.
The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
The environment configuration for the interaction. Can be an object specifying remote environment sources or a string referencing an existing environment ID.
The labels with user-defined metadata for the request.
The ID of the previous interaction, if any.
response_modalities ResponseModality (optional)
The requested modalities of the response (TEXT, IMAGE, AUDIO).
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
safety_settings SafetySetting (optional)
Safety settings for the interaction.
Fields
Optional. The method for blocking content. If not specified, the default behavior is to use the probability score.
Possible values:
-
severityThe harm block method uses both probability and severity scores.
-
probabilityThe harm block method uses the probability score.
Required. The threshold for blocking content. If the harm probability exceeds this threshold, the content will be blocked.
Possible values:
-
block_low_and_aboveBlock content with a low harm probability or higher.
-
block_medium_and_aboveBlock content with a medium harm probability or higher.
-
block_only_highBlock content with a high harm probability.
-
block_noneDo not block any content, regardless of its harm probability.
-
offTurn off the safety filter entirely.
type HarmCategory (optional)
Required. The type of harm category to be blocked.
Possible values
-
hate_speechContent that promotes violence or incites hatred against individuals or groups based on certain attributes.
-
dangerous_contentContent that promotes, facilitates, or enables dangerous activities.
-
harassmentAbusive, threatening, or content intended to bully, torment, or ridicule.
-
sexually_explicitContent that contains sexually explicit material.
-
civic_integrityDeprecated: Election filter is not longer supported. The harm category is civic integrity.
-
image_hateImages that contain hate speech.
-
image_dangerous_contentImages that contain dangerous content.
-
image_harassmentImages that contain harassment.
-
image_sexually_explicitImages that contain sexually explicit content.
-
jailbreakPrompts designed to bypass safety filters.
service_tier ServiceTier (optional)
The service tier for the interaction.
Possible values
-
flexFlex service tier.
-
standardStandard service tier.
-
priorityPriority service tier.
webhook_config WebhookConfig (optional)
Optional. Webhook configuration for receiving notifications when the interaction completes.
Fields
Optional. If set, these webhook URIs will be used for webhook events instead of the registered webhooks.
Optional. The user metadata that will be returned on each event emission to the webhooks.
Response
Returns an Interaction resource.
Simple Request
Example Response
{ "created": "2025-11-26T12:25:15Z", "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-3.5-flash", "object": "interaction", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "Hello! I'm functioning perfectly and ready to assist you.\n\nHow are you doing today?" } ] } ], "status": "completed", "updated": "2025-11-26T12:25:15Z", "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 7 } ], "total_cached_tokens": 0, "total_input_tokens": 7, "total_output_tokens": 20, "total_thought_tokens": 22, "total_tokens": 49, "total_tool_use_tokens": 0 } }
Multi-turn
Example Response
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-3.5-flash", "status": "completed", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "The capital of France is Paris." } ] } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 50 } ], "total_cached_tokens": 0, "total_input_tokens": 50, "total_output_tokens": 10, "total_thought_tokens": 0, "total_tokens": 60, "total_tool_use_tokens": 0 } }
Image Input
Example Response
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-3.5-flash", "status": "completed", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "A white humanoid robot with glowing blue eyes stands holding a red skateboard." } ] } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 10 }, { "modality": "image", "tokens": 258 } ], "total_cached_tokens": 0, "total_input_tokens": 268, "total_output_tokens": 20, "total_thought_tokens": 0, "total_tokens": 288, "total_tool_use_tokens": 0 } }
Function Calling
Example Response
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-3.5-flash", "status": "requires_action", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "steps": [ { "type": "function_call", "id": "gth23981", "name": "get_weather", "arguments": { "location": "Boston, MA" } } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 100 } ], "total_cached_tokens": 0, "total_input_tokens": 100, "total_output_tokens": 25, "total_thought_tokens": 0, "total_tokens": 125, "total_tool_use_tokens": 50 } }
Deep Research
Example Response
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "agent": "deep-research-pro-preview-12-2025", "status": "completed", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "Here is a comprehensive research report on the current state of cancer research..." } ] } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 20 } ], "total_cached_tokens": 0, "total_input_tokens": 20, "total_output_tokens": 1000, "total_thought_tokens": 500, "total_tokens": 1520, "total_tool_use_tokens": 0 } }
Antigravity Agent
Example Response
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "agent": "antigravity-preview-05-2026", "status": "completed", "environment_id": "env_abc123", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "I've summarized the top 5 Hacker News stories and saved the results to /workspace/summary.md." } ] } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 50 } ], "total_cached_tokens": 0, "total_input_tokens": 50, "total_output_tokens": 500, "total_thought_tokens": 200, "total_tokens": 750, "total_tool_use_tokens": 0 } }
Reuse Environment
Example Response
{ "id": "v1_Chd2ZTJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkwMTIzNDU2Nzg", "agent": "antigravity-preview-05-2026", "status": "completed", "environment_id": "env_abc123", "object": "interaction", "created": "2025-11-26T12:23:00Z", "updated": "2025-11-26T12:23:00Z", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "I've updated /workspace/hello.py to accept a name argument and greet the user." } ] } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 80 } ], "total_cached_tokens": 0, "total_input_tokens": 80, "total_output_tokens": 200, "total_thought_tokens": 100, "total_tokens": 380, "total_tool_use_tokens": 0 } }
With Sources
Custom Agent
Canceling an interaction
Cancels an interaction by id. This only applies to background interactions that are still running.
Path / Query Parameters
Which version of the API to use.
The unique identifier of the interaction to cancel.
Response
Returns an Interaction resource.
Cancel Interaction
Example Response
{ "id": "v1_ChdVc0E0YXJTYk1zYlV6N0lQcXRXVG1BYxIXVXNBNGFyU2JNc2JVejdJUHF0V1RtQWM", "agent": "deep-research-pro-preview-12-2025", "status": "cancelled", "created": "2026-06-22T04:55:47Z", "updated": "2026-06-22T04:55:47Z", "steps": [ { "type": "user_input", "content": [ { "type": "text", "text": "Research the history of the Google TPUs with a focus on 2025 specs." } ] } ] }
Retrieving an interaction
Retrieves the full details of a single interaction based on its `Interaction.id`.
Path / Query Parameters
Which version of the API to use.
The unique identifier of the interaction to retrieve.
Optional. If set, resumes the interaction stream from the next chunk after the event marked by the event id. Can only be used if `stream` is true.
If set to true, the generated content will be streamed incrementally.
Defaults to: False
Response
Returns an Interaction resource.
Get Interaction
Example Response
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-3.5-flash", "status": "completed", "object": "interaction", "created": "2025-11-26T12:25:15Z", "updated": "2025-11-26T12:25:15Z", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "I'm doing great, thank you for asking! How can I help you today?" } ] } ] }
Deleting an interaction
Deletes the interaction by id.
Path / Query Parameters
Which version of the API to use.
The unique identifier of the interaction to delete.
Response
If successful, the response is empty.
Delete
Resources
Interaction
The Interaction resource.
Fields
agent AgentOption (optional)
The name of the `Agent` used for generating the interaction.
Possible values
-
deep-research-pro-preview-12-2025Gemini Deep Research Agent
-
deep-research-preview-04-2026Gemini Deep Research Agent
-
deep-research-max-preview-04-2026Gemini Deep Research Max Agent
-
antigravity-preview-05-2026Use the Antigravity managed agent to perform multi-step tasks that require reasoning, file operations, and tool use.
agent_config object (optional)
Configuration parameters for the agent interaction.
Possible Types
Polymorphic discriminator: type
DynamicAgentConfig
Configuration for dynamic agents.
No description provided.
Always set to "dynamic".
DeepResearchAgentConfig
Configuration for the Deep Research agent.
Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
Enables bigquery tool for the Deep Research agent.
thinking_summaries ThinkingSummaries (optional)
Whether to include thought summaries in the response.
Possible values
-
autoAuto thinking summaries.
-
noneNo thinking summaries.
No description provided.
Always set to "deep-research".
Whether to include visualizations in the response.
Possible values:
-
offDo not include visualizations.
-
autoAutomatically include visualizations.
The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
The environment configuration for the interaction. Can be an object specifying remote environment sources or a string referencing an existing environment ID.
Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
Required. Output only. A unique identifier for the interaction completion.
Defaults to:
The input for the interaction.
The labels with user-defined metadata for the request.
model ModelOption (optional)
The name of the `Model` used for generating the interaction.
Possible values
-
gemini-2.5-computer-use-preview-10-2025An agentic capability model designed for direct interface interaction, allowing Gemini to perceive and navigate digital environments.
-
gemini-2.5-flashOur first hybrid reasoning model which supports a 1M token context window and has thinking budgets.
-
gemini-2.5-flash-imageOur native image generation model, optimized for speed, flexibility, and contextual understanding. Text input and output is priced the same as 2.5 Flash.
-
gemini-2.5-flash-liteOur smallest and most cost effective model, built for at scale usage.
-
gemini-2.5-flash-lite-preview-09-2025The latest model based on Gemini 2.5 Flash lite optimized for cost-efficiency, high throughput and high quality.
-
gemini-2.5-flash-native-audio-preview-12-2025Our native audio models optimized for higher quality audio outputs with better pacing, voice naturalness, verbosity, and mood.
-
gemini-2.5-flash-preview-09-2025The latest model based on the 2.5 Flash model. 2.5 Flash Preview is best for large scale processing, low-latency, high volume tasks that require thinking, and agentic use cases.
-
gemini-2.5-flash-preview-ttsOur 2.5 Flash text-to-speech model optimized for powerful, low-latency controllable speech generation.
-
gemini-2.5-proOur state-of-the-art multipurpose model, which excels at coding and complex reasoning tasks.
-
gemini-2.5-pro-preview-ttsOur 2.5 Pro text-to-speech audio model optimized for powerful, low-latency speech generation for more natural outputs and easier to steer prompts.
-
gemini-3-flash-previewOur most intelligent model built for speed, combining frontier intelligence with superior search and grounding.
-
gemini-3-pro-image-previewState-of-the-art image generation and editing model.
-
gemini-3-pro-previewOur most intelligent model with SOTA reasoning and multimodal understanding, and powerful agentic and vibe coding capabilities.
-
gemini-3.1-pro-previewOur latest SOTA reasoning model with unprecedented depth and nuance, and powerful multimodal understanding and coding capabilities.
-
gemini-3.1-flash-image-previewPro-level visual intelligence with Flash-speed efficiency and reality-grounded generation capabilities.
-
gemini-3.1-flash-liteOur most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.
-
gemini-3.1-flash-lite-previewOur most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.
-
gemini-3.1-flash-tts-previewGemini 3.1 Flash TTS: Powerful, low-latency speech generation. Enjoy natural outputs, steerable prompts, and new expressive audio tags for precise narration control.
-
gemini-3.5-flashOur most intelligent model for sustained frontier performance in agentic and coding tasks.
-
lyria-3-clip-previewOur low-latency, music generation model optimized for high-fidelity audio clips and precise rhythmic control.
-
lyria-3-pro-previewOur advanced, full-song generative model with deep compositional understanding, optimized for precise structural control and complex transitions across diverse musical styles.
output_audio AudioContent (optional)
The last audio generated by the model in response to the current request. Note: this is added by the SDK.
Fields
The number of audio channels.
The audio content.
The mime type of the audio.
Possible values:
-
audio/wavWAV audio format
-
audio/mp3MP3 audio format
-
audio/aiffAIFF audio format
-
audio/aacAAC audio format
-
audio/oggOGG audio format
-
audio/flacFLAC audio format
-
audio/mpegMPEG audio format
-
audio/m4aM4A audio format
-
audio/l16L16 audio format
-
audio/opusOPUS audio format
-
audio/alawALAW audio format
-
audio/mulawMULAW audio format
The sample rate of the audio.
No description provided.
Always set to "audio".
The URI of the audio.
The last image generated by the model in response to the current request. Note: this is added by the SDK.
Concatenated text from the last model output in response to the current request. Note: this is added by the SDK.
output_video VideoContent (optional)
The last video generated by the model in response to the current request. Note: this is added by the SDK.
Fields
The video content.
The mime type of the video.
Possible values:
-
video/mp4MP4 video format
-
video/mpegMPEG video format
-
video/mpgMPG video format
-
video/movMOV video format
-
video/aviAVI video format
-
video/x-flvFLV video format
-
video/webmWebM video format
-
video/wmvWMV video format
-
video/3gpp3GPP video format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "video".
The URI of the video.
The ID of the previous interaction, if any.
Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
response_modalities ResponseModality (optional)
The requested modalities of the response (TEXT, IMAGE, AUDIO).
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
safety_settings SafetySetting (optional)
Safety settings for the interaction.
Fields
Optional. The method for blocking content. If not specified, the default behavior is to use the probability score.
Possible values:
-
severityThe harm block method uses both probability and severity scores.
-
probabilityThe harm block method uses the probability score.
Required. The threshold for blocking content. If the harm probability exceeds this threshold, the content will be blocked.
Possible values:
-
block_low_and_aboveBlock content with a low harm probability or higher.
-
block_medium_and_aboveBlock content with a medium harm probability or higher.
-
block_only_highBlock content with a high harm probability.
-
block_noneDo not block any content, regardless of its harm probability.
-
offTurn off the safety filter entirely.
type HarmCategory (optional)
Required. The type of harm category to be blocked.
Possible values
-
hate_speechContent that promotes violence or incites hatred against individuals or groups based on certain attributes.
-
dangerous_contentContent that promotes, facilitates, or enables dangerous activities.
-
harassmentAbusive, threatening, or content intended to bully, torment, or ridicule.
-
sexually_explicitContent that contains sexually explicit material.
-
civic_integrityDeprecated: Election filter is not longer supported. The harm category is civic integrity.
-
image_hateImages that contain hate speech.
-
image_dangerous_contentImages that contain dangerous content.
-
image_harassmentImages that contain harassment.
-
image_sexually_explicitImages that contain sexually explicit content.
-
jailbreakPrompts designed to bypass safety filters.
service_tier ServiceTier (optional)
The service tier for the interaction.
Possible values
-
flexFlex service tier.
-
standardStandard service tier.
-
priorityPriority service tier.
Required. Output only. The status of the interaction.
Possible values:
-
in_progressThe interaction is in progress.
-
requires_actionThe interaction requires action/input from the user.
-
completedThe interaction is completed.
-
failedThe interaction failed.
-
cancelledThe interaction was cancelled.
-
incompleteThe interaction is completed, but contains incomplete results (e.g. hitting max_tokens).
-
budget_exceededThe interaction was halted because the token budget was exceeded.
Output only. The steps that make up the interaction, when included in the response.
System instruction for the interaction.
A list of tool declarations the model may call during interaction.
Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
usage Usage (optional)
Output only. Statistics on the interaction request's token usage.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
webhook_config WebhookConfig (optional)
Optional. Webhook configuration for receiving notifications when the interaction completes.
Fields
Optional. If set, these webhook URIs will be used for webhook events instead of the registered webhooks.
Optional. The user metadata that will be returned on each event emission to the webhooks.
Examples
Example
{ "created": "2025-12-04T15:01:45Z", "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", "model": "gemini-3.5-flash", "object": "interaction", "steps": [ { "type": "model_output", "content": [ { "type": "text", "text": "Hello! I'm doing well, functioning as expected. Thank you for asking! How are you doing today?" } ] } ], "status": "completed", "updated": "2025-12-04T15:01:45Z", "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 7 } ], "total_cached_tokens": 0, "total_input_tokens": 7, "total_output_tokens": 23, "total_thought_tokens": 49, "total_tokens": 79, "total_tool_use_tokens": 0 } }
Data Models
Content
The content of the response.
Possible Types
Polymorphic discriminator: type
TextContent
A text content block.
annotations Annotation (optional)
Citation information for model-generated content.
Possible Types
Polymorphic discriminator: type
UrlCitation
A URL citation annotation.
End of the attributed segment, exclusive.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
The title of the URL.
No description provided.
Always set to "url_citation".
The URL.
FileCitation
A file citation annotation.
User provided metadata about the retrieved context.
The URI of the file.
End of the attributed segment, exclusive.
The name of the file.
Media ID in-case of image citations, if applicable.
Page number of the cited document, if applicable.
Source attributed for a portion of the text.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "file_citation".
PlaceCitation
A place citation annotation.
End of the attributed segment, exclusive.
Title of the place.
The ID of the place, in `places/{place_id}` format.
review_snippets ReviewSnippet (optional)
Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
Fields
The ID of the review snippet.
Title of the review.
A link that corresponds to the user review on Google Maps.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "place_citation".
URI reference of the place.
Required. The text content.
No description provided.
Always set to "text".
ImageContent
An image content block.
The image content.
The mime type of the image.
Possible values:
-
image/pngPNG image format
-
image/jpegJPEG image format
-
image/webpWebP image format
-
image/heicHEIC image format
-
image/heifHEIF image format
-
image/gifGIF image format
-
image/bmpBMP image format
-
image/tiffTIFF image format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "image".
The URI of the image.
AudioContent
An audio content block.
The number of audio channels.
The audio content.
The mime type of the audio.
Possible values:
-
audio/wavWAV audio format
-
audio/mp3MP3 audio format
-
audio/aiffAIFF audio format
-
audio/aacAAC audio format
-
audio/oggOGG audio format
-
audio/flacFLAC audio format
-
audio/mpegMPEG audio format
-
audio/m4aM4A audio format
-
audio/l16L16 audio format
-
audio/opusOPUS audio format
-
audio/alawALAW audio format
-
audio/mulawMULAW audio format
The sample rate of the audio.
No description provided.
Always set to "audio".
The URI of the audio.
DocumentContent
A document content block.
The document content.
The mime type of the document.
Possible values:
-
application/pdfPDF document format
-
text/csvCSV document format
No description provided.
Always set to "document".
The URI of the document.
VideoContent
A video content block.
The video content.
The mime type of the video.
Possible values:
-
video/mp4MP4 video format
-
video/mpegMPEG video format
-
video/mpgMPG video format
-
video/movMOV video format
-
video/aviAVI video format
-
video/x-flvFLV video format
-
video/webmWebM video format
-
video/wmvWMV video format
-
video/3gpp3GPP video format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "video".
The URI of the video.
Examples
Text
{ "type": "text", "text": "Hello, how are you?" }
Image
{ "type": "image", "data": "BASE64_ENCODED_IMAGE", "mime_type": "image/png" }
Audio
{ "type": "audio", "data": "BASE64_ENCODED_AUDIO", "mime_type": "audio/wav" }
Document
{ "type": "document", "data": "BASE64_ENCODED_DOCUMENT", "mime_type": "application/pdf" }
Video
{ "type": "video", "uri": "https://www.youtube.com/watch?v=9hE5-98ZeCg" }
Tool
A tool that can be used by the model.
Possible Types
Polymorphic discriminator: type
Function
A tool that can be used by the model.
A description of the function.
The name of the function.
The JSON Schema for the function's parameters.
No description provided.
Always set to "function".
CodeExecution
A tool that can be used by the model to execute code.
No description provided.
Always set to "code_execution".
UrlContext
A tool that can be used by the model to fetch URL context.
No description provided.
Always set to "url_context".
ComputerUse
A tool that can be used by the model to interact with the computer.
Optional. Disabled safety policies for computer use.
Possible values:
-
financial_transactionsSafety policy for financial transactions.
-
sensitive_data_modificationSafety policy for sensitive data modification.
-
communication_toolSafety policy for communication tools (e.g. Gmail, Chat, Meet).
-
account_creationSafety policy for account creation.
-
data_modificationSafety policy for data modification.
-
user_consent_managementSafety policy for user consent management.
-
legal_terms_and_agreementsSafety policy for legal terms and agreements.
Whether enable the prompt injection detection check on computer-use request.
The environment being operated.
Possible values:
-
browserOperates in a web browser.
-
mobileOperates in a mobile environment.
-
desktopOperates in a desktop environment.
The list of predefined functions that are excluded from the model call.
No description provided.
Always set to "computer_use".
McpServer
A MCPServer is a server that can be called by the model to perform actions.
allowed_tools AllowedTools (optional)
The allowed tools.
Fields
The mode of the tool choice.
Possible values:
-
autoAuto tool choice.
-
anyAny tool choice.
-
noneNo tool choice.
-
validatedValidated tool choice.
The names of the allowed tools.
Optional: Fields for authentication headers, timeouts, etc., if needed.
The name of the MCPServer.
No description provided.
Always set to "mcp_server".
The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
GoogleSearch
A tool that can be used by the model to search Google.
The types of search grounding to enable.
Possible values:
-
web_searchSetting this field enables web search. Only text results are returned.
-
image_searchSetting this field enables image search. Image bytes are returned.
-
enterprise_web_searchSetting this field enables enterprise web search.
No description provided.
Always set to "google_search".
FileSearch
A tool that can be used by the model to search files.
The file search store names to search.
Metadata filter to apply to the semantic retrieval documents and chunks.
The number of semantic retrieval chunks to retrieve.
No description provided.
Always set to "file_search".
GoogleMaps
A tool that can be used by the model to call Google Maps.
Whether to return a widget context token in the tool call result of the response.
The latitude of the user's location.
The longitude of the user's location.
No description provided.
Always set to "google_maps".
Retrieval
A tool that can be used by the model to retrieve files.
exa_ai_search_config ExaAISearchConfig (optional)
Used to specify configuration for ExaAISearch.
Fields
Required. The API key for ExaAiSearch.
Optional. This field can be used to pass any parameter from the Exa.ai Search API.
parallel_ai_search_config ParallelAISearchConfig (optional)
Used to specify configuration for ParallelAISearch.
Fields
Optional. The API key for ParallelAiSearch.
Optional. Custom configs for ParallelAiSearch.
rag_store_config RagStoreConfig (optional)
Used to specify configuration for RagStore.
Fields
rag_resources RagResource (optional)
Optional. The representation of the rag source.
Fields
Optional. RagCorpora resource name.
Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
rag_retrieval_config RagRetrievalConfig (optional)
Optional. The retrieval config for the Rag query.
Fields
filter Filter (optional)
Optional. Config for filters.
Fields
Optional. String for metadata filtering.
Optional. Only returns contexts with vector distance smaller than the threshold.
Optional. Only returns contexts with vector similarity larger than the threshold.
hybrid_search HybridSearch (optional)
Optional. Config for Hybrid Search.
Fields
Optional. Alpha value controls the weight between dense and sparse vector search results.
ranking Ranking (optional)
Optional. Config for ranking and reranking.
Optional. The number of contexts to retrieve.
The types of file retrieval to enable.
Possible values:
-
rag_store -
exa_ai_search -
parallel_ai_search
No description provided.
Always set to "retrieval".
Examples
Function
CodeExecution
UrlContext
ComputerUse
McpServer
GoogleSearch
FileSearch
GoogleMaps
Retrieval
No examples available for this type.
InteractionSseEvent
Possible Types
Polymorphic discriminator: event_type
InteractionCreatedEvent
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "interaction.created".
interaction InteractionSseEventInteraction (required)
Partial interaction resource emitted when the stream is created.
Fields
The agent to interact with.
Output only. The time at which the response was created in ISO 8601 format.
Required. Output only. A unique identifier for the interaction completion.
The model that will complete your prompt.
Output only. The resource type.
service_tier ServiceTier (optional)
The service tier for the interaction.
Possible values
-
flexFlex service tier.
-
standardStandard service tier.
-
priorityPriority service tier.
Required. Output only. The status of the interaction.
Possible values:
-
in_progressThe interaction is in progress.
-
requires_actionThe interaction requires action/input from the user.
-
completedThe interaction is completed.
-
failedThe interaction failed.
-
cancelledThe interaction was cancelled.
-
incompleteThe interaction is completed, but contains incomplete results (e.g. hitting max_tokens).
Output only. The steps that make up the interaction, if included in this event.
Output only. The time at which the response was last updated in ISO 8601 format.
usage Usage (optional)
Output only. Statistics on the interaction request's token usage.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
metadata StreamMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
No description provided.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
InteractionCompletedEvent
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "interaction.completed".
interaction InteractionSseEventInteraction (required)
Partial completed interaction resource emitted at the end of the stream.
Fields
The agent to interact with.
Output only. The time at which the response was created in ISO 8601 format.
Required. Output only. A unique identifier for the interaction completion.
The model that will complete your prompt.
Output only. The resource type.
service_tier ServiceTier (optional)
The service tier for the interaction.
Possible values
-
flexFlex service tier.
-
standardStandard service tier.
-
priorityPriority service tier.
Required. Output only. The status of the interaction.
Possible values:
-
in_progressThe interaction is in progress.
-
requires_actionThe interaction requires action/input from the user.
-
completedThe interaction is completed.
-
failedThe interaction failed.
-
cancelledThe interaction was cancelled.
-
incompleteThe interaction is completed, but contains incomplete results (e.g. hitting max_tokens).
Output only. The steps that make up the interaction, if included in this event.
Output only. The time at which the response was last updated in ISO 8601 format.
usage Usage (optional)
Output only. Statistics on the interaction request's token usage.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
metadata StreamMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
No description provided.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
InteractionStatusUpdate
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "interaction.status_update".
No description provided.
metadata StreamMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
No description provided.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
No description provided.
Possible values:
-
in_progressThe interaction is in progress.
-
requires_actionThe interaction requires action/input from the user.
-
completedThe interaction is completed.
-
failedThe interaction failed.
-
cancelledThe interaction was cancelled.
-
incompleteThe interaction is completed, but contains incomplete results (e.g. hitting max_tokens).
-
budget_exceededThe interaction was halted because the token budget was exceeded.
ErrorEvent
error Error (optional)
No description provided.
Fields
A URI that identifies the error type.
A human-readable error message.
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "error".
metadata StreamMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
No description provided.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
StepStart
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "step.start".
No description provided.
metadata StreamMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
No description provided.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
No description provided.
StepDelta
delta StepDeltaData (required)
No description provided.
Possible Types
Polymorphic discriminator: type
TextDelta
No description provided.
No description provided.
Always set to "text".
ImageDelta
No description provided.
No description provided.
Possible values:
-
image/pngPNG image format
-
image/jpegJPEG image format
-
image/webpWebP image format
-
image/heicHEIC image format
-
image/heifHEIF image format
-
image/gifGIF image format
-
image/bmpBMP image format
-
image/tiffTIFF image format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "image".
No description provided.
AudioDelta
The number of audio channels.
No description provided.
No description provided.
Possible values:
-
audio/wavWAV audio format
-
audio/mp3MP3 audio format
-
audio/aiffAIFF audio format
-
audio/aacAAC audio format
-
audio/oggOGG audio format
-
audio/flacFLAC audio format
-
audio/mpegMPEG audio format
-
audio/m4aM4A audio format
-
audio/l16L16 audio format
-
audio/opusOPUS audio format
-
audio/alawALAW audio format
-
audio/mulawMULAW audio format
The sample rate of the audio.
No description provided.
Always set to "audio".
No description provided.
DocumentDelta
No description provided.
No description provided.
Possible values:
-
application/pdfPDF document format
-
text/csvCSV document format
No description provided.
Always set to "document".
No description provided.
VideoDelta
No description provided.
No description provided.
Possible values:
-
video/mp4MP4 video format
-
video/mpegMPEG video format
-
video/mpgMPG video format
-
video/movMOV video format
-
video/aviAVI video format
-
video/x-flvFLV video format
-
video/webmWebM video format
-
video/wmvWMV video format
-
video/3gpp3GPP video format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "video".
No description provided.
ThoughtSummaryDelta
A new summary item to be added to the thought.
No description provided.
Always set to "thought_summary".
ThoughtSignatureDelta
Signature to match the backend source to be part of the generation.
No description provided.
Always set to "thought_signature".
TextAnnotationDelta
annotations Annotation (optional)
Citation information for model-generated content.
Possible Types
Polymorphic discriminator: type
UrlCitation
A URL citation annotation.
End of the attributed segment, exclusive.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
The title of the URL.
No description provided.
Always set to "url_citation".
The URL.
FileCitation
A file citation annotation.
User provided metadata about the retrieved context.
The URI of the file.
End of the attributed segment, exclusive.
The name of the file.
Media ID in-case of image citations, if applicable.
Page number of the cited document, if applicable.
Source attributed for a portion of the text.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "file_citation".
PlaceCitation
A place citation annotation.
End of the attributed segment, exclusive.
Title of the place.
The ID of the place, in `places/{place_id}` format.
review_snippets ReviewSnippet (optional)
Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
Fields
The ID of the review snippet.
Title of the review.
A link that corresponds to the user review on Google Maps.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "place_citation".
URI reference of the place.
No description provided.
Always set to "text_annotation_delta".
ArgumentsDelta
No description provided.
No description provided.
Always set to "arguments_delta".
CodeExecutionCallDelta
arguments CodeExecutionCallArguments (required)
No description provided.
Fields
The code to be executed.
Programming language of the `code`.
Possible values:
-
pythonPython >= 3.10, with numpy and simpy available.
A signature hash for backend validation.
No description provided.
Always set to "code_execution_call".
UrlContextCallDelta
arguments UrlContextCallArguments (required)
No description provided.
Fields
The URLs to fetch.
A signature hash for backend validation.
No description provided.
Always set to "url_context_call".
GoogleSearchCallDelta
arguments GoogleSearchCallArguments (required)
No description provided.
Fields
Web search queries for the following-up web search.
A signature hash for backend validation.
No description provided.
Always set to "google_search_call".
McpServerToolCallDelta
No description provided.
No description provided.
No description provided.
No description provided.
Always set to "mcp_server_tool_call".
FileSearchCallDelta
A signature hash for backend validation.
No description provided.
Always set to "file_search_call".
GoogleMapsCallDelta
arguments GoogleMapsCallArguments (optional)
The arguments to pass to the Google Maps tool.
Fields
The queries to be executed.
A signature hash for backend validation.
No description provided.
Always set to "google_maps_call".
RetrievalCallDelta
Used by Vertex Retrieval tools such as Parallel AI, Exa AI, Vertex AI Search, etc. RetrievalType decides which tool is used.
arguments RetrievalStepArguments (required)
Required. The arguments to pass to the Retrieval tool.
Fields
Queries for Retrieval information.
The type of retrieval tools.
Possible values:
-
rag_storeThe type of retrieval tools.
-
exa_ai_searchThe type of retrieval tools.
-
parallel_ai_searchThe type of retrieval tools.
A signature hash for backend validation.
No description provided.
Always set to "retrieval_call".
CodeExecutionResultDelta
No description provided.
No description provided.
A signature hash for backend validation.
No description provided.
Always set to "code_execution_result".
UrlContextResultDelta
No description provided.
result UrlContextResult (required)
No description provided.
Fields
The status of the URL retrieval.
Possible values:
-
successUrl retrieval is successful.
-
errorUrl retrieval is failed due to error.
-
paywallUrl retrieval is failed because the content is behind paywall.
-
unsafeUrl retrieval is failed because the content is unsafe.
The URL that was fetched.
A signature hash for backend validation.
No description provided.
Always set to "url_context_result".
GoogleSearchResultDelta
No description provided.
result GoogleSearchResult (required)
No description provided.
Fields
Web content snippet that can be embedded in a web page or an app webview.
A signature hash for backend validation.
No description provided.
Always set to "google_search_result".
McpServerToolResultDelta
No description provided.
No description provided.
No description provided.
No description provided.
Always set to "mcp_server_tool_result".
FileSearchResultDelta
result FileSearchResult (required)
No description provided.
A signature hash for backend validation.
No description provided.
Always set to "file_search_result".
GoogleMapsResultDelta
result GoogleMapsResult (optional)
The results of the Google Maps.
Fields
places Places (optional)
The places that were found.
Fields
Title of the place.
The ID of the place, in `places/{place_id}` format.
review_snippets ReviewSnippet (optional)
Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
Fields
The ID of the review snippet.
Title of the review.
A link that corresponds to the user review on Google Maps.
URI reference of the place.
Resource name of the Google Maps widget context token.
A signature hash for backend validation.
No description provided.
Always set to "google_maps_result".
RetrievalResultDelta
Used by Vertex Retrieval tools such as Parallel AI, Exa AI, Vertex AI Search, etc. ToolResultDelta.type
Whether the retrieval resulted in an error.
A signature hash for backend validation.
No description provided.
Always set to "retrieval_result".
FunctionResultDelta
Required. ID to match the ID from the function call block.
No description provided.
No description provided.
No description provided.
No description provided.
Always set to "function_result".
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "step.delta".
No description provided.
metadata StepDeltaMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
Statistics on the interaction request's token usage.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
StepStop
The event_id token to be used to resume the interaction stream, from this event.
No description provided.
Always set to "step.stop".
No description provided.
metadata StreamMetadata (optional)
Optional metadata accompanying ANY streamed event.
Fields
total_usage Usage (optional)
No description provided.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
step_usage Usage (optional)
Model usage stats for this specific step.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
usage Usage (optional)
Cumulative model usage stats from the start of the session.
Fields
cached_tokens_by_modality ModalityTokens (optional)
A breakdown of cached token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
grounding_tool_count GroundingToolCount (optional)
Grounding tool count.
Fields
The number of grounding tool counts.
The grounding tool type associated with the count.
Possible values:
-
google_searchGrounding with Google Web Search and Image Search, & Web Grounding for Enterprise.
-
google_mapsGrounding with Google Maps.
-
retrievalGrounding with customer's data, for example, VertexAISearch.
input_tokens_by_modality ModalityTokens (optional)
A breakdown of input token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
output_tokens_by_modality ModalityTokens (optional)
A breakdown of output token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
tool_use_tokens_by_modality ModalityTokens (optional)
A breakdown of tool-use token usage by modality.
Fields
modality ResponseModality (optional)
The modality associated with the token count.
Possible values
-
textIndicates the model should return text.
-
imageIndicates the model should return images.
-
audioIndicates the model should return audio.
-
videoIndicates the model should return video.
-
documentIndicates the model should return documents.
Number of tokens for the modality.
Number of tokens in the cached part of the prompt (the cached content).
Number of tokens in the prompt (context).
Total number of tokens across all the generated responses.
Number of tokens of thoughts for thinking models.
Total token count for the interaction request (prompt + responses + other internal tokens).
Number of tokens present in tool-use prompt(s).
Examples
Interaction Created
{ "event_type": "interaction.created", "interaction": { "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", "model": "gemini-3.5-flash", "status": "in_progress", "created": "2025-12-04T15:01:45Z", "updated": "2025-12-04T15:01:45Z" }, "event_id": "evt_123" }
Interaction Created
{ "event_type": "interaction.created", "interaction": { "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", "model": "gemini-3-flash-preview", "object": "interaction", "status": "in_progress" }, "event_id": "evt_123" }
Interaction Completed
{ "event_type": "interaction.completed", "interaction": { "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", "model": "gemini-3.5-flash", "status": "completed", "created": "2025-12-04T15:01:45Z", "updated": "2025-12-04T15:01:45Z" }, "event_id": "evt_123" }
Interaction Completed
{ "event_type": "interaction.completed", "interaction": { "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", "model": "gemini-3-flash-preview", "object": "interaction", "status": "completed", "created": "2025-12-04T15:01:45Z", "updated": "2025-12-04T15:01:45Z" }, "event_id": "evt_123" }
Interaction Status Update
{ "event_type": "interaction.status_update", "interaction_id": "v1_ChdTMjQ0YWJ5TUF1TzcxZThQdjRpcnFRcxIXUzI0NGFieU1BdU83MWU4UHY0aXJxUXM", "status": "in_progress" }
Error Event
{ "event_type": "error", "error": { "message": "Failed to get completed interaction: Result not found.", "code": "not_found" } }
Step Start
{ "event_type": "step.start", "index": 0, "step": { "type": "model_output" } }
Step Delta
{ "event_type": "step.delta", "index": 0, "delta": { "type": "text", "text": "Hello" } }
Step Stop
{ "event_type": "step.stop", "index": 0 }
ResponseFormat
Possible Types
AudioResponseFormat
Configuration for audio output format.
Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
The delivery mode for the audio output.
Possible values:
-
inlineAudio data is returned inline in the response.
-
uriAudio data is returned as a URI.
The MIME type of the audio output.
Possible values:
-
audio/mp3MP3 audio format.
-
audio/ogg_opusOGG Opus audio format.
-
audio/l16Raw PCM (L16) audio format.
-
audio/wavWAV audio format.
-
audio/alawA-law audio format.
-
audio/mulawMu-law audio format.
Sample rate in Hz.
No description provided.
Always set to "audio".
TextResponseFormat
Configuration for text output format.
The MIME type of the text output.
Possible values:
-
application/jsonJSON output format.
-
text/plainPlain text output format.
The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
No description provided.
Always set to "text".
ImageResponseFormat
Configuration for image output format.
The aspect ratio for the image output.
Possible values:
-
1:11:1 aspect ratio.
-
2:32:3 aspect ratio.
-
3:23:2 aspect ratio.
-
3:43:4 aspect ratio.
-
4:34:3 aspect ratio.
-
4:54:5 aspect ratio.
-
5:45:4 aspect ratio.
-
9:169:16 aspect ratio.
-
16:916:9 aspect ratio.
-
21:921:9 aspect ratio.
-
1:81:8 aspect ratio.
-
8:18:1 aspect ratio.
-
1:41:4 aspect ratio.
-
4:14:1 aspect ratio.
The delivery mode for the image output.
Possible values:
-
inlineImage data is returned inline in the response.
-
uriImage data is returned as a URI.
The size of the image output.
Possible values:
-
512512px image size.
-
1K1K image size.
-
2K2K image size.
-
4K4K image size.
The MIME type of the image output.
Possible values:
-
image/jpegJPEG image format.
No description provided.
Always set to "image".
VideoResponseFormat
Configuration for video output format.
The aspect ratio for the video output.
Possible values:
-
16:916:9 aspect ratio.
-
9:169:16 aspect ratio.
The delivery mode for the video output.
Possible values:
-
inlineVideo data is returned inline in the response.
-
uriVideo data is returned as a URI.
The duration for the video output.
The GCS URI to store the video output. Required for Vertex if delivery mode is URI.
No description provided.
Always set to "video".
Examples
Audio Output
{ "type": "audio", "sample_rate": 24000 }
Text Output (JSON Schema)
{ "type": "text", "mime_type": "application/json", "schema": { "type": "object", "properties": { "ingredients": { "type": "array", "items": { "type": "string" } }, "recipe_name": { "type": "string" } }, "required": [ "ingredients", "recipe_name" ] } }
Image Output
{ "type": "image", "mime_type": "image/jpeg", "aspect_ratio": "16:9", "image_size": "1K" }
Video Output
{ "type": "video", "delivery": "inline", "aspect_ratio": "16:9" }
Step
A step in the interaction.
Possible Types
Polymorphic discriminator: type
UserInputStep
Input provided by the user.
No description provided.
No description provided.
Always set to "user_input".
ModelOutputStep
Output generated by the model.
No description provided.
error Status (optional)
The error result of the operation in case of failure or cancellation.
Fields
The status code, which should be an enum value of google.rpc.Code.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
No description provided.
Always set to "model_output".
ThoughtStep
A thought step.
A signature hash for backend validation.
summary ThoughtSummaryContent (optional)
A summary of the thought.
Possible Types
Polymorphic discriminator: type
TextContent
A text content block.
annotations Annotation (optional)
Citation information for model-generated content.
Possible Types
Polymorphic discriminator: type
UrlCitation
A URL citation annotation.
End of the attributed segment, exclusive.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
The title of the URL.
No description provided.
Always set to "url_citation".
The URL.
FileCitation
A file citation annotation.
User provided metadata about the retrieved context.
The URI of the file.
End of the attributed segment, exclusive.
The name of the file.
Media ID in-case of image citations, if applicable.
Page number of the cited document, if applicable.
Source attributed for a portion of the text.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "file_citation".
PlaceCitation
A place citation annotation.
End of the attributed segment, exclusive.
Title of the place.
The ID of the place, in `places/{place_id}` format.
review_snippets ReviewSnippet (optional)
Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
Fields
The ID of the review snippet.
Title of the review.
A link that corresponds to the user review on Google Maps.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "place_citation".
URI reference of the place.
Required. The text content.
No description provided.
Always set to "text".
ImageContent
An image content block.
The image content.
The mime type of the image.
Possible values:
-
image/pngPNG image format
-
image/jpegJPEG image format
-
image/webpWebP image format
-
image/heicHEIC image format
-
image/heifHEIF image format
-
image/gifGIF image format
-
image/bmpBMP image format
-
image/tiffTIFF image format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "image".
The URI of the image.
No description provided.
Always set to "thought".
FunctionCallStep
A function tool call step.
Required. The arguments to pass to the function.
Required. A unique ID for this specific tool call.
Required. The name of the tool to call.
No description provided.
Always set to "function_call".
CodeExecutionCallStep
Code execution call step.
arguments CodeExecutionCallStepArguments (required)
Required. The arguments to pass to the code execution.
Fields
The code to be executed.
Programming language of the `code`.
Possible values:
-
pythonPython >= 3.10, with numpy and simpy available.
Required. A unique ID for this specific tool call.
A signature hash for backend validation.
No description provided.
Always set to "code_execution_call".
UrlContextCallStep
URL context call step.
arguments UrlContextCallArguments (required)
Required. The arguments to pass to the URL context.
Fields
The URLs to fetch.
Required. A unique ID for this specific tool call.
A signature hash for backend validation.
No description provided.
Always set to "url_context_call".
McpServerToolCallStep
MCPServer tool call step.
Required. The JSON object of arguments for the function.
Required. A unique ID for this specific tool call.
Required. The name of the tool which was called.
Required. The name of the used MCP server.
No description provided.
Always set to "mcp_server_tool_call".
GoogleSearchCallStep
Google Search call step.
arguments GoogleSearchCallStepArguments (required)
Required. The arguments to pass to Google Search.
Fields
Web search queries for the following-up web search.
Required. A unique ID for this specific tool call.
The type of search grounding enabled.
Possible values:
-
web_searchSetting this field enables web search. Only text results are returned.
-
image_searchSetting this field enables image search. Image bytes are returned.
-
enterprise_web_searchSetting this field enables enterprise web search.
A signature hash for backend validation.
No description provided.
Always set to "google_search_call".
FileSearchCallStep
File Search call step.
Required. A unique ID for this specific tool call.
A signature hash for backend validation.
No description provided.
Always set to "file_search_call".
GoogleMapsCallStep
Google Maps call step.
arguments GoogleMapsCallStepArguments (optional)
The arguments to pass to the Google Maps tool.
Fields
The queries to be executed.
Required. A unique ID for this specific tool call.
A signature hash for backend validation.
No description provided.
Always set to "google_maps_call".
FunctionResultStep
Result of a function tool call.
Required. ID to match the ID from the function call block.
Whether the tool call resulted in an error.
The name of the tool that was called.
The result of the tool call.
No description provided.
Always set to "function_result".
CodeExecutionResultStep
Code execution result step.
Required. ID to match the ID from the function call block.
Whether the code execution resulted in an error.
Required. The output of the code execution.
A signature hash for backend validation.
No description provided.
Always set to "code_execution_result".
UrlContextResultStep
URL context result step.
Required. ID to match the ID from the function call block.
Whether the URL context resulted in an error.
result UrlContextResult (required)
Required. The results of the URL context.
Fields
The status of the URL retrieval.
Possible values:
-
successUrl retrieval is successful.
-
errorUrl retrieval is failed due to error.
-
paywallUrl retrieval is failed because the content is behind paywall.
-
unsafeUrl retrieval is failed because the content is unsafe.
The URL that was fetched.
A signature hash for backend validation.
No description provided.
Always set to "url_context_result".
GoogleSearchResultStep
Google Search result step.
Required. ID to match the ID from the function call block.
Whether the Google Search resulted in an error.
result GoogleSearchResultItem (required)
Required. The results of the Google Search.
Fields
Web content snippet that can be embedded in a web page or an app webview.
A signature hash for backend validation.
No description provided.
Always set to "google_search_result".
McpServerToolResultStep
MCPServer tool result step.
Required. ID to match the ID from the function call block.
Name of the tool which is called for this specific tool call.
The output from the MCP server call. Can be simple text or rich content.
The name of the used MCP server.
No description provided.
Always set to "mcp_server_tool_result".
FileSearchResultStep
File Search result step.
Required. ID to match the ID from the function call block.
A signature hash for backend validation.
No description provided.
Always set to "file_search_result".
GoogleMapsResultStep
Google Maps result step.
Required. ID to match the ID from the function call block.
result GoogleMapsResultItem (required)
No description provided.
Fields
places GoogleMapsResultPlaces (optional)
No description provided.
Fields
No description provided.
No description provided.
review_snippets ReviewSnippet (optional)
No description provided.
Fields
The ID of the review snippet.
Title of the review.
A link that corresponds to the user review on Google Maps.
No description provided.
No description provided.
A signature hash for backend validation.
No description provided.
Always set to "google_maps_result".
Examples
UserInputStep
{ "type": "user_input", "content": [ { "type": "text", "text": "What is the capital of France?" } ] }
ModelOutputStep
{ "type": "model_output", "content": [ { "type": "text", "text": "The capital of France is Paris." } ] }
ThoughtStep
{ "type": "thought", "signature": "thought_sig_abcd1234", "summary": [ { "type": "text", "text": "The model is searching Google for the capital of France." } ] }
FunctionCallStep
{ "type": "function_call", "id": "call_98231", "name": "get_weather", "arguments": { "location": "Boston, MA" } }
CodeExecutionCallStep
{ "type": "code_execution_call", "id": "code_call_71021", "arguments": { "code": "print(sum(range(1, 11)))" } }
UrlContextCallStep
{ "type": "url_context_call", "id": "url_call_10219", "arguments": { "urls": [ "https://www.example.com" ] } }
McpServerToolCallStep
{ "type": "mcp_server_tool_call", "id": "mcp_call_29012", "name": "calculate_tax", "server_name": "financial_mcp_server", "arguments": { "income": 120000, "state": "CA" } }
GoogleSearchCallStep
{ "type": "google_search_call", "id": "search_call_19201", "arguments": { "query": "Who won the men's 100m in Paris 2024?" } }
FileSearchCallStep
{ "type": "file_search_call", "id": "file_call_88192" }
GoogleMapsCallStep
{ "type": "google_maps_call", "id": "maps_call_39201", "arguments": { "latitude": 37.7749, "longitude": -122.4194 } }
FunctionResultStep
{ "type": "function_result", "call_id": "call_98231", "name": "get_weather", "result": [ { "type": "text", "text": "{\"weather\":\"sunny\"}" } ] }
CodeExecutionResultStep
{ "type": "code_execution_result", "call_id": "code_call_71021", "result": "55\n" }
UrlContextResultStep
{ "type": "url_context_result", "call_id": "url_call_10219", "result": [ { "url": "https://www.example.com", "title": "Example Domain", "snippet": "This domain is for use in illustrative examples in documents." } ] }
GoogleSearchResultStep
{ "type": "google_search_result", "call_id": "search_call_19201", "result": [ { "title": "Paris 2024 Olympics: Noah Lyles wins men's 100m gold", "url": "https://olympics.com/en/news/paris-2024-noah-lyles-wins-mens-100m-gold", "snippet": "American Noah Lyles won the Olympic men's 100m gold medal in a photo finish." } ] }
McpServerToolResultStep
{ "type": "mcp_server_tool_result", "call_id": "mcp_call_29012", "result": { "tax_due": 32400 } }
FileSearchResultStep
{ "type": "file_search_result", "call_id": "file_call_88192" }
GoogleMapsResultStep
{ "type": "google_maps_result", "call_id": "maps_call_39201", "result": [ { "place_id": "ChIJIQBpAG2ahYAR9R7bNdTLg8M", "name": "Golden Gate Park", "rating": 4.8 } ] }
EnvironmentConfig
Configuration for a custom environment.
Fields
Optional. The environment ID for the interaction. If specified, the request will update the existing environment instead of creating a new one.
Network configuration for the environment.
Possible values:
-
disabledTurns all network off.
sources Source (optional)
No description provided.
Fields
The inline content if `type` is `INLINE`.
Optional encoding for inline content (e.g. `base64`).
The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
Where the source should appear in the environment.
No description provided.
Possible values:
-
gcsA GCS bucket.
-
inlineInline content.
-
repositoryA generic repository. The protocol prefix in the source URL identifies the provider (e.g., github://, gcs://).
-
skill_registryA skill resource from the Skill Registry Service. Skill: projects/{project}/locations/{location}/skills/{skill} SkillRevision: projects/{project}/locations/{location}/skills/{skill}/revisions/{revision} Support mounting all skills under a project: projects/{project}/locations/{location}/skills.
No description provided.
Always set to "remote".
Examples
Inline Sources
{ "type": "remote", "sources": [ { "type": "inline", "target": ".agents/AGENTS.md", "content": "You are a data analyst. Always include visualizations and export results as PDF." }, { "type": "inline", "target": ".agents/skills/slide-maker/SKILL.md", "content": "---\nname: slide-maker\ndescription: Create HTML slide decks\n---\n# Slide Maker\n\nWhen asked to create a presentation:\n1. Analyze the input data\n2. Create an HTML slide deck with reveal.js\n3. Save to /workspace/output/slides.html" } ] }
External Sources
{ "type": "remote", "sources": [ { "type": "repository", "source": "https://github.com/my-org/my-skills.git", "target": ".agents/skills" }, { "type": "gcs", "source": "gs://my-bucket/my-folder", "target": "/workspace/data" } ] }
Network Allowlist
{ "type": "remote", "network": { "allowlist": [ { "domain": "pypi.org" }, { "domain": "*.github.com" } ] } }
Proxy Credentials
{ "type": "remote", "network": { "allowlist": [ { "domain": "api.github.com", "transform": { "Authorization": "Bearer YOUR_GITHUB_TOKEN" } } ] } }
EnvironmentNetworkEgressAllowlist
Outbound networking configuration for the sandbox. Accepts an object with an 'allowlist' array to restrict traffic, or the string 'disabled' to turn off all network access. Omit entirely to allow all outbound traffic with no header injection.
Possible Types
object
Outbound networking configuration for the sandbox. When specified, restricts which external domains the sandbox can reach. Omit entirely to allow all outbound traffic with no header injection.
allowlist AllowlistEntry (optional)
List of allowed outbound domains. Only requests to listed domains are permitted. Use [{'domain': '*'}] to allow all domains while still injecting headers on specific ones.
Fields
Domain to allow outbound requests to. Supports wildcards (e.g. '*.googleapis.com'). Use '*' to allow all domains.
Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.
string
Turns all network off.
Possible values
-
disabledTurns all network off.
Examples
Example
{ "allowlist": [ { "domain": "github.com", "transform": [ { "Authorization": "Bearer your-token" } ] }, { "domain": "*.googleapis.com" } ] }
ToolChoiceConfig
The tool choice configuration containing allowed tools.
Fields
allowed_tools AllowedTools (optional)
The allowed tools.
Fields
The mode of the tool choice.
Possible values:
-
autoAuto tool choice.
-
anyAny tool choice.
-
noneNo tool choice.
-
validatedValidated tool choice.
The names of the allowed tools.
Examples
Example
{ "allowed_tools": { "mode": "any", "tools": [ "my_tool" ] } }
ImageContent
An image content block.
Fields
The image content.
The mime type of the image.
Possible values:
-
image/pngPNG image format
-
image/jpegJPEG image format
-
image/webpWebP image format
-
image/heicHEIC image format
-
image/heifHEIF image format
-
image/gifGIF image format
-
image/bmpBMP image format
-
image/tiffTIFF image format
resolution MediaResolution (optional)
The resolution of the media.
Possible values
-
lowLow resolution.
-
mediumMedium resolution.
-
highHigh resolution.
-
ultra_highUltra high resolution.
No description provided.
Always set to "image".
The URI of the image.
Examples
Image
{ "type": "image", "data": "BASE64_ENCODED_IMAGE", "mime_type": "image/png" }
TextContent
A text content block.
Fields
annotations Annotation (optional)
Citation information for model-generated content.
Possible Types
Polymorphic discriminator: type
UrlCitation
A URL citation annotation.
End of the attributed segment, exclusive.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
The title of the URL.
No description provided.
Always set to "url_citation".
The URL.
FileCitation
A file citation annotation.
User provided metadata about the retrieved context.
The URI of the file.
End of the attributed segment, exclusive.
The name of the file.
Media ID in-case of image citations, if applicable.
Page number of the cited document, if applicable.
Source attributed for a portion of the text.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "file_citation".
PlaceCitation
A place citation annotation.
End of the attributed segment, exclusive.
Title of the place.
The ID of the place, in `places/{place_id}` format.
review_snippets ReviewSnippet (optional)
Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
Fields
The ID of the review snippet.
Title of the review.
A link that corresponds to the user review on Google Maps.
Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
No description provided.
Always set to "place_citation".
URI reference of the place.
Required. The text content.
No description provided.
Always set to "text".
Examples
Text
{ "type": "text", "text": "Hello, how are you?" }