Conversations
Returns the full detail of a single conversation thread, including its metadata, the contact/sender and assignee in meta, the last_non_activity_message, and an embedded messages array. Use this after locating a conversation in one of the list endpoints to render the complete thread header and recent activity. For long threads, paginate the message history separately via GET.../{id}/messages with the before cursor rather than relying solely on the messages embedded here.
curl --request GET \
--url 'https://api.nabrah.ai/api/ext/omni_v2/conversation/conversation/<id>' \
--header 'X-API-Key: <your-api-key>'{
"account_id": 0,
"additional_attributes": {},
"agent_last_seen_at": 0,
"assignee_last_seen_at": 0,
"can_reply": false,
"contact_last_seen_at": 0,
"created_at": 0,
"custom_attributes": {},
"first_reply_created_at": 0,
"id": 0,
"inbox_id": 0,
"labels": [
"string"
],
"last_activity_at": 0,
"last_non_activity_message": {
"account_id": 0,
"additional_attributes": {},
"content": "string",
"content_attributes": {},
"content_type": "string",
"conversation": {
"assignee_id": 0,
"contact_inbox": {
"source_id": null
},
"last_activity_at": 0,
"unread_count": 0
},
"conversation_id": 0,
"created_at": 0,
"external_source_ids": {},
"id": 0,
"inbox_id": 0,
"message_type": 0,
"private": false,
"processed_message_content": "string",
"sender": {
"availability_status": "string",
"available_name": "string",
"avatar_url": "string",
"id": 0,
"name": "string",
"thumbnail": "string",
"type": "string",
"additional_attributes": {},
"blocked": false,
"created_at": 0,
"custom_attributes": {},
"email": "string",
"identifier": "string",
"last_activity_at": 0,
"phone_number": "string"
},
"sender_id": 0,
"sender_type": "string",
"sentiment": {},
"source_id": "string",
"status": "string",
"updated_at": "string",
"attachments": [
{
"id": 0,
"account_id": 0,
"message_id": 0,
"thumb_url": "string",
"data_url": "string",
"file_size": 0,
"file_type": "string",
"extension": "string",
"width": 0,
"height": 0,
"created_at": 0,
"sender": null,
"coordinates_lat": 0,
"coordinates_lng": 0,
"fallback_title": "string",
"meta": {}
}
]
},
"messages": [
{
"account_id": 0,
"additional_attributes": {},
"content": "string",
"content_attributes": {},
"content_type": "string",
"conversation": {
"assignee_id": 0,
"contact_inbox": null,
"last_activity_at": 0,
"unread_count": 0
},
"conversation_id": 0,
"created_at": 0,
"external_source_ids": {},
"id": 0,
"inbox_id": 0,
"message_type": 0,
"private": false,
"processed_message_content": "string",
"sender": {
"availability_status": "string",
"available_name": "string",
"avatar_url": "string",
"id": 0,
"name": "string",
"thumbnail": "string",
"type": "string",
"additional_attributes": {},
"blocked": false,
"created_at": 0,
"custom_attributes": {},
"email": "string",
"identifier": "string",
"last_activity_at": 0,
"phone_number": "string"
},
"sender_id": 0,
"sender_type": "string",
"sentiment": {},
"source_id": "string",
"status": "string",
"updated_at": "string",
"attachments": [
{
"id": null,
"account_id": null,
"message_id": null,
"thumb_url": null,
"data_url": null,
"file_size": null,
"file_type": null,
"extension": null,
"width": null,
"height": null,
"created_at": null,
"sender": null,
"coordinates_lat": null,
"coordinates_lng": null,
"fallback_title": null,
"meta": null
}
]
}
],
"meta": {
"channel": "string",
"hmac_verified": false,
"sender": {
"additional_attributes": {},
"availability_status": "string",
"blocked": false,
"created_at": 0,
"custom_attributes": {},
"email": "string",
"id": 0,
"identifier": "string",
"last_activity_at": 0,
"name": "string",
"phone_number": "string",
"thumbnail": "string"
},
"assignee": {
"email": "string",
"available_name": "string",
"name": "string"
}
},
"muted": false,
"priority": "string",
"sla_policy_id": 0,
"snoozed_until": 0,
"status": "string",
"timestamp": 0,
"unread_count": 0,
"updated_at": 0
}Key fields on the conversation object:
can_replyIndicates whether the channel currently allows sending a reply (for example, outside a messaging window can_reply may be false).
meta.sender is the contact who started the thread; meta.assignee is the workspace member it is assigned to (or absent when unassigned).
agent_last_seen_at, assignee_last_seen_at, and contact_last_seen_at are epoch timestamps used to compute unread state. Update the agent/assignee side with the update_last_seen endpoint.
X-API-KeystringheaderrequiredYour workspace API key. Create one in the dashboard under API keys.
idintegerrequiredInteger id of the conversation to retrieve.
Obtain it from a list endpoint such as GET /api/ext/omni_v2/conversation/conversation.
Successful Response
application/json
Validation Error
application/json