[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-chats":3,"docs-tabs-chats":6},{"content":4,"lastmod":5},"\n# Чаты и сообщения\n\nРаботайте с мессенджером Битрикс24 от имени авторизованного пользователя: находите чаты CRM-сущностей, читайте и отправляйте сообщения, управляйте участниками, загружайте файлы и получайте события через опрос.\n\n**Скоуп:** `im` | **Базовый URL:** `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1` | **Авторизация:** `X-Api-Key`\n\n[Быстрый старт](#быстрый-старт) | [Полный пример](#полный-пример) | [Справочник эндпоинтов](#справочник-эндпоинтов) | [Коды ошибок](#коды-ошибок)\n\n## Разделы документации\n\n- [Поиск чатов](\u002Fdocs\u002Fchats\u002Fdiscovery) — список последних диалогов, поиск чата CRM-сущности, текстовый поиск, информация о диалоге\n- [Сообщения](\u002Fdocs\u002Fchats\u002Fmessages) — чтение, отправка, редактирование, удаление, отметка прочитанными, массовая загрузка\n- [Управление чатами](\u002Fdocs\u002Fchats\u002Fmanagement) — создание групповых чатов, переименование, передача владения, выход\n- [Участники](\u002Fdocs\u002Fchats\u002Fmembers) — список участников, добавление, удаление\n- [Файлы](\u002Fdocs\u002Fchats\u002Ffiles) — загрузка файлов в чат, метаданные файла, папка чата на Диске\n- [События](\u002Fdocs\u002Fchats\u002Fevents) — подписка, опрос событий мессенджера, отписка\n\n## Оформление сообщений\n\nСправочники по оформлению текста при отправке и редактировании сообщений:\n\n- [Форматирование текста (BB-коды)](\u002Fdocs\u002Fchats\u002Fmessages\u002Fformatting)\n- [Клавиатура](\u002Fdocs\u002Fchats\u002Fmessages\u002Fkeyboard)\n- [Вложения](\u002Fdocs\u002Fchats\u002Fmessages\u002Fattach)\n\n## Идентификаторы чатов\n\nВ запросах встречаются два вида идентификаторов:\n\n- `dialogId` — идентификатор диалога: число (ID пользователя) для личной переписки, строка вида `chatN` (например `chat123`) для групповых чатов.\n- `chatId` — числовой ID чата без префикса `chat`. Нужен для управления чатом, участниками и файлами.\n\nВместо своего идентификатора можно передать литерал `me` — он заменяется на ID текущего пользователя, которому принадлежит ключ. Так можно отправить сообщение самому себе, не запрашивая свой ID отдельным вызовом. Литерал пишется строчными буквами и работает везде, где принимается `dialogId`: информация о диалоге, чтение и отправка сообщений, список участников.\n\nПример — отправить себе уведомление:\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Fme\u002Fmessages\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": \"Квартальный отчёт готов\"}'\n```\n\n## Личное сообщение сотруднику\n\nЧтобы отправить сотруднику личное сообщение, подставьте его числовой ID пользователя Битрикс24 в качестве `dialogId`. Отдельный поиск или создание диалога не нужны — `POST \u002Fv1\u002Fchats\u002F:dialogId\u002Fmessages` с числовым `dialogId` доставляет сообщение в личную переписку с этим сотрудником. Поиск чата [`GET \u002Fv1\u002Fchats\u002Ffind`](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Ffind) находит чаты CRM-сущностей, для личного диалога он не требуется.\n\nЧисловой ID сотрудника — из списка пользователей [`GET \u002Fv1\u002Fusers`](\u002Fdocs\u002Fentities\u002Fusers).\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002F42\u002Fmessages\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": \"Дайджест продаж за сегодня готов\"}'\n```\n\n## Быстрый старт\n\nНайдите чат CRM-сделки, прочитайте сообщения и отправьте ответ.\n\n### 1. Найдите чат сделки\n\n```bash\ncurl -H \"X-Api-Key: YOUR_API_KEY\" \\\n  \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Ffind?entityType=CRM&entityId=DEAL|123\"\n```\n\nОтвет:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 2741\n  }\n}\n```\n\n`data.id` — числовой `chatId`. Для построения `dialogId` при обращении к эндпоинтам сообщений добавьте префикс `chat`: `chat2741`.\n\n### 2. Прочитайте сообщения\n\n```bash\ncurl -H \"X-Api-Key: YOUR_API_KEY\" \\\n  \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Fchat2741\u002Fmessages?limit=5\"\n```\n\nОтвет:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"chatId\": 253,\n    \"messages\": [\n      {\n        \"id\": 9357,\n        \"chatId\": 253,\n        \"authorId\": 1,\n        \"date\": \"2026-04-26T18:10:54+03:00\",\n        \"text\": \"Коллеги, КП утверждено. Можно выставлять счёт.\",\n        \"unread\": false\n      }\n    ],\n    \"users\": [\n      {\n        \"id\": 1,\n        \"name\": \"Иван Петров\",\n        \"firstName\": \"Иван\",\n        \"lastName\": \"Петров\"\n      }\n    ],\n    \"files\": []\n  }\n}\n```\n\n### 3. Отправьте ответ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Fchat2741\u002Fmessages\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": \"Счёт выставлен. Номер: СЧ-2026-0458\"}'\n```\n\nОтвет:\n\n```json\n{\n  \"success\": true,\n  \"data\": 36889\n}\n```\n\n`data` — ID отправленного сообщения.\n\n## Полный пример\n\nНепрерывный сценарий: создать групповой чат, отправить приветствие, отметить переписку прочитанной, переименовать чат и выйти из него.\n\n```javascript\nconst VIBE_KEY = process.env.VIBE_KEY\nconst BASE = 'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1'\n\nasync function api(method, path, body = null) {\n  const opts = { method, headers: { 'X-Api-Key': VIBE_KEY } }\n  if (body) {\n    opts.headers['Content-Type'] = 'application\u002Fjson'\n    opts.body = JSON.stringify(body)\n  }\n  const res = await fetch(`${BASE}${path}`, opts)\n  return res.json()\n}\n\n\u002F\u002F 1. Создаём групповой чат\nconst created = await api('POST', '\u002Fchats', {\n  title: 'Рабочая группа',\n  users: [1, 5, 12],\n})\nconst chatId = created.data            \u002F\u002F числовой chatId\nconst dialogId = `chat${chatId}`       \u002F\u002F dialogId для эндпоинтов сообщений\nconsole.log('Чат создан, ID:', chatId)\n\n\u002F\u002F 2. Отправляем приветствие\nconst sent = await api('POST', `\u002Fchats\u002F${dialogId}\u002Fmessages`, {\n  message: 'Добро пожаловать в рабочую группу!',\n})\nconsole.log('Сообщение отправлено, ID:', sent.data)\n\n\u002F\u002F 3. Отмечаем переписку прочитанной\nconst read = await api('POST', `\u002Fchats\u002F${dialogId}\u002Fread`, {})\nconsole.log('Непрочитанных осталось:', read.data.counter)\n\n\u002F\u002F 4. Переименовываем чат — управление идёт по числовому chatId, без префикса chat\nawait api('PATCH', `\u002Fchats\u002F${chatId}`, {\n  title: 'Проект: Поставка оборудования',\n})\n\n\u002F\u002F 5. Выходим из чата\nawait api('POST', `\u002Fchats\u002F${chatId}\u002Fleave`, {})\nconsole.log('Готово')\n```\n\n> Если вы владелец чата, сначала передайте владение через `POST \u002Fv1\u002Fchats\u002F:chatId\u002Fowner`, затем покидайте чат — иначе выход зафиксируется, но владельцем останетесь вы.\n\n## Справочник эндпоинтов\n\nВсе 23 эндпоинта раздела:\n\n| Метод | Путь | Bitrix24 метод | Описание |\n|-------|------|---------------|---------|\n| GET | [\u002Fv1\u002Fchats\u002Frecent](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Frecent) | im.recent.list | Последние диалоги |\n| GET | [\u002Fv1\u002Fchats\u002Ffind](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Ffind) | im.chat.get | Найти чат CRM-сущности |\n| GET | [\u002Fv1\u002Fchats\u002Fsearch](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Fsearch) | im.search.chat.list | Поиск чатов по тексту |\n| GET | [\u002Fv1\u002Fchats\u002F:dialogId](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Fget) | im.dialog.get | Информация о диалоге |\n| GET | [\u002Fv1\u002Fchats\u002F:dialogId\u002Fmessages](\u002Fdocs\u002Fchats\u002Fmessages\u002Flist) | im.dialog.messages.get | Чтение сообщений |\n| POST | [\u002Fv1\u002Fchats\u002F:dialogId\u002Fmessages](\u002Fdocs\u002Fchats\u002Fmessages\u002Fsend) | im.message.add | Отправка сообщения |\n| PATCH | [\u002Fv1\u002Fchats\u002F:dialogId\u002Fmessages\u002F:messageId](\u002Fdocs\u002Fchats\u002Fmessages\u002Fupdate) | im.message.update | Редактирование сообщения |\n| DELETE | [\u002Fv1\u002Fchats\u002F:dialogId\u002Fmessages\u002F:messageId](\u002Fdocs\u002Fchats\u002Fmessages\u002Fdelete) | im.message.delete | Удаление сообщения |\n| POST | [\u002Fv1\u002Fchats\u002F:dialogId\u002Fread](\u002Fdocs\u002Fchats\u002Fmessages\u002Fread) | im.dialog.read | Отметить прочитанным |\n| POST | [\u002Fv1\u002Fchats\u002Fmessages\u002Fbulk](\u002Fdocs\u002Fchats\u002Fmessages\u002Fbulk) | batch (im.dialog.messages.get) | Массовая загрузка из нескольких диалогов |\n| POST | [\u002Fv1\u002Fchats](\u002Fdocs\u002Fchats\u002Fmanagement\u002Fcreate) | im.chat.add | Создать групповой чат |\n| PATCH | [\u002Fv1\u002Fchats\u002F:chatId](\u002Fdocs\u002Fchats\u002Fmanagement\u002Frename) | im.chat.updateTitle | Переименовать чат |\n| POST | [\u002Fv1\u002Fchats\u002F:chatId\u002Fowner](\u002Fdocs\u002Fchats\u002Fmanagement\u002Fowner) | im.chat.setOwner | Передать владение |\n| POST | [\u002Fv1\u002Fchats\u002F:chatId\u002Fleave](\u002Fdocs\u002Fchats\u002Fmanagement\u002Fleave) | im.chat.leave | Покинуть чат |\n| GET | [\u002Fv1\u002Fchats\u002F:dialogId\u002Fusers](\u002Fdocs\u002Fchats\u002Fmembers\u002Flist) | im.dialog.users.list | Список участников |\n| POST | [\u002Fv1\u002Fchats\u002F:chatId\u002Fusers](\u002Fdocs\u002Fchats\u002Fmembers\u002Fadd) | im.chat.user.add | Добавить участников |\n| DELETE | [\u002Fv1\u002Fchats\u002F:chatId\u002Fusers](\u002Fdocs\u002Fchats\u002Fmembers\u002Fremove) | im.chat.user.delete | Удалить участника |\n| POST | [\u002Fv1\u002Fchats\u002F:chatId\u002Ffiles](\u002Fdocs\u002Fchats\u002Ffiles\u002Fupload) | im.disk.folder.get + disk.folder.uploadfile + im.disk.file.commit | Загрузить файл в чат |\n| GET | [\u002Fv1\u002Fchats\u002Ffiles\u002F:fileId](\u002Fdocs\u002Fchats\u002Ffiles\u002Ffile-get) | disk.file.get | Метаданные файла |\n| GET | [\u002Fv1\u002Fchats\u002F:chatId\u002Ffolder](\u002Fdocs\u002Fchats\u002Ffiles\u002Ffolder) | im.disk.folder.get | Папка чата на Диске |\n| POST | [\u002Fv1\u002Fchats\u002Fevents\u002Fsubscribe](\u002Fdocs\u002Fchats\u002Fevents\u002Fsubscribe) | im.v2.Event.subscribe | Подписаться на события |\n| POST | [\u002Fv1\u002Fchats\u002Fevents\u002Funsubscribe](\u002Fdocs\u002Fchats\u002Fevents\u002Funsubscribe) | im.v2.Event.unsubscribe | Отписаться от событий |\n| GET | [\u002Fv1\u002Fchats\u002Fevents](\u002Fdocs\u002Fchats\u002Fevents\u002Fpoll) | im.v2.Event.get | Получить события |\n\n## Коды ошибок\n\nКоды, специфичные для работы с чатами:\n\n| Код | HTTP | Описание |\n|-----|------|---------|\n| `SCOPE_DENIED` | 403 | API-ключ не имеет скоупа `im` |\n| `TOKEN_MISSING` | 401 | У API-ключа не настроены токены Битрикс24 |\n| `MISSING_PARAMS` | 400 | Не переданы обязательные параметры (`entityType`\u002F`entityId` при поиске, `filename`\u002F`content` при загрузке файла) |\n| `INVALID_REQUEST` | 400 | Некорректное тело запроса (например, пустой массив `dialogs` в массовой загрузке) |\n| `BATCH_LIMIT_EXCEEDED` | 400 | Превышен лимит 50 диалогов в массовой загрузке |\n| `INVALID_CHAT_ID` | 400 | `chatId` не является положительным целым числом |\n| `TITLE_EMPTY` | 400 | Пустое название при переименовании чата |\n| `INVALID_OFFSET` | 400 | Некорректный `offset` при опросе событий |\n| `INVALID_LIMIT` | 400 | `limit` вне допустимого диапазона |\n| `CHAT_NOT_FOUND_OR_NO_ACCESS` | 404 | Чат не существует или нет прав на операцию |\n| `DIALOG_NOT_FOUND_OR_NO_ACCESS` | 404 | Диалог не существует или нет доступа |\n| `ENTITY_NOT_FOUND` | 404 | Запрошенный объект не найден |\n| `FILE_NOT_FOUND` | 404 | Файл с указанным `fileId` не найден |\n| `FOLDER_NOT_FOUND` | 404 | Папка чата на Диске не найдена |\n| `UPLOAD_FAILED` | 500 | Не удалось загрузить файл на Диск |\n| `ME_ALIAS_RESOLUTION_FAILED` | 502 | Не удалось определить текущего пользователя для алиаса `me` |\n| `BITRIX_ERROR` | 422 | Битрикс24 вернул ошибку (текст в поле `message`) |\n| `BITRIX_UNAVAILABLE` | 502 | Портал Битрикс24 недоступен или вернул ошибку сервера |\n\nОбщие коды авторизации, ключей и лимитов — на странице [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Бот-платформа](\u002Fdocs\u002Fbots)\n- [Уведомления](\u002Fdocs\u002Fnotifications)\n- [Ключи и авторизация](\u002Fdocs\u002Fkeys-auth)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n- [Справочник ошибок](\u002Fdocs\u002Ferrors)\n","2026-07-02",{}]