Skip to main content
POST
Run an agent
Create a session under harness_agent first. This endpoint waits for completion and returns an event array. It supports only harness.mcp_servers overrides; use Invoke Harness for model, tool, skill, and instruction overrides
Execution saves session events and can call models, tools, and external resources. Repeating a request can execute these actions again
streaming does not change the JSON response format. See Harness Runtime overview for authentication and shared OAuth restrictions

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
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

This endpoint still returns a single JSON event array; this field does not enable streaming

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

harness
object

Response

Successful response

modelVersion
string | null

Model version

content
Content · object | null

Message content

groundingMetadata
GroundingMetadata · object | null
partial
boolean | null

Whether this event contains partial content

turnComplete
boolean | null

Whether the current turn is complete

turnCompleteReason
enum<string> | null
Available options:
TURN_COMPLETE_REASON_UNSPECIFIED,
MALFORMED_FUNCTION_CALL,
RESPONSE_REJECTED,
NEED_MORE_INPUT,
PROHIBITED_INPUT_CONTENT,
IMAGE_PROHIBITED_INPUT_CONTENT,
INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED,
INPUT_IMAGE_CELEBRITY,
INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED,
INPUT_TEXT_NCII_PROHIBITED,
INPUT_OTHER,
INPUT_IP_PROHIBITED,
BLOCKLIST,
UNSAFE_PROMPT_FOR_IMAGE_GENERATION,
GENERATED_IMAGE_SAFETY,
GENERATED_CONTENT_SAFETY,
GENERATED_AUDIO_SAFETY,
GENERATED_VIDEO_SAFETY,
GENERATED_CONTENT_PROHIBITED,
GENERATED_CONTENT_BLOCKLIST,
GENERATED_IMAGE_PROHIBITED,
GENERATED_IMAGE_CELEBRITY,
GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER,
GENERATED_IMAGE_IDENTIFIABLE_PEOPLE,
GENERATED_IMAGE_MINORS,
OUTPUT_IMAGE_IP_PROHIBITED,
GENERATED_OTHER,
MAX_REGENERATION_REACHED
finishReason
enum<string> | null

Reason generation ended

Available options:
FINISH_REASON_UNSPECIFIED,
STOP,
MAX_TOKENS,
SAFETY,
RECITATION,
LANGUAGE,
OTHER,
BLOCKLIST,
PROHIBITED_CONTENT,
SPII,
MALFORMED_FUNCTION_CALL,
IMAGE_SAFETY,
UNEXPECTED_TOOL_CALL,
IMAGE_PROHIBITED_CONTENT,
NO_IMAGE,
IMAGE_RECITATION,
IMAGE_OTHER
errorCode
string | null

Error code

errorMessage
string | null

Error message

interrupted
boolean | null

Whether the response was interrupted

customMetadata
Custommetadata · object | null

Custom metadata

usageMetadata
GenerateContentResponseUsageMetadata · object | null

Model usage information

liveSessionResumptionUpdate
LiveServerSessionResumptionUpdate · object | null
liveSessionId
string | null
goAway
LiveServerGoAway · object | null
inputTranscription
Transcription · object | null
outputTranscription
Transcription · object | null
avgLogprobs
number | null
logprobsResult
LogprobsResult · object | null
cacheMetadata
CacheMetadata · object | null
citationMetadata
CitationMetadata · object | null
interactionId
string | null

Interaction ID

invocationId
string
default:""

Invocation ID

author
string
default:""

Event author, usually user or an agent name

actions
EventActions · object

State, artifact, and control actions carried by the event

output
unknown
nodeInfo
NodeInfo · object
longRunningToolIds
string[] | null

IDs of long-running tool calls awaiting results

branch
string | null

Execution branch associated with the event

isolationScope
string | null
id
string
default:""

Identifier

timestamp
number

Event time as a Unix timestamp in seconds

Last modified on September 19, 2026