im.dialog.messages.get
Получить список последних сообщений
Описание
Метод im.dialog.messages.get получает сообщения указанного диалога, в том числе системные. Не поддерживает стандартную постраничную навигацию из-за потенциально большого объема данных
Получить сообщения без участия в чате можно только для чатов открытой линии через метод imopenlines.session.history.get
Параметры
DIALOG_ID
string
обязательный
Идентификатор чата в формате:
chatXXX— чатsgXXX— чат группы или проектаXXX— идентификатор пользователя личного чата
Идентификатор чата можно получить с помощью метода im.chat.get. Идентификатор пользователя — с помощью методов user.get и user.search
LAST_ID
integer
необязательный
Идентификатор сообщения, относительно которого нужно загрузить более старые сообщения. Метод вернет сообщения с идентификатором меньше указанного.
Чтобы последовательно загрузить историю назад, сначала запросите последние сообщения без LAST_ID и FIRST_ID. Затем передайте в LAST_ID минимальный id из полученного массива messages
FIRST_ID
integer
необязательный
Идентификатор сообщения, относительно которого нужно загрузить более новые сообщения. Метод вернет сообщения с идентификатором больше указанного.
Например, при FIRST_ID=123 и LIMIT=10 метод вернет до 10 сообщений с идентификатором больше 123. Чтобы получить сообщения, добавленные после уже загруженной выборки, передайте в FIRST_ID максимальный id из полученного массива messages
LIMIT
integer
необязательный
Ограничение на количество сообщений в ответе. Если не переданы LAST_ID и FIRST_ID — метод вернет последние сообщения диалога с учетом LIMIT.
Метод может вернуть больше сообщений, чем указано в LIMIT, если в чате есть непрочитанные сообщения.
По умолчанию — 20. Максимальное значение — 50
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DIALOG_ID":"chat1489","FIRST_ID":84869,"LIMIT":10}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/im.dialog.messages.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DIALOG_ID":"chat1489","FIRST_ID":84869,"LIMIT":10,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/im.dialog.messages.get
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type DialogMessagesGetResult = {
chat_id: number
messages: {
id: number
chat_id: number
author_id: number
date: ISODate
text: string
unread: boolean
uuid: string | null
replaces: unknown[]
params: Record<string, unknown>
disappearing_date: ISODate | null
}[]
users: {
id: number
active: boolean
name: string
first_name: string
last_name: string
status: string
last_activity_date: ISODate
type: string
}[]
files: {
id: number
chatId: number
date: ISODate
type: string
name: string
size: number
status: string
authorId: number
authorName: string
urlDownload: string
isTranscribable: boolean
isVideoNote: boolean
isVoiceNote: boolean
}[]
}
try {
const response = await $b24.actions.v2.call.make<DialogMessagesGetResult>({
method: 'im.dialog.messages.get',
params: {
DIALOG_ID: 'chat1489',
FIRST_ID: 84869,
LIMIT: 10,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info(result.chat_id, result.messages.length, result.messages)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function getDialogMessages() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'im.dialog.messages.get',
params: {
DIALOG_ID: 'chat1489',
FIRST_ID: 84869,
LIMIT: 10,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info(result.chat_id, result.messages.length, result.messages)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getDialogMessages)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.im.dialog.messages.get(
dialog_id="chat1489",
first_id=84869,
limit=10,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service->core->call(
'im.dialog.messages.get',
[
'DIALOG_ID' => 'chat1489',
'FIRST_ID' => 84869,
'LIMIT' => 10,
]
);
$result = $response->getResponseData()->getResult();
print_r($result);
} catch (Throwable $e) {
error_log($e->getMessage());
}
BX24.callMethod(
'im.dialog.messages.get',
{
DIALOG_ID: 'chat1489',
FIRST_ID: 84869,
LIMIT: 10
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'im.dialog.messages.get',
[
'DIALOG_ID' => 'chat1489',
'FIRST_ID' => 84869,
'LIMIT' => 10,
]
);
print_r($result);
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "im.dialog.messages.get", b24.Params{
"DIALOG_ID": "chat1489",
"FIRST_ID": 84869,
"LIMIT": 10,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("im.dialog.messages.get: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Ответ
HTTP-статус: 200
{
"result": {
"chat_id": 1489,
"messages": [
{
"id": 84877,
"chat_id": 1489,
"author_id": 503,
"date": "2026-03-04T09:43:26+03:00",
"text": "Рады тебе очень!",
"unread": false,
"uuid": "0c42a08f-4235-49fc-994f-c9bccd499ac1",
"replaces": [],
"params": {
"LIKE": [547],
"FILE_ID": [5255]
},
"disappearing_date": null
},
{
"id": 84875,
"chat_id": 1489,
"author_id": 503,
"date": "2026-03-04T09:43:21+03:00",
"text": "Привет, Анна! Здесь будем обсуждать проект.",
"unread": false,
"uuid": "db2e826a-dd18-4ab5-b76c-4084e106ee28",
"replaces": [],
"params": [],
"disappearing_date": null
},
{
"id": 84869,
"chat_id": 1489,
"author_id": 0,
"date": "2026-03-04T09:42:31+03:00",
"text": "[USER=503 REPLACE]Иван Иванов[/USER] пригласил в чат [USER=547 REPLACE]Анна Петрова[/USER]",
"unread": false,
"uuid": null,
"replaces": [],
"params": {
"CODE": ["CHAT_JOIN"],
"NOTIFY": "N"
},
"disappearing_date": null
}
],
"users": [
{
"id": 503,
"active": true,
"name": "Иван Иванов",
"first_name": "Иван",
"last_name": "Иванов",
"work_position": "админ",
"color": "#4ba984",
"avatar": "https://mysite.ru/upload/resize_cache/main/avatar.jpg",
"avatar_hr": "https://mysite.ru/upload/resize_cache/main/avatar.jpg",
"gender": "M",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"external_auth_id": "socservices",
"status": "online",
"idle": false,
"last_activity_date": "2026-03-04T10:13:14+03:00",
"mobile_last_date": false,
"desktop_last_date": false,
"absent": false,
"departments": [667],
"phones": false,
"bot_data": null,
"type": "user",
"website": "",
"email": "ivanov@mysite.ru"
},
{
"id": 547,
"active": true,
"name": "Анна Петрова",
"first_name": "Анна",
"last_name": "Петрова",
"work_position": "Менеджер",
"color": "#df532d",
"avatar": "",
"avatar_hr": "",
"gender": "F",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"external_auth_id": "default",
"status": "online",
"idle": false,
"last_activity_date": "2026-03-04T10:11:02+03:00",
"mobile_last_date": false,
"desktop_last_date": false,
"absent": false,
"departments": [667],
"phones": false,
"bot_data": null,
"type": "user",
"website": "",
"email": "petrova@mysite.ru"
}
],
"files": [
{
"id": 5255,
"chatId": 1489,
"date": "2026-03-04T09:43:27+03:00",
"type": "image",
"name": "image.png",
"extension": "png",
"size": 2144,
"image": {
"height": 61,
"width": 72
},
"status": "done",
"progress": 100,
"authorId": 503,
"authorName": "Иван Иванов",
"urlPreview": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5255&exact=N&_esd=s6P3x5qDBEKU0NiS7sczr69Y%2FHHR8Za8EXa7STOAXIVOylYhMsnMj5nGU0VXeQ1PIsqm%2F0GNxOju5wR1jNj76d%2FZnVgpyqeIcJ4UiWXm8CJsrmARXWpxWe%2BgJ%2BpGqx0M5CxgjNzIopQp2cwM&fileName=image.png",
"urlShow": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.showImage&SITE_ID=s1&humanRE=1&fileId=5255&width=1280&height=1280&signature=4b6b2bbba680d3bccd8b70e398d94c1c3cfcb018f813089c32db3bb25df594f5&exact=N&_esd=s6P3x5qDBEKU0NiS7sczr69Y%2FHHR8Za8EXa7STOAXIVOylYhMsnMj5nGU0VXeQ1PIsqm%2F0GNxOju5wR1jNj76d%2FZnVgpyqeIcJ4UiWXm8CJsrmARXWpxWe%2BgJ%2BpGqx0M5CxgjNzIopQp2cwM&fileName=image.png",
"urlDownload": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5255&exact=N&_esd=s6P3x5qDBEKU0NiS7sczr69Y%2FHHR8Za8EXa7STOAXIVOylYhMsnMj5nGU0VXeQ1PIsqm%2F0GNxOju5wR1jNj76d%2FZnVgpyqeIcJ4UiWXm8CJsrmARXWpxWe%2BgJ%2BpGqx0M5CxgjNzIopQp2cwM&fileName=image.png",
"viewerAttrs": {
"viewer": "",
"viewerType": "image",
"src": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5255&exact=N&_esd=s6P3x5qDBEKU0NiS7sczr69Y%2FHHR8Za8EXa7STOAXIVOylYhMsnMj5nGU0VXeQ1PIsqm%2F0GNxOju5wR1jNj76d%2FZnVgpyqeIcJ4UiWXm8CJsrmARXWpxWe%2BgJ%2BpGqx0M5CxgjNzIopQp2cwM&fileName=image.png",
"viewerResized": "",
"objectId": "5255",
"viewerGroupBy": "1489",
"imChatId": 1489,
"title": "image.png",
"actions": "[{\"type\":\"download\"},{\"type\":\"copyToMe\",\"text\":\"Сохранить на Диск\",\"action\":\"BXIM.disk.saveToDiskAction\",\"params\":{\"fileId\":\"5255\"},\"extension\":\"disk.viewer.actions\",\"buttonIconClass\":\"ui-btn-icon-cloud\"}]"
},
"mediaUrl": {
"preview": {
"250": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5255&exact=N&_esd=s6P3x5qDBEKU0NiS7sczr69Y%2FHHR8Za8EXa7STOAXIVOylYhMsnMj5nGU0VXeQ1PIsqm%2F0GNxOju5wR1jNj76d%2FZnVgpyqeIcJ4UiWXm8CJsrmARXWpxWe%2BgJ%2BpGqx0M5CxgjNzIopQp2cwM&fileName=image.png"
}
},
"isTranscribable": false,
"isVideoNote": false,
"isVoiceNote": false
}
]
},
"time": {
"start": 1772608704,
"finish": 1772608704.545697,
"duration": 0.5456969738006592,
"processing": 0,
"date_start": "2026-03-04T10:18:24+03:00",
"date_finish": "2026-03-04T10:18:24+03:00",
"operating_reset_at": 1772609304,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа (подробное описание)
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "DIALOG_ID_EMPTY",
"error_description": "Dialog ID can't be empty"
}
| Код | Описание | Значение |
|---|---|---|
400 |
DIALOG_ID_EMPTY |
Dialog ID can't be empty |
400 |
FIRST_ID_STRING |
First ID can't be string |
400 |
LAST_ID_STRING |
Last ID can't be string |
403 |
ACCESS_ERROR |
You do not have access to the specified dialog |

