Getting chat history
Method
GET https://amojo.kommo.com/v2/origin/custom/{scope_id}/chats/{conversation_id}/history
Description
The method allows you to get a list of messages in a specific chat.
conversation_id can be obtained either when creating a chat via the chat creation method, or from the message webhook.
Headers & Authorization type
The request headers are the same as the ones for all Chat API requests. Information about them is explained in details in the connect a chat channel page.
Header | Description |
Date | Date and time when the request was generated. |
Content-type | Request data type. |
Content-MD5 | For the request body |
X-Signature | Signature of the request as a string. |
GET Parameters
Parameter | Data type | Description |
offset | int | Offset of the message selection (how many records from the beginning of the selection we skip) |
limit | int | Number of returned entities per query (Maximum – 50) |
Example in PHP
$secret = 'fb50586ff7b68cd831fe0ef356345903f644c0d2';
$method = 'GET';
$contentType = 'application/json';
$date = date(DateTimeInterface::RFC2822);// in format "Tue, 13 Dec 2022 11:00:00 +0000"
$path = '/v2/origin/custom/f62a0162-46a7-430e-b06c-0ef798d76a21_52fd2a28-d2eb-4bd8-b862-a67934927b38/chats/30477717-9f3c-4d3f-8101-60327e14dc48/history';
$getParams = '?limit=50&offset=0';
$url = "https://amojo.kommo.com" . $path;
$checkSum = md5('');
$str = implode("\n", [
strtoupper($method),
$checkSum,
$contentType,
$date,
$path,
]);
$signature = hash_hmac('sha1', $str, $secret);
$headers = [
'Date' => $date,
'Content-Type' => $contentType,
'Content-MD5' => strtolower($checkSum),
'X-Signature' => strtolower($signature),
];
$curlHeaders = [];
foreach ($headers as $name => $value) {
$curlHeaders[] = $name . ": " . $value;
}
echo $method . ' ' . $url . $getParams . PHP_EOL;
foreach ($curlHeaders as $header) {
echo $header . PHP_EOL;
}
Example of the cURL request
curl --location --request GET 'https://amojo.kommo.com/v2/origin/custom/f62a0162-46a7-430e-b06c-0ef798d76a21_52fd2a28-d2eb-4bd8-b862-a67934927b38/chats/30477717-9f3c-4d3f-8101-60327e14dc48/history?limit=50&offset=0' \
--header 'Date: Tue, 13 Dec 2022 11:00:00 +0000' \
--header 'Content-Type: application/json' \
--header 'Content-MD5: d41d8cd98f00b204e9800998ecf8427e' \
--header 'X-Signature: 2a2593df86235c44943a40ce35409d18bda5778c'
Data type header when the request is successful
Content-Type: application/json
Data type header in case of an error
Content-Type: application/json
HTTP Pesponse Codes
Response code | Condition |
200 | Request completed successfully |
204 | Chat does not exist or there are no messages |
403 | Request signature is incorrect |
400 | Incorrect data transmitted. Details are available in the response body |
Response example
{
"messages": [
{
"timestamp": 1670930693,
"msec_timestamp": 1670930693280,
"sender": {
"id": "b0bc49f0-ec21-4463-965f-1fe1d4cd5b89",
"name": "Lama Saqqour",
"avatar": ""
},
"receiver": {
"id": "9c2ccde3-a3ab-4695-832c-919dbfc598ea",
"client_id": "b0bc49f0-ec21-4463-965f-1fe1d4cd5a89",
"name": "Adam",
"avatar": "https://www.w3schools.com/w3images/avatar2.png",
"phone": "+18305803077"
},
"message": {
"id": "c57dae8e-de79-468b-a923-9a7c88c733d7",
"type": "picture",
"text": "Hello from Kommo",
"media": "https://amojo.kommo.com/attachments/52fd2a28-d2eb-4bd8-b862-a67934927b38/14723c64-c40d-4efc-9f78-9625adac414c/zDCRN_logo-min.jpg",
"thumbnail": "https://amojo.kommo.com/attachments/52fd2a28-d2eb-4bd8-b862-a67934927b38/14723c64-c40d-4efc-9f78-9625adac414c/zDCRN_logo-min_320x200.jpg",
"file_name": "logo-min.png",
"file_size": 27107
}
},
{
"timestamp": 1670832082,
"msec_timestamp": 1670832082680,
"sender": {
"id": "9c2ccde3-a3ab-4695-832c-919dbfc598ea",
"client_id": "b0bc49f0-ec21-4463-965f-1fe1d4cd5a89",
"name": "Adam",
"avatar": "https://www.w3schools.com/w3images/avatar2.png",
"phone": "+18305803077"
},
"message": {
"id": "60595445-a8b2-4a97-b7a9-7101ec25a74f",
"client_id": "f1065e3b-0ec6-427b-b97c-883329acbaaa",
"type": "text",
"text": "Hello Kommo! Have a productive week. ",
"media": "",
"thumbnail": "",
"file_name": "",
"file_size": 0
}
}
]
}
Response parameters
Parameter | Data type | Description |
timestamp | int | Timestamp when the message was sent |
msec_timestamp | int | Timestamp when the message was sent in milliseconds |
sender | object | Message sender. Description about the elements of the sender object. |
receiver | object | Message receiver. Description about the elements of the receiver object. |
message | object | Message body. Description about the elements of the message object. |
Sender and receiver entities
Parameter | Data type | Description |
id | string | Recipient ID /sender ID of the message in the Chats API |
name | string | Recipient name /sender name of the message in the Chats API |
client_id | string | Message recipient ID /sender ID on the integration side |
avatar | string | Link to the recipient’s/sender’s avatar, if it was passed during creation |
phone | string | Recipient’s/sender’s phone number, if it was given during creation |
string | Email of the recipient/sender, if it was sent during creation |
Message entity
Parameter | Data type | Description |
id | string | Chat ID on the Chat API side |
client_id | string | Chat ID on the integration side |
type | string | Message type |
text | string | Message text |
media | string | Link to the media file |
thumbnail | string | Link to media thumbnail |
file_name | string | The name of the file from the “media” field. |
file_size | string | The size of the file from the “media” field |
media_group_id | string | ID of the media group. If the user sends a single message with multiple attachments, we will split the message into several, but the media files will be combined into one group. |
When developing chat integrations you will need to update the delivery status of a message.