Skip to main content
POST
Send Conversation Message
mode=auto queues the message while a turn is running and signals started when the conversation is idle; mode=queue always enqueues; mode=steer hands the message to the running turn so the agent takes it into account at its next skill call (check is_steerable on Run State first; 409 when idle); mode=interrupt stops the running turn and runs this message as the next turn. A started response means the message was not enqueued (queue_depth: 0): the conversation is idle, so run the turn yourself with Run Conversation Turn passing id = conversation_id. A queued response means it waits behind the running turn; if a stream is open on that turn it runs next on the same stream, otherwise run the queue with Drain Queue. See the Conversations overview for the full conversation model.

Authorizations

x-api-key
string
header
required

API Key for authentication

Path Parameters

agent_id
string
required
conversation_id
string
required

Body

application/json

Body of the chat-backend messages / steer endpoints.

text
string
default:""
files
string[]
mode
enum<string>
default:auto

How an inbound message to a (possibly running) conversation is handled.

Available options:
auto,
queue,
steer
idempotency_key
string | null
user
User · object | null

Response

Successful Response

Result of accepting an inbound message for a running conversation.

action
string
required
message_id
string | null
queue_depth
integer
default:0
steer_target
string | null