Get conversation
One conversation with its contact, assignee, labels and every message, private notes included.
GET https://cotlet.dev/api/v1/chatwoot/conversations/{conversation_id}
Returns the conversation and its messages in time order. Each message has a sender (contact, agent or bot), a private flag and its text. Private notes are marked private: true and are never seen by the customer. Attachments appear as names, not files. Your role decides which conversations open; a conversation outside your inboxes returns APP_PERMISSION_DENIED.
Parameters
| Name | Type | Description |
|---|---|---|
| conversation_id integer required | integer | conversation_id from list_conversations. It is the number in the conversation URL. |
Request
curl https://cotlet.dev/api/v1/chatwoot/conversations/1 \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("chatwoot", "get_conversation", {"conversation_id":1}) const result = await cotlet.call('chatwoot', 'get_conversation', {"conversation_id":1}); cotlet call chatwoot get_conversation --data '{"conversation_id":1}' Example response
{
"conversation_id": 1842,
"status": "open",
"priority": null,
"inbox": "Support email",
"contact": {
"contact_id": 311,
"name": "Dana Whitfield",
"email": "dana.whitfield@example.com"
},
"assignee": null,
"team": null,
"labels": [],
"messages": [
{
"message_id": 90377,
"sender": "contact",
"private": false,
"content": "I was charged twice for October. Can you refund one payment?",
"created_at": "2026-10-22T06:41:00Z"
}
]
}