Overview
Sends a message from the authenticated agent into a conversation. The message is delivered to the customer via the conversation’s channel adapter (e.g. live chat widget, WhatsApp, email). SLA first-response time is recorded on the first agent message.Your plan’s monthly message limit applies. If you exceed your plan’s
max_messages_per_month, this endpoint returns an error. Upgrade your plan to increase the limit.Request
Method:POST
URL: /api/v1/conversations/{conversation_id}/messages
Headers
| Header | Value |
|---|---|
| Authorization | Bearer |
| Content-Type | application/json |
Path parameters
The UUID of the conversation to send a message in.
Body parameters
The text content of the message.
Optional list of attachment objects. Upload files first using
POST /api/v1/conversations/{conversation_id}/upload to obtain URLs, then reference them here. Defaults to an empty array.Response
Returns the created message object.Unique identifier for the message.
The conversation this message belongs to.
Always
"agent" for messages sent via this endpoint.UUID of the authenticated agent who sent the message.
The text content of the message.
List of attachment objects included with the message.
Timestamp when the message was sent.
Example
Response example
Errors
| Status | Meaning |
|---|---|
| 401 | Unauthorized — missing or invalid Bearer token |
| 403 | Plan message limit reached for this month |
| 404 | Conversation not found or does not belong to your business |
| 422 | Validation error — content is required |