Injects a turn into the session as the chosen participant.
The run is queued; the reply arrives on the stream / messages endpoints. The participant must already be bound to the session's agent — an unbound sender is dropped and filed as an access request. 503 means the turn was <b>deferred</b>, not lost: participant resolution faulted, so admission could not be decided and nothing was enqueued. On a provider webhook this asks for a redelivery; here the caller is the widget, so it must be told to retry rather than sit waiting on a stream that will never produce a reply. See `docs/design/inbound-admission-policy.md` §3.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The session id returned by open.
The tenant identifier
The participant to speak as and the turn text.
uuidOptional per-turn async-execution-mode override (sandbox debug console). Forces this run's
async tools (consult / approval / delegate) to await or background, winning over each step's
deployed AsyncExecution.Mode for this turn only — so an operator can exercise the
suspend-and-answer loop without redeploying the agent. Omitted (or UNSPECIFIED) = no
override: the deployed step config applies (current behavior). Honoured only for sandbox
sessions; nothing is persisted to the agent. See docs/design/async-execution-mode.md §7.
"UNSPECIFIED" | "AGENT_DECIDES" | "FORCE_AWAIT" | "FORCE_BACKGROUND"Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/fruxon/sessions/string/turns" \ -H "Content-Type: application/json" \ -d '{}'{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}