
If you’re using the Gemini Interactions API, your code will break on June 8. Google is retiring the outputs array in response objects and replacing it with a typed steps array — and the legacy schema disappears permanently on that date. No extensions have been announced. Here’s what changed and how to fix it.
What’s Actually Changing
The Gemini Interactions API is still in beta, and Google is using that status to push through a schema overhaul before Google I/O on May 19. There are three areas of change: the response structure, the output format configuration, and streaming event names.
Response Structure: outputs → steps
This is the biggest one. The old API returned a flat outputs array. The new API returns a steps array where each step has a type field — model_output, function_call, thought, google_search_call, and others. There’s no direct .text shorthand anymore.
Before:
text = interaction.outputs[-1].text
After:
for step in interaction.steps:
if step.type == "model_output":
text = step.content[0].text
Every piece of code that reads from Interactions API responses needs this update. POST requests return only output steps; GET requests on an interaction ID return the full timeline, including the initial user_input step.
Output Format Configuration: response_format Gets Consolidated
The response_mime_type field is gone. The image_config field moves out of generation_config. Both now belong inside response_format, which becomes the single place for all output type configuration.
Before:
response_mime_type = "application/json"
response_format = {"type": "object", "schema": {...}}
After:
response_format = {
"type": "text",
"mime_type": "application/json",
"schema": {"type": "object", ...}
}
If you’re using structured JSON output or image generation parameters, both need updating.
Streaming Events: All Renamed
Every streaming event name has changed:
| Old Event | New Event |
|---|---|
interaction.start | interaction.created |
interaction.complete | interaction.completed |
content.start | step.start |
content.delta | step.delta |
content.stop | step.stop |
There’s also a new event: interaction.requires_action. This fires when the model is waiting for a tool result before it can continue streaming. If you’re doing function calling over streaming, you’ll need to handle this event to avoid hanging requests.
Your Migration Checklist
The timeline has three phases:
- Now through May 25: Opt into the new schema to test. SDK users, update to
google-genai>=2.0.0(Python) or@google/genai@>=2.0.0(JavaScript). REST users, addApi-Revision: 2026-05-20to your request headers. - May 26: New schema becomes the default. REST users can opt back to the old schema with
Api-Revision: 2026-05-07— but only temporarily. - June 8: Legacy schema is permanently removed. There is no opt-out after this date.
The window between May 26 and June 8 is not a safety net — it’s a two-week grace period, not an extension. Plan your migration before May 26, not after.
Google also has an automated migration skill in the Gemini Skills Library if you’re using Gemini CLI or Jules. Running /gemini-interactions-api migrate my app will handle the mechanical code changes.
Why Google Did This Now
The flat outputs array was a design holdover from simpler times. A single text response fits neatly in an array. A multi-step agent interaction — with thoughts, tool calls, search results, and model output interleaved — does not. The steps schema is the structural foundation for two capabilities Google has been signaling: mid-flight steering (redirecting an in-progress interaction) and asynchronous tool calls (where the model doesn’t block waiting for tool results).
The timing is also deliberate. Google I/O kicks off May 19. Google wants the Interactions API schema stable before announcing new capabilities that depend on it. As Google’s documentation notes, new models and new agentic features will launch exclusively on the Interactions API — generateContent stays supported and stable, but it will not get new capabilities going forward.
The official migration guide covers every change with before-and-after examples. The Gemini API changelog has the full list of May 2026 changes. And if you haven’t updated google-genai on PyPI to 2.0.0 yet, that’s where you’ll find the SDK release notes.
June 8 is not negotiable. Start the migration now.













