[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-chats\u002Fdiscovery\u002Frecent":3,"docs-tabs-chats\u002Fdiscovery\u002Frecent":6},{"content":4,"lastmod":5},"\n## Последние диалоги\n\n`GET \u002Fv1\u002Fchats\u002Frecent`\n\nВозвращает список последних диалогов текущего пользователя, отсортированных по дате последнего сообщения. Каждый элемент содержит краткую информацию о диалоге, последнем сообщении и счётчике непрочитанных.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | По умолч. | Описание |\n|----------|-----|:-----:|-----------|---------|\n| `skipOpenLines` | string | нет | — | Исключить линии открытых каналов. Принимает `true`, `Y` или `y` |\n| `skipChat` | string | нет | — | Исключить групповые чаты. Принимает `true`, `Y` или `y` |\n| `skipDialog` | string | нет | — | Исключить личные диалоги. Принимает `true`, `Y` или `y` |\n| `unreadOnly` | string | нет | — | Только диалоги с непрочитанными сообщениями. Принимает `true`, `Y` или `y` |\n| `onlyOpenLines` | string | нет | — | Только линии открытых каналов. Принимает `true`, `Y` или `y` |\n| `onlyCopilot` | string | нет | — | Только чаты с AI-ассистентом. Принимает `true`, `Y` или `y` |\n| `onlyChannel` | string | нет | — | Только каналы. Принимает `true`, `Y` или `y` |\n| `lastMessageDate` | string | нет | — | Дата последнего сообщения для постраничной навигации (ISO 8601) |\n| `limit` | number | нет | — | Количество элементов в ответе. Максимум 200 |\n| `offset` | number | нет | `0` | Смещение для пагинации |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Frecent?limit=20\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Frecent?limit=20\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Frecent?limit=20', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\nconst { data } = await res.json()\nconsole.log('Последние диалоги:', data.items)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fchats\u002Frecent?limit=20', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\nconst { data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data` | object | Объект результата |\n| `data.items` | array | Массив последних диалогов |\n| `data.items[].id` | string | Идентификатор диалога (`chatXXX` для группового чата или числовой ID для личного диалога) |\n| `data.items[].chatId` | number | Числовой ID чата |\n| `data.items[].type` | string | Тип диалога: `chat`, `openlines`, `copilot`, `channel` |\n| `data.items[].title` | string | Название диалога |\n| `data.items[].avatar` | object | Аватар диалога |\n| `data.items[].avatar.url` | string | URL изображения аватара. Пустая строка, если аватар не задан |\n| `data.items[].avatar.color` | string | Цвет аватара в шестнадцатеричном формате, например `#4ba984` |\n| `data.items[].message` | object | Последнее сообщение в диалоге |\n| `data.items[].message.id` | number | ID сообщения |\n| `data.items[].message.text` | string | Текст сообщения |\n| `data.items[].message.authorId` | number | ID автора сообщения |\n| `data.items[].message.date` | string | Дата сообщения (ISO 8601) |\n| `data.items[].message.file` | boolean | Содержит ли сообщение файл |\n| `data.items[].message.attach` | boolean | Содержит ли сообщение вложение |\n| `data.items[].message.sticker` | string \\| null | Стикер сообщения или `null` |\n| `data.items[].message.status` | string | Статус сообщения (например, `received`) |\n| `data.items[].lastId` | number | ID последнего прочитанного сообщения |\n| `data.items[].unread` | boolean | Есть ли непрочитанные сообщения |\n| `data.items[].counter` | number | Количество непрочитанных сообщений |\n| `data.items[].pinned` | boolean | Диалог закреплён |\n| `data.items[].dateUpdate` | string | Дата последнего обновления диалога (ISO 8601) |\n| `data.items[].dateLastActivity` | string | Дата последней активности (ISO 8601) |\n| `data.items[].chat` | object | Расширенная информация о чате |\n| `data.items[].chat.id` | number | Числовой ID чата |\n| `data.items[].chat.name` | string | Системное название чата |\n| `data.items[].chat.type` | string | Тип чата: `chat`, `general`, `openlines`, `copilot`, `channel`, `mail`, `crm` и другие |\n| `data.items[].chat.owner` | number | ID владельца чата |\n| `data.items[].chat.userCounter` | number | Количество участников |\n| `data.items[].chat.role` | string | Роль текущего пользователя: `OWNER`, `MANAGER`, `MEMBER` |\n| `data.items[].chat.entityType` | string | Тип связанной сущности (`CRM`, `TASKS`, `MAIL`, `GENERAL` и другие) |\n| `data.items[].chat.entityId` | string | ID связанной сущности |\n| `data.hasMorePages` | boolean | `true`, если есть следующая страница |\n| `data.hasMore` | boolean | Дублирует `hasMorePages`. Сохранён для обратной совместимости |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": \"chat456\",\n        \"chatId\": 456,\n        \"type\": \"chat\",\n        \"title\": \"Команда разработки\",\n        \"avatar\": {\n          \"url\": \"\",\n          \"color\": \"#4ba984\"\n        },\n        \"message\": {\n          \"id\": 1201,\n          \"text\": \"Обновление задачи готово\",\n          \"authorId\": 1,\n          \"date\": \"2026-06-03T16:51:12+03:00\",\n          \"file\": false,\n          \"attach\": false,\n          \"sticker\": null,\n          \"status\": \"received\"\n        },\n        \"lastId\": 1195,\n        \"pinned\": false,\n        \"unread\": false,\n        \"counter\": 0,\n        \"dateUpdate\": \"2026-06-03T16:51:12+03:00\",\n        \"dateLastActivity\": \"2026-06-03T16:51:12+03:00\",\n        \"chat\": {\n          \"id\": 456,\n          \"name\": \"Команда разработки\",\n          \"type\": \"chat\",\n          \"owner\": 1,\n          \"userCounter\": 5,\n          \"role\": \"OWNER\",\n          \"entityType\": \"\",\n          \"entityId\": \"\"\n        }\n      },\n      {\n        \"id\": \"chat123\",\n        \"chatId\": 123,\n        \"type\": \"crm\",\n        \"title\": \"Чат по сделке\",\n        \"avatar\": {\n          \"url\": \"\",\n          \"color\": \"#f76187\"\n        },\n        \"message\": {\n          \"id\": 980,\n          \"text\": \"Договор согласован\",\n          \"authorId\": 7,\n          \"date\": \"2026-06-02T14:08:10+03:00\",\n          \"file\": false,\n          \"attach\": false,\n          \"sticker\": null,\n          \"status\": \"received\"\n        },\n        \"lastId\": 0,\n        \"pinned\": false,\n        \"unread\": false,\n        \"counter\": 0,\n        \"dateUpdate\": \"2026-06-02T14:08:10+03:00\",\n        \"dateLastActivity\": \"2026-06-02T14:08:10+03:00\",\n        \"chat\": {\n          \"id\": 123,\n          \"name\": \"Чат по сделке\",\n          \"type\": \"crm\",\n          \"owner\": 1,\n          \"userCounter\": 2,\n          \"role\": \"MEMBER\",\n          \"entityType\": \"CRM\",\n          \"entityId\": \"DEAL|42\"\n        }\n      }\n    ],\n    \"hasMorePages\": true,\n    \"hasMore\": true\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа `im`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'im' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `im` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов Битрикс24 |\n| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку (подробности в `message`) |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен или вернул ошибку сервера |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Флаги `skipOpenLines` и `onlyOpenLines` взаимоисключающие: включение обоих приводит к результату, при котором ни один из чатов открытых линий не попадёт в список.\n- Параметр `lastMessageDate` используется для постраничной навигации: передайте значение `dateLastActivity` последнего элемента текущей страницы, чтобы получить следующую порцию. При этом передавайте и `offset`, чтобы избежать дублирования записей на границе страниц.\n- Ответ содержит поле `data.copilot` с конфигурацией AI-ассистента портала. Структура используется для отображения ролей в интерфейсе Битрикс24 и не является частью списка диалогов.\n\n## Смотрите также\n\n- [Поиск чатов](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Fsearch)\n- [Найти чат CRM-сущности](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Ffind)\n- [Информация о диалоге](\u002Fdocs\u002Fchats\u002Fdiscovery\u002Fget)\n- [Поиск чатов](\u002Fdocs\u002Fchats\u002Fdiscovery)\n","2026-06-23",{}]