Skip to content

Chat

Dialogs List

Endpoint
GET https://api.connectycube.com/admin/chat/list
Parameters
ParameterData typeDescriptionValue example
updated_atinteger (timestamp)Filter dialogs by updated_at field (operators gt, lt, gte, lte)updated_at[gt]=1687886581
created_atinteger (timestamp)Filter dialogs by updated_at field (operators gt, lt, gte, lte)created_at[lte]=1687886581
_idstring (ObjectId)Filter dialogs by _id field (operators gt, lt, gte, lte)_id[gte]=620e2b1463ee2a1977b4ee65
limitintegerDialogs in one response (default 100, max 100)limit=50
sort_asc/sort_descstringSet sort direction asc/desc (supported fields created_at, updated_at, _id)sort_desc=updated_at
Request example
Terminal window
curl -X GET \
-H "CB-Administration-API-Key: <API_KEY>" \
-d 'updated_at[lt]=1687886581' \
https://api.connectycube.com/admin/chat/list
Response
{
"total_entries": 1788,
"skip": 0,
"limit": 100,
"items": [
{
"_id": "620e2b1463ee2a1977b4ee65",
"user_id": 32241,
"created_at": "2022-02-17T11:01:40Z",
"updated_at": "2022-02-17T11:01:49Z",
"type": 3,
"occupants_ids":[32241, 32242],
"last_message": "Warning! People are coming",
"last_message_date_sent": 1645095709,
"last_message_id": "620e2b14e45f5b089d000008",
"last_message_user_id": 32241,
"last_message_status": "sent",
"name": null,
"description": null,
"photo": null,
"occupants_count": null,
"xmpp_room_jid": null,
"is_e2ee": null,
"admins_ids":[],
"is_muted": null,
"unread_messages_count": null,
"pinned_messages_ids": null,
"deleted_ids":[],
"silent_ids":[]
}
...
]
}

Response is similar to Retrieve dialog API, but with additional fields

ParameterData typeDescriptionValue example
silent_idsarray of int (field may be missing)Array of users ids who muted chat[32241, 32245]
deleted_idsarray of int (field may be missing)Array of users ids who deleted chat[32245]
NodeJS example

To get list of all dialogs, use pagination by _id field:

import fetch from 'node-fetch'
const url = 'https://api.connectycube.com/admin/chat/list'
const headers = { 'CB-Administration-API-Key': 'XXXXXXXXXXXXXXXXX' }
const limit = 100
let allDialogs = []
const firstResponse = await fetch(`${url}?limit=${limit}`, { headers }).then(response => response.json())
const { total_entries, items } = firstResponse
console.log(total_entries) // 1167
allDialogs = allDialogs.concat(items)
const totalBatchesCount = Math.ceil(total_entries / limit)
for (let i = 1; i < totalBatchesCount; ++i) {
const lastRetrievedDialog = allDialogs.at(-1)
const lastId = lastRetrievedDialog['_id']
const firstResponse = await fetch(`${url}?limit=${limit}&_id[lt]=${lastId}`, { headers }).then(response => response.json())
const { items } = firstResponse
allDialogs = allDialogs.concat(items)
}
console.log(allDialogs.length) // 1167

Messages List

Endpoint
GET https://api.connectycube.com/admin/chat/messages/list
Parameters
ParameterData typeDescriptionValue example
updated_atinteger (timestamp)Filter messages by updated_at field (operators gt, lt, gte, lte)updated_at[gt]=1687886581
created_atinteger (timestamp)Filter messages by updated_at field (operators gt, lt, gte, lte)created_at[lte]=1687886581
_idstring (ObjectId)Filter messages by _id field (operators gt, lt, gte, lte)_id[gte]=63834bbecf1efb102da40f2c
limitintegerMessages in one response (default 100, max 100)limit=50
chat_dialog_idstring (ObjectId)Filter messages by chat_dialog_id fieldchat_dialog_id=61721539107bd9002fdb84ed
sort_asc/sort_descstringSet sort direction asc/desc (supported fields created_at, updated_at, _id)sort_desc=updated_at
Request example
Terminal window
curl -X GET \
-H "CB-Administration-API-Key: <API_KEY>" \
-d '_id[lte]=63834bbecf1efb102da40f2c' \
https://api.connectycube.com/admin/chat/messages/list
Response
{
"total_entries": 663,
"skip": 0,
"limit": 100,
"items": [
{
"_id": "63834bbecf1efb102da40f2c",
"chat_dialog_id": "61721539107bd9002fdb84ed",
"message": "Warning! People are coming! Right Now. By Http",
"date_sent": 1669548990,
"sender_id": 4980089,
"recipient_id": 4997495,
"created_at": "2022-11-27T11:36:31Z",
"updated_at": "2022-11-27T11:36:31Z",
"read_ids": [4980089],
"delivered_ids": [4980089],
"userExtraData": null,
"mission": "take over the planet",
"name": "intel",
"attachments": [
{
"type": "image",
"id": "3004"
},
],
"reactions": null,
"views_count": 0,
"edited_at": null,
"read": 0
}
...
]
}

Response is similar to Retrieve messages API, but with additional fields

ParameterData typeDescriptionValue example
deleted_for_idsarray of int (field may be missing)Array of users ids who deleted message[32245]
NodeJS example

To get list of all messages, use pagination by _id field:

import fetch from 'node-fetch'
const url = 'https://api.connectycube.com/admin/chat/messages/list'
const headers = { 'CB-Administration-API-Key': 'XXXXXXXXXXXXXXXXX' }
const limit = 100
let allMessages = []
const firstResponse = await fetch(`${url}?limit=${limit}`, { headers }).then(response => response.json())
const { total_entries, items } = firstResponse
console.log(total_entries) // 663
allMessages = allMessages.concat(items)
const totalBatchesCount = Math.ceil(total_entries / limit)
for (let i = 1; i < totalBatchesCount; ++i) {
const lastRetrievedMessage = allMessages.at(-1)
const lastId = lastRetrievedMessage['_id']
const firstResponse = await fetch(`${url}?limit=${limit}&_id[lt]=${lastId}`, { headers }).then(response => response.json())
const { items } = firstResponse
allMessages = allMessages.concat(items)
}
console.log(allMessages.length) // 663