Conversations
Lists conversations matching a structured filter expression supplied in the JSON body, returning the same response shape as the generic list endpoint (meta folder counts plus a payload array of conversation summaries). Use this when the simple assignee_type/status_param/q query filters are not expressive enough — the body's filters array lets you combine multiple attribute conditions. Results are paginated with the page query parameter.
curl --request POST \
--url 'https://api.nabrah.ai/api/ext/omni_v2/conversation/conversation/filter' \
--header 'X-API-Key: <your-api-key>' \
--header 'Content-Type: application/json' \
--data '{
"filters": [
{
"attribute_key": "status",
"filter_operator": "equal_to",
"values": [
"open"
]
},
{
"attribute_key": "priority",
"filter_operator": "equal_to",
"values": [
"urgent"
]
}
]
}'{
"meta": {
"all_count": 0,
"mine_count": 0,
"unassigned_count": 0,
"assigned_count": 0
},
"payload": [
{
"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": null,
"conversation_id": 0,
"created_at": 0,
"external_source_ids": {},
"id": 0,
"inbox_id": 0,
"message_type": 0,
"private": false,
"processed_message_content": "string",
"sender": null,
"sender_id": 0,
"sender_type": "string",
"sentiment": {},
"source_id": "string",
"status": "string",
"updated_at": "string",
"attachments": []
},
"messages": [
{
"account_id": null,
"additional_attributes": null,
"content": null,
"content_attributes": null,
"content_type": null,
"conversation": null,
"conversation_id": null,
"created_at": null,
"external_source_ids": null,
"id": null,
"inbox_id": null,
"message_type": null,
"private": null,
"processed_message_content": null,
"sender": null,
"sender_id": null,
"sender_type": null,
"sentiment": null,
"source_id": null,
"status": null,
"updated_at": null,
"attachments": null
}
],
"meta": {
"channel": "string",
"hmac_verified": false,
"sender": null,
"assignee": null
},
"muted": false,
"priority": "string",
"sla_policy_id": 0,
"snoozed_until": 0,
"status": "string",
"timestamp": 0,
"unread_count": 0,
"updated_at": 0
}
]
}The request body wraps an array of filter conditions.
filtersAn array of filter condition objects. Each entry expresses a condition on a conversation attribute (such as status, assignee, priority, labels, or inbox); combine multiple entries to narrow results. An empty object matches broadly — provide concrete conditions to filter.
filtersThe response payload is identical in shape to GET /api/ext/omni_v2/conversation/conversation.
X-API-KeystringheaderrequiredYour workspace API key. Create one in the dashboard under API keys.
pageinteger1-based page number for pagination.
Defaults to the first page when omitted. Page size is server-defined.
Provide one or more filter conditions in the filters array to scope the conversation list.
{
"filters": [
{
"attribute_key": "status",
"filter_operator": "equal_to",
"values": [
"open"
]
},
{
"attribute_key": "priority",
"filter_operator": "equal_to",
"values": [
"urgent"
]
}
]
}Successful Response
application/json
Validation Error
application/json