Developer Tools & APIs

Gemini API Interactions: the outputs array is gone, and June 8 is your hard deadline

Google's Gemini Interactions API replaces the flat outputs array with a structured steps timeline. The legacy schema is permanently removed on June 8.

Developer Tools & APIs category

If you are building with the Gemini Interactions API, you need to update your code before June 8, 2026. That date is not a soft suggestion. The legacy response schema is being permanently deleted, and anything still reading from outputs will break.

Here is what changed, why it changed, and exactly what you need to do.

What actually changed

Google announced on May 6, 2026 that the Interactions API would receive two breaking changes to its response structure.

The outputs array is now steps. Previously, a response came back with a flat outputs array containing the model’s generated content. The new schema returns a steps array instead, where each entry has a type discriminator. Step types include model_output, function_call, thought, google_search_call, google_search_result, and others. This matters for agentic workflows where a single interaction might involve tool calls, search queries, and intermediate reasoning steps all interleaved together. A flat array was never really the right shape for that.

response_mime_type is removed. Output format configuration now lives inside a response_format object. This object is polymorphic: each entry carries a type field (text, audio, or image) along with the relevant settings for that modality. If you need multiple output types, you pass an array of format entries. Image generation settings like aspect_ratio and image_size have also moved here, out of generation_config.

The new schema became the default for all requests on May 26. The legacy schema disappears entirely on June 8.

Why Google is making this change now

The flat outputs array made sense when an interaction was essentially a question and an answer. The Interactions API is designed for something more complex: stateful, multi-turn, multi-modal agent conversations running in Google-hosted environments.

A structured steps timeline is the foundation for two capabilities Google has been working toward: mid-flight steering (redirecting an agent while it is still running) and asynchronous tool calls. Those features simply cannot be represented cleanly in a flat array. The schema change now is what makes those features possible later.

New capabilities shipped after May 7 will only appear in steps responses. If your code is still on the legacy schema after June 8, it will not receive those features and, more immediately, it will not work at all.

What this means for your code

Here is the practical migration checklist from Google’s official breaking changes guide:

  • Read response content from steps instead of outputs
  • Handle both user_input and model_output step types
  • For function calling, find function_call steps in the steps array
  • For server-side tools (Google Search, Code Execution), handle the tool-specific step types that now appear in steps
  • For stateless history management, pass the steps array in the input field of your next request

One thing worth knowing: you do not need to manually traverse the entire steps array every time you just want the final answer. The Google GenAI SDKs expose convenience properties directly on the returned Interaction object so you can access outputs for each modality without writing traversal logic yourself.

On streaming: if you are using streaming, your client also needs to listen for the new SSE event types, including interaction.created and step.delta.

On POST vs GET: a POST to /interactions returns only the output steps. A GET to /interactions/{id} returns the full step timeline including the initial user_input step. That distinction matters if you are logging or replaying interactions.

SDK and version requirements

SDK versions 2.0.0 and above automatically use the new steps schema. The legacy schema is not supported in these versions, so upgrading your SDK and migrating your code are the same task.

  • Python: pip install -U google-genai (requires google-genai >= 2.0.0)
  • JavaScript/TypeScript: npm install @google/genai (requires @google/genai >= 2.0.0)

You have a temporary escape hatch, but only until June 8

Until June 8, you can add the header Api-Revision: 2026-05-07 to your requests to force the legacy schema. This is useful if you need a short runway to migrate without your existing code breaking immediately. It is not a long-term option. The header stops working when the legacy schema is removed.

A note on production workloads

If you are running stable production workloads, Google’s recommendation remains to use the standard generateContent API rather than the Interactions API. The Interactions API is still in v1beta and is optimised for agentic, stateful use cases. The breaking changes described here only affect code using the Interactions endpoint.

Automated migration help

If you are using the Gemini CLI or Jules, Google has an automated migration skill in the Gemini Skills Library. Running /gemini-interactions-api migrate my app will handle the mechanical code changes for you, which is a reasonable place to start before reviewing the output manually.

The short version

The outputs array is gone. steps is the replacement. response_mime_type is gone. response_format is the replacement. The new schema has been default since May 26. The old schema is deleted on June 8. Update your SDK to 2.0.0 or above, work through the migration checklist, and test before the deadline. There is no extension.