Submits a message to an agent conversation.

Submits a new message to an existing agent conversation for processing. Provide text, attachments, or both. The message starts processing or enters the thread's queue. The response confirms acceptance; it does not contain the agent's reply. Read [GET /agents/threads/{threadId}/messages](api:GET/agents/threads/{threadId}/messages) to retrieve replies. Each request submits a new message. Retrying after a lost response can submit the message again. Processing is subject to the workspace's AI availability and usage limits. <Check title="Required Permissions" icon="key">The user must have permission to contribute to the thread.</Check>

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

threadIdstringRequiredformat: "uuid"
The id of the thread to send the message in.

Request

The model with the content to send to the agent thread.
contentstring or nullOptional
The message text. Required when no attachments are supplied.
attachmentslist of objects or nullOptional
Up to 20 distinct files attached to this message. Upload new files before submitting their identifiers.
modelProviderstring or nullOptional
The provider for a model override. Supply it together with modelName.
modelNamestring or nullOptional
The model to use for this message. It must be available in the workspace.
reasoningLevelstring or nullOptional
The reasoning level for this message. Supported values depend on the selected model.
toolAccessobjectOptional

Per-message agent tool access options.

connectorIdslist of strings or nullOptional
The connector selection for this message.
connectorConnectionslist of objects or nullOptional

Connection choices for custom-agent connectors. These do not change agent settings.

skillIdslist of strings or nullOptional
The skill selection for this message.
answerToInterruptIdstring or nullOptional
The interrupt identifier returned with the question being answered.

Response

OK
threadIdstringOptionalformat: "uuid"
The thread id.
threadRunIdstring or nullOptionalformat: "uuid"
The run id when the message started immediately.
acceptedMessageIdstring or nullOptionalformat: "uuid"

The server-assigned message id. This identity is retained while queued and when execution starts.

queuedMessageIdstring or nullOptionalformat: "uuid"
The persisted queue entry id when the message must wait.
queueOrderinteger or nullOptional
The message's current queue position when it must wait.
isQueuedbooleanOptional
Whether the backend stored the message in the queue.
statusenumOptional
Whether the message was accepted for execution, queued behind another message, or failed to start.

Errors

400
Bad Request Error
404
Not Found Error
503
Service Unavailable Error