Send a message
Sends a message into a chat: text, attachments, or both. This call keeps nothing and logs nothing. Once sent it is a message in the account's inbox, so reading that conversation back through Curviate stores its body in your tenant's inbox records, with no expiry. COMPANY_ chat ids send as the page.
Request
- Base URL: https://api.curviate.com
- URL: https://api.curviate.com/v1/{account_id}/chats/{chat_id}/messages
- Auth: HTTP bearer
Path parameters
The account ID (acc_...) that owns the chat.
The chat to send to. A COMPANY_ chat id (from the inboxes endpoints) sends as that company page instead of the connected member.
Request body
Response
Message sent. Returns the new message_id and sent_as, the acting identity. Reply as a company page simply by sending into one of its chat ids (from GET /v1/{account_id}/inboxes/{inbox_id}/chats): a COMPANY_ chat id (e.g. COMPANY_83734124_2-...) sends AS THE PAGE and echoes sent_as:{kind:'company',company_id,name} (company_id is null when the page could not be correlated to a managed page). Any other chat id sends as the connected member and echoes sent_as:{kind:'personal'}. Never infer the acting identity from the message's sender field, only from sent_as.
Example response
{
"safety_warning": {
"row": "profile_views",
"reset_at": "2026-09-05T00:00:00.000Z",
"hint": {
"parameter": "profile_views.ceiling",
"message": "This account is at its ceiling for profile_views. This action went through because profile_views.posture is warn, and it counted: 101 of 100 this window. Raise profile_views.ceiling, or wait for the window to reset at 2026-09-05T00:00:00.000Z."
},
"reason": "ceiling",
"blocked": false
}
}Changes
No recorded changes to this operation across all 1 revision of this API.