Skip to main content
POST
cURL
Create a session before submitting a message by default. streaming defaults to false, which still delivers complete events over SSE; set it to true to request incremental model output
Execution writes session events and can call models, tools, and external resources. Retrying the request can repeat external actions
Each SSE message starts with data:, contains JSON, and ends with a blank line. Read continuously with curl -N. Events can contain only state or artifact changes rather than text; partial: true marks incremental content
These examples illustrate message and error event formats; a successful call does not necessarily emit an error. HTTP 200 only indicates that the stream has started. Check for error in the stream and continue reading until it closes. The interactive request panel may not display events individually

Body

application/json
userId
string
required

User ID

sessionId
string
required

Session ID

appName
string | null

Application name; falls back to ADK_DEFAULT_APP_NAME when omitted and returns 400 if no default is configured

newMessage
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

stateDelta
Statedelta · object | null

Session state changes to apply

functionCallEventId
string | null

Event ID of the function call, used for streaming function-response handling

invocationId
string | null

Invocation ID

customMetadata
Custommetadata · object | null

Custom metadata

Response

Successful response

The response is of type string.

Last modified on September 19, 2026