Skip to main content
POST
cURL
Submit app_name: "harness_agent", user_id, session_id, and new_message. Create a session first for standard calls or MCP-only overrides; streaming: true requests incremental model output With general harness overrides on KeyAuth deployments, the service waits for completion and sends one SSE event. It reads only text from new_message.parts and does not apply state_delta or invocation_id. Top-level max_llm_calls applies only to this general-override path and takes precedence over harness.max_llm_calls
Execution saves session events and can call models and tools. Retries can repeat external actions. Shared OAuth allows only MCP overrides; see the service overview for all restrictions
Each SSE message uses data: <JSON> followed by a blank line. Read until the stream closes with curl -N, handling text, state, or artifact events as well as data: {"error":"..."}. HTTP 200 does not establish execution success. A successful general-override event has this form:

Authorizations

Authorization
string
header
required

Optional locally without a gateway; cloud deployments use the Runtime API key or user-pool JWT required by that deployment, never the model API key

Body

application/json
app_name
string | null
required

Application name; explicitly provide harness_agent for standard calls. This endpoint does not use ADK_DEFAULT_APP_NAME as a fallback

user_id
string
required

User ID

session_id
string
required

Session ID

new_message
Content · object | null

Input message for this turn; it may be omitted when resuming an invocation supported by the application

streaming
boolean
default:false

Request incremental model streaming; defaults to false

state_delta
Statedelta · object | null

Session state changes to apply

function_call_event_id
string | null

Accepted by the request model but not applied by /run_sse in the verified SDK

invocation_id
string | null

Invocation ID

custom_metadata
Custommetadata · object | null

Accepted by the request model but not applied by /run_sse in the verified SDK

harness
HarnessOverrides · object

Per-request overrides; omitted fields inherit the deployed configuration; use the snake_case top-level fields shown on this page when supplying overrides

max_llm_calls
integer | null

Applies only with general Harness overrides on KeyAuth deployments. The top-level value takes precedence over harness.max_llm_calls, followed by deployment configuration. Standard calls and MCP-only overrides do not apply this field

Required range: x >= 1

Response

Successful response

The response is of type string.

Last modified on September 19, 2026