Gemini API: Interactions API Breaking Change β€” `outputs` Renamed to `steps`

Gemini CLI

Google has introduced a breaking change to the Gemini API Interactions API: the outputs field on tool call responses has been renamed to steps. Any developer accessing this field in REST payloads or via the Python/JavaScript SDKs must update their code immediately. The rename carries no behavioral differences β€” only the field name changes β€” and was introduced to better align the API schema with the conceptual model of agentic execution, where each tool invocation represents an intermediate step rather than a terminal output.


Overview

The Gemini API Interactions API has introduced a breaking change affecting all developers who parse response payloads in agentic workflows: the outputs field on tool call results has been renamed to steps. This change is part of Google's broader effort to standardize terminology across the Interactions API as it moves toward general availability.

What Changed

The outputs β†’ steps Rename

In previous versions of the Interactions API, tool invocation results were returned under the outputs key in the response payload. As of the May 2026 update, that field has been renamed to steps. Any application code that accesses response.outputs (or the equivalent in the SDK) must be updated to reference response.steps instead.

This rename applies to the full response structure returned by GenerateContent calls when using the Interactions API with tool use enabled. It affects both REST API consumers and users of the official Python and JavaScript/TypeScript SDKs.

Why the Rename?

Google's engineering team introduced this change to better align the Interactions API's response schema with the conceptual model of agentic execution. In an agent loop, each tool invocation represents a discrete step in a reasoning chain rather than an output in the classical sense β€” the latter term historically implied a final result rather than an intermediate action. The rename makes the schema more consistent with how multi-step agent traces are represented elsewhere in the Gemini ecosystem.

Migration Guide

REST API

Before (old):

{
  candidates: [{
    content: {
      outputs: [
        { toolUse: { ... }, toolResult: { ... } }
      ]
    }
  }]
}

After (new):

{
  candidates: [{
    content: {
      steps: [
        { toolUse: { ... }, toolResult: { ... } }
      ]
    }
  }]
}

Python SDK

# Before
for output in response.outputs:
    print(output.tool_use)

# After
for step in response.steps:
    print(step.tool_use)

JavaScript / TypeScript SDK

// Before
for (const output of response.outputs) {
  console.log(output.toolUse);
}

// After
for (const step of response.steps) {
  console.log(step.toolUse);
}

Who Is Affected

This is a breaking change for any developer who:

  • Directly accesses the outputs field on Interactions API responses
  • Parses raw JSON payloads from REST calls to the Interactions API with tool use enabled
  • Uses the Python or JavaScript SDK and references response.outputs programmatically

Developers who only call the Interactions API for plain text generation (no tool use) are not affected.

Rollout Timeline

Google began enforcing the new steps field name on May 7, 2026. The outputs field is no longer returned in Interactions API responses as of this date. There is no grace period where both fields are returned simultaneously β€” developers must update their code before this date to avoid runtime errors.

Recommended Action

Google recommends performing a global search in affected codebases for any reference to .outputs in the context of Interactions API response handling, and replacing each occurrence with .steps. The change is purely a rename with no behavioral differences β€” tool invocation semantics, payload structure, and ordering remain identical.