Для AI-агентов: markdown этой страницы — /docs-content/chats.md индекс документации — /llms.txt
Чаты и сообщения
Работайте с мессенджером Битрикс24 от имени авторизованного пользователя: находите чаты CRM-сущностей, читайте и отправляйте сообщения, управляйте участниками, загружайте файлы и получайте события через опрос.
Скоуп: im | Базовый URL: https://vibecode.bitrix24.tech/v1 | Авторизация: X-Api-Key
Быстрый старт | Полный пример | Справочник эндпоинтов | Коды ошибок
Разделы документации
- Ссылки и гости — ссылки на чат для сотрудников, вступление по коду, гостевые ссылки и приглашения по почте и SMS
- Поиск чатов — последние диалоги, счётчики непрочитанного, папки, проверка доступа и внешний ID, каналы, коллабы и внешние чаты, общие чаты, изменения с момента, чат CRM-сущности, поиск и сведения о диалоге
- Сообщения — чтение, загрузка, контекст, отправка, редактирование, удаление, отметка прочитанными, «прочитать позже», массовая загрузка
- Управление чатами — групповые чаты, владение, уведомления, метка «непрочитано», вступление, родительские чаты, удаление, закреп, прочтение всех чатов или раздела списка, выход
- Участники — участники, упоминания, проверка участия и менеджеры, добавление и удаление
- Файлы — загрузка файлов в чат, загрузка без публикации и публикация загруженных файлов, сохранение на Диск, расшифровка аудио, метаданные файла, папка чата на Диске
- CoPilot — черновой чат CoPilot, модель и роль ассистента, переписывание и оценка ответов
- Стикеры — наборы стикеров, подключение чужих наборов, удаление, недавние стикеры
- Настройки мессенджера — общие настройки пользователя, статус
- Служебные методы — формы задачи и потока, контекст для ботов, Zoom, состояние обновлений, ограничения тарифа, промо-подсказки, отдел пользователя, выход десктоп-приложения
- События — подписка, опрос событий мессенджера, отписка
Оформление сообщений
Справочники по оформлению текста при отправке и редактировании сообщений:
Идентификаторы чатов
В запросах встречаются два вида идентификаторов:
dialogId— идентификатор диалога: число (ID пользователя) для личной переписки, строка видаchatN(напримерchat123) для групповых чатов.chatId— числовой ID чата без префиксаchat. Нужен для управления чатом, участниками и файлами.
Вместо своего идентификатора можно передать литерал me — он заменяется на ID текущего пользователя, которому принадлежит ключ. Так можно отправить сообщение самому себе, не запрашивая свой ID отдельным вызовом. Литерал пишется строчными буквами и работает везде, где принимается dialogId. Исключение — отметка прочитанным: там me принимается только в режиме v2.
Пример — отправить себе уведомление:
curl -X POST "https://vibecode.bitrix24.tech/v1/chats/me/messages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Квартальный отчёт готов"}'
Личное сообщение сотруднику
Чтобы отправить сотруднику личное сообщение, подставьте его числовой ID пользователя Битрикс24 в качестве dialogId. Отдельный поиск или создание диалога не нужны — POST /v1/chats/:dialogId/messages с числовым dialogId доставляет сообщение в личную переписку с этим сотрудником. Поиск чата GET /v1/chats/find находит чаты CRM-сущностей, для личного диалога он не требуется.
Числовой ID сотрудника — из списка пользователей GET /v1/users.
curl -X POST "https://vibecode.bitrix24.tech/v1/chats/42/messages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Дайджест продаж за сегодня готов"}'
Быстрый старт
Найдите чат CRM-сделки, прочитайте сообщения и отправьте ответ.
1. Найдите чат сделки
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://vibecode.bitrix24.tech/v1/chats/find?entityType=CRM&entityId=DEAL|123"
Ответ:
{
"success": true,
"data": {
"id": 2741
}
}
data.id — числовой chatId. Для построения dialogId при обращении к эндпоинтам сообщений добавьте префикс chat: chat2741.
2. Прочитайте сообщения
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://vibecode.bitrix24.tech/v1/chats/chat2741/messages?limit=5"
Ответ:
{
"success": true,
"data": {
"chatId": 2741,
"messages": [
{
"id": 9357,
"chatId": 2741,
"authorId": 1,
"date": "2026-04-26T18:10:54+03:00",
"text": "Коллеги, КП утверждено. Можно выставлять счёт.",
"unread": false
}
],
"users": [
{
"id": 1,
"name": "Иван Петров",
"firstName": "Иван",
"lastName": "Петров"
}
],
"files": []
}
}
3. Отправьте ответ
curl -X POST "https://vibecode.bitrix24.tech/v1/chats/chat2741/messages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Счёт выставлен. Номер: СЧ-2026-0458"}'
Ответ:
{
"success": true,
"data": 36889
}
data — ID отправленного сообщения.
Полный пример
Непрерывный сценарий: создать групповой чат, отправить приветствие, отметить переписку прочитанной, переименовать чат и выйти из него.
const VIBE_KEY = process.env.VIBE_KEY
const BASE = 'https://vibecode.bitrix24.tech/v1'
async function api(method, path, body = null) {
const opts = { method, headers: { 'X-Api-Key': VIBE_KEY } }
if (body) {
opts.headers['Content-Type'] = 'application/json'
opts.body = JSON.stringify(body)
}
const res = await fetch(`${BASE}${path}`, opts)
return res.json()
}
// 1. Создаём групповой чат
const created = await api('POST', '/chats', {
title: 'Рабочая группа',
users: [1, 5, 12],
})
const chatId = created.data // числовой chatId
const dialogId = `chat${chatId}` // dialogId для эндпоинтов сообщений
console.log('Чат создан, ID:', chatId)
// 2. Отправляем приветствие
const sent = await api('POST', `/chats/${dialogId}/messages`, {
message: 'Добро пожаловать в рабочую группу!',
})
console.log('Сообщение отправлено, ID:', sent.data)
// 3. Отмечаем переписку прочитанной
const read = await api('POST', `/chats/${dialogId}/read`, {})
console.log('Непрочитанных осталось:', read.data.counter)
// 4. Переименовываем чат — управление идёт по числовому chatId, без префикса chat
await api('PATCH', `/chats/${chatId}`, {
title: 'Проект: Поставка оборудования',
})
// 5. Выходим из чата
await api('POST', `/chats/${chatId}/leave`, {})
console.log('Готово')
Если вы владелец чата, сначала передайте владение через
POST /v1/chats/:chatId/owner, затем покидайте чат — иначе выход зафиксируется, но владельцем останетесь вы.
Справочник эндпоинтов
Все 150 эндпоинтов раздела:
| Метод | Путь | Bitrix24 метод | Описание |
|---|---|---|---|
| GET | /v1/chats/recent | im.recent.list, с format=v2 — im.v2.Recent.load, im.v2.Recent.tail |
Последние диалоги |
| GET | /v1/chats/counters | im.v2.Counter.get | Счётчики непрочитанного |
| GET | /v1/chats/recent/channels | im.v2.Recent.Channel.tail | Список каналов |
| GET | /v1/chats/recent/collabs | im.v2.Recent.Collab.tail | Список коллаб |
| GET | /v1/chats/projects/:projectId/recent | im.v2.Recent.load, im.v2.Recent.tail | Чаты проекта |
| GET | /v1/chats/recent/external | im.v2.Recent.ExternalChat.tail | Внешние чаты раздела |
| GET | /v1/chats/shared | im.v2.Chat.listShared | Общие чаты с пользователем |
| GET | /v1/chats/sync | im.v2.Sync.list | Изменения чатов с момента |
| GET | /v1/chats/find | im.chat.get | Найти чат CRM-сущности |
| GET | /v1/chats/search | im.search.chat.list | Поиск чатов по тексту |
| GET | /v1/chats/folders | im.v2.Folder.list | Папки чатов |
| GET | /v1/chats/folders/:folderId/recent | im.v2.Folder.Recent.tail | Чаты папки |
| GET | /v1/chats/:dialogId | im.dialog.get, с format=v2 — im.v2.Chat.get |
Информация о диалоге |
| GET | /v1/chats/:dialogId/messages | im.dialog.messages.get, с format=v2 — im.v2.Chat.Message.tail |
Чтение сообщений |
| GET | /v1/chats/:dialogId/load | im.v2.Chat.load, с shallow=true — im.v2.Chat.shallowLoad |
Загрузка чата |
| GET | /v1/chats/messages/:messageId/context | im.v2.Chat.Message.getContext | Сообщения вокруг сообщения |
| GET | /v1/chats/:dialogId/messages/initial | im.v2.Chat.Message.list | Первая страница чата |
| GET | /v1/chats/messages/:messageId/viewers | im.v2.Chat.Message.tailViewers | Кто просмотрел сообщение |
| POST | /v1/chats/:dialogId/messages | im.message.add, с format=v2 — im.v2.Chat.Message.send |
Отправка сообщения |
| PATCH | /v1/chats/:dialogId/messages/:messageId | im.message.update, с format=v2 — im.v2.Chat.Message.update |
Редактирование сообщения |
| DELETE | /v1/chats/:dialogId/messages/:messageId | im.message.delete, с format=v2 — im.v2.Chat.Message.delete |
Удаление сообщения |
| POST | /v1/chats/messages/:messageId/disappear | im.v2.Chat.Message.disappear | Исчезающее сообщение |
| POST | /v1/chats/messages/:messageId/inform | im.v2.Chat.Message.inform | Сообщить собеседнику в «Не беспокоить» |
| DELETE | /v1/chats/messages/:messageId/url-preview | im.v2.Chat.Message.deleteRichUrl | Убрать превью ссылки |
| POST | /v1/chats/:dialogId/read | im.dialog.read, с format=v2 — im.v2.Chat.read |
Отметить прочитанным |
| POST | /v1/chats/messages/read | im.v2.Chat.Message.read | Отметить сообщения прочитанными |
| POST | /v1/chats/messages/:messageId/mark | im.v2.Chat.Message.mark | Прочитать позже |
| POST | /v1/chats/messages/bulk | batch (im.dialog.messages.get) | Массовая загрузка из нескольких диалогов |
| GET | /v1/chats/:dialogId/messages/search | im.v2.Chat.Message.search | Поиск сообщений в чате |
| POST | /v1/chats/:dialogId/forward | im.v2.Chat.Message.send | Пересылка сообщений |
| GET | /v1/chats/messages/:messageId/reactions | im.v2.Chat.Message.Reaction.tail | Список реакций |
| POST | /v1/chats/messages/:messageId/reactions | im.v2.Chat.Message.Reaction.add | Поставить реакцию |
| DELETE | /v1/chats/messages/:messageId/reactions/:reaction | im.v2.Chat.Message.Reaction.delete | Снять реакцию |
| GET | /v1/chats/:dialogId/pins | im.v2.Chat.Pin.tail | Список закрепов |
| POST | /v1/chats/messages/:messageId/pin | im.v2.Chat.Message.pin | Закрепить сообщение |
| DELETE | /v1/chats/messages/:messageId/pin | im.v2.Chat.Message.unpin | Открепить сообщение |
| GET | /v1/chats/:dialogId/pins/count | im.v2.Chat.Pin.count | Число закреплённых сообщений |
| POST | /v1/chats/:dialogId/typing | im.v2.Chat.InputAction.notify | Индикатор «печатает» |
| POST | /v1/chats/:dialogId/anchors/read | im.v2.Chat.Anchor.read | Снять якоря чата |
| POST | /v1/chats/anchors/read | im.v2.Anchor.read | Снять якоря сообщений |
| GET | /v1/chats/messages/comments | im.v2.Chat.Message.CommentInfo.list | Сводка комментариев постов |
| POST | /v1/chats/:dialogId/comments/read-all | im.v2.Chat.Comment.readAll | Отметить прочитанными все комментарии канала |
| POST | /v1/chats/messages/:messageId/comments/subscription | im.v2.Chat.Comment.subscribe | Следить за комментариями поста |
| DELETE | /v1/chats/messages/:messageId/comments/subscription | im.v2.Chat.Comment.unsubscribe | Перестать следить за комментариями поста |
| POST | /v1/chats/messages/:messageId/blocks | im.v2.Chat.Message.Block.Element.append | Добавить блок в сообщение |
| PATCH | /v1/chats/messages/:messageId/blocks/:blockId | im.v2.Chat.Message.Block.Element.update | Заменить блок в сообщении |
| DELETE | /v1/chats/messages/:messageId/blocks/:blockId | im.v2.Chat.Message.Block.Element.delete | Удалить блок из сообщения |
| GET | /v1/chats/:dialogId/commands | im.v2.Chat.Command.list | Команды ботов в чате |
| POST | /v1/chats/messages/:messageId/command | im.message.command | Выполнить команду бота |
| POST | /v1/chats/messages/:messageId/unread | im.dialog.unread | Непрочитано с сообщения |
| POST | /v1/chats | im.chat.add, с format=v2 — im.v2.Chat.add |
Создать групповой чат |
| PATCH | /v1/chats/:chatId | im.chat.updateTitle, с format=v2 — im.v2.Chat.update |
Переименовать чат |
| POST | /v1/chats/:chatId/owner | im.chat.setOwner, с format=v2 — im.v2.Chat.setOwner |
Передать владение |
| POST | /v1/chats/:chatId/leave | im.chat.leave | Покинуть чат |
| POST | /v1/chats/:chatId/mute | im.chat.mute | Выключить или включить уведомления чата |
| PUT | /v1/chats/:dialogId/description | im.v2.Chat.setDescription | Изменить описание чата |
| PUT | /v1/chats/:dialogId/color | im.v2.Chat.setColor | Изменить цвет чата |
| PUT | /v1/chats/:dialogId/avatar | im.v2.Chat.setAvatar, с полем avatarId — im.v2.Chat.setAvatarId |
Изменить аватар чата |
| PUT | /v1/chats/:dialogId/permissions/messages | im.v2.Chat.setManageMessages | Кто пишет сообщения |
| PUT | /v1/chats/:dialogId/permissions/guest-invites | im.v2.Chat.setManageGuestInvites | Кто приглашает гостей |
| PUT | /v1/chats/:dialogId/permissions/settings | im.v2.Chat.setManageSettings | Кто меняет права чата |
| PUT | /v1/chats/:dialogId/permissions/ui | im.v2.Chat.setManageUI | Кто меняет оформление чата |
| PUT | /v1/chats/:dialogId/permissions/users-add | im.v2.Chat.setManageUsersAdd | Кто добавляет участников |
| PUT | /v1/chats/:dialogId/permissions/users-delete | im.v2.Chat.setManageUsersDelete | Кто удаляет участников |
| PUT | /v1/chats/:dialogId/auto-delete | im.v2.Chat.setMessagesAutoDeleteDelay | Настроить автоудаление сообщений |
| GET | /v1/chats/:dialogId/users | im.dialog.users.list, с format=v2 — im.v2.Chat.Member.tail |
Список участников |
| POST | /v1/chats/:chatId/users | im.chat.user.add, с format=v2 — im.v2.Chat.addUsers |
Добавить участников |
| DELETE | /v1/chats/:chatId/users | im.chat.user.delete, с format=v2 — im.v2.Chat.deleteUser |
Удалить участника |
| POST | /v1/chats/:dialogId/managers | im.v2.Chat.addManagers | Назначить менеджеров |
| PUT | /v1/chats/:dialogId/managers | im.v2.Chat.setManagers | Заменить менеджеров |
| DELETE | /v1/chats/:dialogId/managers | im.v2.Chat.deleteManagers | Снять менеджеров |
| GET | /v1/chats/:dialogId/member-entities | im.v2.Chat.MemberEntities.list | Состав чата по сущностям |
| GET | /v1/chats/:dialogId/users/active | im.v2.Chat.User.list | Активные участники |
| GET | /v1/chats/:dialogId/users/relations | im.v2.Chat.Member.filterUsersByParticipation | Записи участия |
| GET | /v1/chats/access | im.v2.Access.check | Проверить доступ к чату или сообщению |
| POST | /v1/chats/dialog-id | im.v2.Chat.getDialogId | ID диалога по внешнему идентификатору |
| GET | /v1/chats/messages/:messageId/load | im.v2.Chat.loadInContext | Загрузка вокруг сообщения |
| POST | /v1/chats/:dialogId/join | im.v2.Chat.join | Вступить в чат |
| PUT | /v1/chats/:dialogId/parent | im.v2.Chat.attachToParent | Привязать к родительскому чату |
| DELETE | /v1/chats/:dialogId/parent | im.v2.Chat.detachFromParent | Отвязать от родительского чата |
| DELETE | /v1/chats/:dialogId | im.v2.Chat.delete | Удалить чат — необратимо |
| POST | /v1/chats/:dialogId/history/clear | im.v2.Chat.clearHistory / im.v2.Chat.clearHistoryForAll | Очистить историю для себя или всех |
| POST | /v1/chats/:dialogId/unread | im.v2.Chat.unread | Поставить метку «непрочитано» |
| DELETE | /v1/chats/:dialogId/unread | im.v2.Chat.read | Снять метку «непрочитано» |
| POST | /v1/chats/folders | im.v2.Folder.add | Создать папку чатов |
| GET | /v1/chats/folders/:folderId | im.v2.Folder.get | Папка с её чатами |
| PATCH | /v1/chats/folders/:folderId | im.v2.Folder.update | Переименовать папку, заменить состав |
| DELETE | /v1/chats/folders/:folderId | im.v2.Folder.delete | Удалить папку |
| PUT | /v1/chats/folders/order | im.v2.Folder.sort | Порядок папок |
| POST | /v1/chats/folders/:folderId/chats | im.v2.Folder.addChats | Добавить чаты в папку |
| DELETE | /v1/chats/folders/:folderId/chats | im.v2.Folder.deleteChats | Убрать чаты из папки |
| PUT | /v1/chats/:dialogId/folders | im.v2.Folder.setChatFolders | Задать папки чата |
| GET | /v1/chats/folders/:folderId/sources | im.v2.Folder.getSources | Источники папки «Все» (доступен не на всех порталах) |
| PUT | /v1/chats/folders/:folderId/sources | im.v2.Folder.updateSources | Задать источники папки «Все» (доступен не на всех порталах) |
| POST | /v1/chats/:dialogId/pin | im.v2.Chat.pin | Закрепить чат |
| PUT | /v1/chats/:dialogId/pin | im.v2.Chat.sortPin | Порядок закреплённого чата |
| DELETE | /v1/chats/:dialogId/pin | im.v2.Chat.unpin | Открепить чат |
| POST | /v1/chats/read-all | im.v2.Chat.readAll | Прочитать все чаты |
| POST | /v1/chats/recent/read | im.v2.Chat.readByRecentSection | Прочитать раздел списка |
| GET | /v1/chats/:dialogId/users/mentionable | im.v2.Chat.Mention.list | Кого можно упомянуть |
| GET | /v1/chats/:dialogId/users/membership | im.v2.Chat.Member.checkMembership | Проверка участия |
| POST | /v1/chats/:chatId/files | im.disk.folder.get + disk.folder.uploadfile + im.disk.file.commit, с format=v2 — im.v2.File.upload |
Загрузить файл в чат |
| POST | /v1/chats/:chatId/files/uploads | im.v2.File.uploadToFolder | Загрузить файл в папку чата без публикации |
| POST | /v1/chats/files/uploads/status | im.v2.File.download | Проверить наличие загруженного файла |
| POST | /v1/chats/:chatId/files/uploads/discard | im.disk.file.delete | Убрать загруженный файл |
| POST | /v1/chats/:chatId/files/uploads/publish | im.disk.file.commit | Опубликовать загруженные файлы |
| GET | /v1/chats/files/:fileId | disk.file.get | Метаданные файла |
| GET | /v1/chats/:chatId/folder | im.disk.folder.get | Папка чата на Диске |
| POST | /v1/chats/:dialogId/sharing-links/primary | im.v2.Chat.SharingLink.getPrimary | Получить основную ссылку чата |
| POST | /v1/chats/:dialogId/sharing-links/individual | im.v2.Chat.SharingLink.getIndividual | Получить личную ссылку на чат |
| POST | /v1/chats/:dialogId/sharing-links/individual/regenerate | im.v2.Chat.SharingLink.regenerateIndividual | Перевыпустить личную ссылку |
| GET | /v1/chats/sharing-links/:code | im.v2.SharingLink.get | Получить ссылку по коду |
| DELETE | /v1/chats/sharing-links/:code | im.v2.Chat.SharingLink.revoke | Отозвать ссылку по коду |
| POST | /v1/chats/join-by-code | im.v2.Chat.joinByCode | Вступить в чат по коду |
| POST | /v1/chats/:dialogId/guest-links | im.v2.Guest.Link.generate | Получить гостевую ссылку |
| POST | /v1/chats/:dialogId/guest-links/regenerate | im.v2.Guest.Link.regenerate | Перевыпустить гостевую ссылку |
| DELETE | /v1/chats/:dialogId/guest-links | im.v2.Guest.Link.revoke | Отозвать гостевую ссылку |
| POST | /v1/chats/:dialogId/guest-invites/email | im.v2.Guest.Link.inviteByEmail | Пригласить гостей по почте |
| POST | /v1/chats/:dialogId/guest-invites/phone | im.v2.Guest.Link.inviteByPhoneNumber | Пригласить гостей по SMS |
| GET | /v1/chats/stickers/packs | im.v2.Sticker.Pack.load, с курсором — im.v2.Sticker.Pack.tail | Список наборов стикеров |
| GET | /v1/chats/stickers/packs/:packId | im.v2.Sticker.Pack.get | Набор стикеров |
| PATCH | /v1/chats/stickers/packs/:packId | im.v2.Sticker.Pack.rename | Переименовать набор |
| DELETE | /v1/chats/stickers/packs/:packId | im.v2.Sticker.Pack.delete | Удалить набор |
| POST | /v1/chats/stickers/packs/:packId/link | im.v2.Sticker.Pack.link | Подключить набор |
| DELETE | /v1/chats/stickers/packs/:packId/link | im.v2.Sticker.Pack.unlink | Отключить набор |
| DELETE | /v1/chats/stickers/packs/:packId/stickers | im.v2.Sticker.delete | Удалить стикеры из набора |
| DELETE | /v1/chats/stickers/recent | im.v2.Sticker.Recent.deleteAll | Очистить недавние стикеры |
| DELETE | /v1/chats/stickers/recent/:stickerId | im.v2.Sticker.Recent.delete | Убрать стикер из недавних |
| POST | /v1/chats/files/save | im.v2.Disk.File.save | Сохранить файлы на Диск |
| POST | /v1/chats/files/:fileId/transcribe | im.v2.Disk.File.transcribe | Расшифровать аудиофайл |
| POST | /v1/chats/copilot/draft | im.v2.Copilot.DraftChat.get | Черновой чат CoPilot |
| PUT | /v1/chats/:dialogId/copilot/engine | im.v2.Chat.Copilot.updateEngine | Сменить модель CoPilot |
| PUT | /v1/chats/:dialogId/copilot/role | im.v2.Chat.Copilot.updateRole | Сменить роль CoPilot |
| POST | /v1/chats/messages/:messageId/regenerate | im.v2.Copilot.Message.regenerate | Переписать ответ CoPilot |
| POST | /v1/chats/messages/:messageId/vote | im.v2.Chat.Message.Vote.send | Оценить ответ |
| GET | /v1/chats/settings | im.v2.Settings.General.list | Общие настройки мессенджера |
| PATCH | /v1/chats/settings | im.v2.Settings.General.update | Изменить настройку |
| PUT | /v1/chats/settings/status | im.v2.Settings.Status.update | Установить статус |
| GET | /v1/chats/:dialogId/task-form | im.v2.Chat.Task.prepare | Форма задачи для чата |
| POST | /v1/chats/messages/:messageId/task-form | im.v2.Chat.Task.prepare | Форма задачи для сообщения |
| GET | /v1/chats/:dialogId/flow-form | im.v2.Chat.Flow.prepare | Форма потока коллаба |
| POST | /v1/chats/:dialogId/bot-context | im.v2.Chat.Bot.sendContext | Контекст для ботов чата |
| POST | /v1/chats/:dialogId/zoom | im.v2.Call.Zoom.create | Конференция Zoom |
| GET | /v1/chats/state | im.v2.UpdateState.getStateData | Состояние обновлений |
| GET | /v1/chats/tariff-restrictions | im.v2.Tariff.Restriction.get | Ограничения тарифа |
| GET | /v1/chats/promotions | im.v2.Promotion.listActive | Промо-подсказки |
| GET | /v1/chats/users/:userId/department | im.v2.User.getDepartment | Отдел пользователя |
| POST | /v1/chats/desktop/logout | im.v2.Desktop.logout | Выход десктоп-приложения |
| POST | /v1/chats/events/subscribe | im.v2.Event.subscribe | Подписаться на события |
| POST | /v1/chats/events/unsubscribe | im.v2.Event.unsubscribe | Отписаться от событий |
| GET | /v1/chats/events | im.v2.Event.get | Получить события |
Коды ошибок
Ошибки чатов
| Код | HTTP | Описание |
|---|---|---|
MISSING_PARAMS |
400 | Не переданы обязательные параметры, например entityType/entityId при поиске чата CRM-сущности, filename/content при загрузке файла, users или userId при добавлении и удалении участников |
INVALID_REQUEST |
400 | Некорректное тело запроса (например, пустой массив dialogs в массовой загрузке) |
BATCH_LIMIT_EXCEEDED |
400 | Превышен лимит 50 диалогов в массовой загрузке |
INVALID_CHAT_ID |
400 | chatId не является положительным целым числом |
INVALID_PARAMS |
400 | Некорректный messageId или fileId. Для format=v2, load, counters, context, ссылок и гостей, папок, метки «непрочитано», «прочитать позже», упоминаний, проверки участия, разделов списка, общих чатов, синхронизации, закрепа, настроек и служебных методов — неизвестный, повторный или некорректный параметр запроса либо поле тела. CoPilot, сохранение и расшифровка файлов также отклоняют отсутствующие или некорректные поля тела. Проверяется до обращения в Битрикс24. |
MESSAGE_REQUIRED |
400 | Пустой текст при отправке или редактировании сообщения |
TITLE_EMPTY |
400 | Пустое название при переименовании чата |
INVALID_OFFSET |
400 | Некорректный offset при опросе событий |
INVALID_LIMIT |
400 | limit при опросе событий не целое число от 1 до 1000 |
WRONG_PATH |
400 | Вызван GET /v1/chats — такого эндпоинта нет. В message перечислены последние диалоги, поиск по тексту и поиск чата CRM-сущности |
PAYLOAD_TOO_LARGE |
413 | Тело запроса больше допустимого: 40 МиБ при загрузке файла, 1 МиБ при смене аватара изображением |
BITRIX_ACCESS_DENIED |
403 | Битрикс24 отказал в изменении настроек чата: пользователь не участник чата или право чата ему это не разрешает |
CHAT_NOT_FOUND_OR_NO_ACCESS |
404 | Чат не существует или нет прав на операцию |
DIALOG_NOT_FOUND_OR_NO_ACCESS |
404 | Диалог не существует или нет доступа |
FILE_NOT_FOUND |
404 | Файл с указанным fileId не найден |
FOLDER_NOT_FOUND |
404 | Папка чата на Диске не найдена |
UPLOAD_FAILED |
500 | Не удалось загрузить файл на Диск |
ME_ALIAS_RESOLUTION_FAILED |
502 | Не удалось определить текущего пользователя для алиаса me |
Коды портала приходят в error.b24Code при 422 BITRIX_ERROR. Для закрепа чатов это FOLDER_PINS_LIMIT_EXCEEDED — уже закреплено 45 чатов, и INVALID_PIN_POSITION — position больше 45 при смене порядка закреплённого чата.
Системные ошибки
| Код | HTTP | Описание |
|---|---|---|
SCOPE_DENIED |
403 | API-ключ не имеет скоупа im |
TOKEN_MISSING |
401 | У API-ключа не настроены токены Битрикс24 |
WRITE_BLOCKED_READONLY_KEY |
403 | Ключ только для чтения вызвал операцию, которая меняет данные |
INVALID_JSON_BODY |
400 | Тело запроса — некорректный JSON |
ENTITY_NOT_FOUND |
404 | Запрошенный объект не найден |
BITRIX_ERROR |
422 | Битрикс24 вернул ошибку (текст в поле message) |
METHOD_NOT_YET_AVAILABLE |
422 | Метод в процессе раскатки и ещё не доступен на портале — страница такого метода начинается с заметки об этом |
BITRIX_UNAVAILABLE |
502 | Портал Битрикс24 недоступен или вернул ошибку сервера |
BITRIX_TIMEOUT |
503 | Битрикс24 не ответил за отведённое время. Исход вызова неизвестен — как поступить, сказано на странице метода |
Общие коды авторизации, ключей и лимитов — на странице Ошибки.