Skip to navigation

Send a client chat message

Send a message for a browser client-token chat session. The request streams flow/agent events over Server-Sent Events. turnId and submitMode are optional and let newer Persona clients suppress stale interrupted responses; older clients can omit both fields. Opt-in steer accepts exactly one new user message whose id equals turnId for visitor-owned native durable agents. A new execution streams SSE; steering an existing execution returns a 202 delivery receipt without replacing its response. auto takes the same shape as steer and lets a classifier choose while a turn runs: a message that belongs to the running work steers it (202 delivery receipt), and an independent one queues as the next turn (202 queued handle); with nothing running it is an ordinary turn with no route report. A routed or downgraded answer carries X-Runtype-Busy-Message-Route and X-Runtype-Busy-Message-Source (plus -Probability and -Model when the classifier answered), repeated as busyMessageRoute on JSON bodies. Where auto cannot route (another lane, another message shape) it behaves as normal and reports source disabled. Retry with the same turn and message IDs. Send voice: { spoken: true } when the user turn came from a live voice call and the reply will be spoken by a voice model; the turn then runs with a per-turn instruction to lead with a short, speakable answer, which is not stored in the conversation.

Request

This endpoint expects an object.
messageslist of objectsRequired
sessionIdstringRequired>=1 character
assistantMessageIdstringOptional
clientToolslist of objectsOptional
clientToolsFingerprintstringOptional<=128 characters
identityProofobjectOptional

Customer-native auth proof for the Identity Exchange. When present and the surface has a matching integration, the verified tenant/end-user replace any body-asserted tenant/endUser (which are never trusted for web-embedded callers). When Identity Exchange admission is disabled for the caller, the proof is accepted but ignored and confers no trust.

inputsmap from strings to anyOptional
metadatamap from strings to anyOptional
submitModeenumOptional
Allowed values:
turnIdstringOptional1-128 characters
voiceobjectOptional

Voice context for this turn. Omit for typed chat; behavior is unchanged when absent.

Response

SSE stream of chat execution events
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object
OR
object

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
501
Not Implemented Error