[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-mail\u002Fmessages":3,"docs-tabs-mail\u002Fmessages":6},{"content":4,"lastmod":5},"\n# Письма\n\nСписок, чтение и отправка писем, работа с цепочками переписки, ответы, пересылка и перемещение между папками.\n\nБитрикс24 API: `mail.message.*`\nСкоуп: `mail`\n\n## Операции\n\n- [Список писем](.\u002Fmessages\u002Flist.md) — `GET \u002Fv1\u002Fmail\u002Fmessages`\n- [Получить письмо](.\u002Fmessages\u002Fget.md) — `GET \u002Fv1\u002Fmail\u002Fmessages\u002F:id`\n- [Цепочка переписки](.\u002Fmessages\u002Fthread.md) — `GET \u002Fv1\u002Fmail\u002Fmessages\u002F:id\u002Fthread`\n- [Отправить письмо](.\u002Fmessages\u002Fsend.md) — `POST \u002Fv1\u002Fmail\u002Fmessages`\n- [Ответить на письмо](.\u002Fmessages\u002Freply.md) — `POST \u002Fv1\u002Fmail\u002Fmessages\u002F:id\u002Freply`\n- [Переслать письмо](.\u002Fmessages\u002Fforward.md) — `POST \u002Fv1\u002Fmail\u002Fmessages\u002F:id\u002Fforward`\n- [Переместить письма](.\u002Fmessages\u002Fmove.md) — `POST \u002Fv1\u002Fmail\u002Fmessages\u002Fmove`\n\n## Смотрите также\n\n- [Почта](\u002Fdocs\u002Fmail)\n","2026-06-11",{"messages\u002Flist.md":7,"messages\u002Fget.md":8,"messages\u002Fthread.md":9,"messages\u002Fsend.md":10,"messages\u002Freply.md":11,"messages\u002Fforward.md":12,"messages\u002Fmove.md":13},"\n## Список писем\n\n`GET \u002Fv1\u002Fmail\u002Fmessages`\n\nВозвращает список писем подключённых почтовых ящиков с поддержкой фильтров и постраничной загрузки.\n\n## Параметры\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|----------|\n| `mailboxId` | number | — | Идентификатор ящика. Список ящиков: `GET \u002Fv1\u002Fmail\u002Fmailboxes` |\n| `searchQuery` | string | — | Полнотекстовый поиск по письмам |\n| `folder` | string | — | Имя папки (например, `INBOX`) |\n| `isSeen` | boolean | — | `true` — только прочитанные, `false` — только непрочитанные |\n| `hasAttachments` | boolean | — | `true` — только письма с вложениями |\n| `dateFrom` | string | — | Начало периода, формат ISO 8601 (`2026-05-01T00:00:00+00:00`) |\n| `dateTo` | string | — | Конец периода, формат ISO 8601 (`2026-05-01T00:00:00+00:00`) |\n| `limit` | number | `50` | Размер страницы, от 1 до 500 |\n| `offset` | number | `0` | Смещение от начала списка |\n\nПри `limit` больше 50 страницы собираются автоматически на стороне сервера, и в ответ добавляется поле `total` — общее число писем, удовлетворяющих фильтру. При `limit` от 1 до 50 возвращается одна страница без поля `total`. Максимум за один запрос — 500 писем.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages?mailboxId=5&limit=10\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages?mailboxId=5&limit=10\" \\\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(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages?mailboxId=5&limit=10',\n  {\n    headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n  }\n)\nconst { success, data } = await res.json()\nconsole.log(`Писем: ${data.items.length}`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages?mailboxId=5&limit=10',\n  {\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | Всегда `true` при успехе |\n| `total` | number | Общее число писем, удовлетворяющих фильтру. Возвращается при `limit` больше 50 |\n| `data.items` | array | Массив писем |\n| `data.items[].id` | number | Идентификатор письма |\n| `data.items[].mailboxId` | number | Идентификатор почтового ящика |\n| `data.items[].mailboxEmail` | string | Адрес почтового ящика |\n| `data.items[].subject` | string | Тема письма |\n| `data.items[].from` | string | Отправитель в формате `Имя \u003Cадрес>` |\n| `data.items[].to` | string | Получатель в формате `Имя \u003Cадрес>` |\n| `data.items[].cc` | string \\| null | Адреса в копии, `null` при отсутствии копий |\n| `data.items[].date` | string | Дата отправки в формате `YYYY-MM-DD HH:MM:SS` (без часового пояса) |\n| `data.items[].isSeen` | boolean | Прочитано ли письмо |\n| `data.items[].hasAttachments` | boolean | Есть ли вложения |\n| `data.items[].url` | string | Ссылка на письмо в интерфейсе Битрикс24 |\n| `data.items[].bindings` | array | Привязки письма к объектам Битрикс24. Пустой массив, если письмо ни к чему не привязано |\n| `data.items[].bindings[].type` | string | Тип привязанного объекта (например, `task`) |\n| `data.items[].bindings[].entityId` | number | Идентификатор привязанного объекта |\n| `data.items[].body` | null | Полный текст письма в списке не возвращается (доступен в `GET \u002Fv1\u002Fmail\u002Fmessages\u002F:id`) |\n\nURL любого письма из массива `data.items` — его `id`:\n\n```\nhttps:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fmail\u002Fmessage\u002F\u003Cid>?source=mail\n```\n\n`\u003Cportal>` — домен портала. Доступ ограничен правами сотрудника в Битрикс24. В ответе также возвращается готовый URL в поле `data.items[].url`.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"items\": [\n      {\n        \"id\": 1763,\n        \"mailboxId\": 5,\n        \"mailboxEmail\": \"support@example.com\",\n        \"subject\": \"Re: Запрос по интеграции\",\n        \"from\": \"Анна Иванова \u003Canna@example.com>\",\n        \"to\": \"Поддержка \u003Csupport@example.com>\",\n        \"cc\": null,\n        \"date\": \"2026-05-18 15:35:32\",\n        \"isSeen\": true,\n        \"hasAttachments\": false,\n        \"url\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fmail\u002Fmessage\u002F1763\",\n        \"bindings\": [],\n        \"body\": null\n      },\n      {\n        \"id\": 1761,\n        \"mailboxId\": 5,\n        \"mailboxEmail\": \"support@example.com\",\n        \"subject\": \"Запрос по интеграции\",\n        \"from\": \"Поддержка \u003Csupport@example.com>\",\n        \"to\": \"anna@example.com \u003Canna@example.com>\",\n        \"cc\": null,\n        \"date\": \"2026-05-18 15:35:10\",\n        \"isSeen\": true,\n        \"hasAttachments\": false,\n        \"url\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fmail\u002Fmessage\u002F1761\",\n        \"bindings\": [],\n        \"body\": null\n      }\n    ]\n  }\n}\n```\n\nПри `limit` больше 50 структура ответа та же, дополнительно приходит поле `total` с общим числом писем, удовлетворяющих фильтру.\n\n## Пример ответа при ошибке\n\n403 — нет скоупа `mail`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'mail' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `mail` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов Битрикс24 |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов (заголовок `Retry-After: 2`) |\n| 502 | `BITRIX_UNAVAILABLE` | Портал Битрикс24 вернул ошибку 5xx |\n| 422 | `BITRIX_ERROR` | Прочие ошибки Битрикс24 |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ деактивирован |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Получить письмо](.\u002Fget.md)\n- [Цепочка переписки](.\u002Fthread.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация и ключи](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Получить письмо\n\n`GET \u002Fv1\u002Fmail\u002Fmessages\u002F:id`\n\nВозвращает одно письмо по идентификатору, включая полный текст сообщения.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|----------|\n| `id` (path) | number | да | Идентификатор письма. Список: `GET \u002Fv1\u002Fmail\u002Fmessages` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1761\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1761\" \\\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\u002Fmail\u002Fmessages\u002F1761', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\nconst { success, data } = await res.json()\nconsole.log('Тема:', data.item.subject)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1761', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.item` | object | Объект письма |\n| `data.item.id` | number | Идентификатор письма |\n| `data.item.mailboxId` | number | Идентификатор почтового ящика |\n| `data.item.mailboxEmail` | string | Адрес почтового ящика |\n| `data.item.subject` | string | Тема письма |\n| `data.item.from` | string | Отправитель в формате `Имя \u003Cадрес>` |\n| `data.item.to` | string | Получатель в формате `Имя \u003Cадрес>` |\n| `data.item.cc` | string | Копия письма; пустая строка `\"\"` когда копий нет |\n| `data.item.date` | string | Дата отправки в формате `YYYY-MM-DD HH:MM:SS` (без часового пояса) |\n| `data.item.isSeen` | boolean | Прочитано ли письмо |\n| `data.item.hasAttachments` | boolean | Есть ли вложения |\n| `data.item.url` | string | Ссылка на письмо в интерфейсе Битрикс24 |\n| `data.item.bindings` | array | Привязки письма к объектам CRM |\n| `data.item.body` | string | Полный текст письма с переносами строк (`\\r\\n`) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"item\": {\n      \"id\": 1761,\n      \"mailboxId\": 5,\n      \"mailboxEmail\": \"support@example.com\",\n      \"subject\": \"Запрос по интеграции\",\n      \"from\": \"Поддержка \u003Csupport@example.com>\",\n      \"to\": \"anna@example.com \u003Canna@example.com>\",\n      \"cc\": \"\",\n      \"date\": \"2026-05-18 15:35:10\",\n      \"isSeen\": true,\n      \"hasAttachments\": false,\n      \"url\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fmail\u002Fmessage\u002F1761\",\n      \"bindings\": [],\n      \"body\": \"Здравствуйте! Уточните, пожалуйста, сроки по интеграции.\\r\\n\\r\\n-- \\r\\nС уважением, отдел поддержки\"\n    }\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — письмо не найдено:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Запись с ID = `999999999` не найдена\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 400 | `INVALID_PARAMS` | `id` не является положительным целым числом (сообщение: `id must be a positive integer`) |\n| 404 | `ENTITY_NOT_FOUND` | Письмо с указанным `id` не найдено |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `mail` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов Битрикс24 |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов (заголовок `Retry-After: 2`) |\n| 502 | `BITRIX_UNAVAILABLE` | Портал Битрикс24 вернул ошибку 5xx |\n| 422 | `BITRIX_ERROR` | Прочие ошибки Битрикс24 |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ деактивирован |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список писем](.\u002Flist.md)\n- [Цепочка переписки](.\u002Fthread.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Цепочка переписки\n\n`GET \u002Fv1\u002Fmail\u002Fmessages\u002F:id\u002Fthread`\n\nВозвращает все письма цепочки переписки, к которой относится указанное письмо.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|----------|\n| `id` (path) | number | да | Идентификатор любого письма из цепочки. Список: `GET \u002Fv1\u002Fmail\u002Fmessages` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1763\u002Fthread\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1763\u002Fthread\" \\\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(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1763\u002Fthread',\n  {\n    headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n  }\n)\nconst { success, data } = await res.json()\nconsole.log(`Писем в цепочке: ${data.length}`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1763\u002Fthread',\n  {\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив писем цепочки, отсортированный по дате |\n| `data[].id` | number | Идентификатор письма |\n| `data[].subject` | string | Тема письма |\n| `data[].from` | string | Отправитель в формате `Имя \u003Cадрес>` |\n| `data[].to` | string | Получатель в формате `Имя \u003Cадрес>` |\n| `data[].cc` | string | Копия письма; пустая строка `\"\"` когда копий нет |\n| `data[].date` | string | Дата отправки в формате `YYYY-MM-DD HH:MM:SS` (без часового пояса) |\n| `data[].body` | string | Полный текст письма с переносами строк (`\\r\\n`) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1761,\n      \"subject\": \"Запрос по интеграции\",\n      \"from\": \"Поддержка \u003Csupport@example.com>\",\n      \"to\": \"anna@example.com \u003Canna@example.com>\",\n      \"cc\": \"\",\n      \"date\": \"2026-05-18 15:35:10\",\n      \"body\": \"Здравствуйте! Уточните, пожалуйста, сроки по интеграции.\\r\\n\\r\\n-- \\r\\nС уважением, отдел поддержки\"\n    },\n    {\n      \"id\": 1763,\n      \"subject\": \"Re: Запрос по интеграции\",\n      \"from\": \"Анна Иванова \u003Canna@example.com>\",\n      \"to\": \"Поддержка \u003Csupport@example.com>\",\n      \"cc\": \"\",\n      \"date\": \"2026-05-18 15:35:32\",\n      \"body\": \"Сроки устроят. Спасибо!\"\n    }\n  ]\n}\n```\n\n## Пример ответа при ошибке\n\n404 — письмо не найдено:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Запись с ID = `999999999` не найдена\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 400 | `INVALID_PARAMS` | `id` не является положительным целым числом (сообщение: `id must be a positive integer`) |\n| 404 | `ENTITY_NOT_FOUND` | Письмо с указанным `id` не найдено |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `mail` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов Битрикс24 |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов (заголовок `Retry-After: 2`) |\n| 502 | `BITRIX_UNAVAILABLE` | Портал Битрикс24 вернул ошибку 5xx |\n| 422 | `BITRIX_ERROR` | Прочие ошибки Битрикс24 |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ деактивирован |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**ID любого письма цепочки возвращает полную цепочку.** Запрос с `id` любого участника переписки возвращает одинаковый полный набор писем.\n\n## Смотрите также\n\n- [Список писем](.\u002Flist.md)\n- [Получить письмо](.\u002Fget.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Отправить письмо\n\n`POST \u002Fv1\u002Fmail\u002Fmessages`\n\nОтправляет письмо от имени указанного отправителя. Отправленное письмо сохраняется в папку Отправленные почтового ящика.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|----------|\n| `from` | string | да | Адрес отправителя. Допустимые значения — из `GET \u002Fv1\u002Fmail\u002Fmailboxes\u002F:id\u002Fsenders` |\n| `to` | array of strings | да | Адреса получателей |\n| `subject` | string | да | Тема письма |\n| `body` | string | да | Текст письма |\n| `cc` | array of strings | нет | Адреса для копии |\n| `bcc` | array of strings | нет | Адреса для скрытой копии |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages \\\n  -d '{\n    \"from\": \"sender@example.com\",\n    \"to\": [\"recipient@example.com\"],\n    \"subject\": \"Тема письма\",\n    \"body\": \"Текст письма\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages \\\n  -d '{\n    \"from\": \"sender@example.com\",\n    \"to\": [\"recipient@example.com\"],\n    \"subject\": \"Тема письма\",\n    \"body\": \"Текст письма\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    from: 'sender@example.com',\n    to: ['recipient@example.com'],\n    subject: 'Тема письма',\n    body: 'Текст письма',\n  }),\n})\nconst data = await res.json()\nconsole.log(data.data.to)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    from: 'sender@example.com',\n    to: ['recipient@example.com'],\n    subject: 'Тема письма',\n    body: 'Текст письма',\n  }),\n})\nconst data = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном выполнении запроса |\n| `data.success` | boolean | `true` при успешной отправке |\n| `data.to` | array of strings | Список адресов, которым отправлено письмо |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"success\": true,\n    \"to\": [\"recipient@example.com\"]\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — нарушена валидация запроса:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"Ошибка при валидации объекта запроса\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 422 | `BITRIX_ERROR` | Не передано обязательное поле, адреса получателей не определены или отправка не выполнена |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `mail` |\n| 401 | `TOKEN_MISSING` | У API-ключа не настроены токены доступа к почтовому ящику |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n| 429 | `RATE_LIMITED` | Превышен общий лимит запросов платформы |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Ответить на письмо](.\u002Freply.md)\n- [Переслать письмо](.\u002Fforward.md)\n- [Переместить письма](.\u002Fmove.md)\n- [Список писем](.\u002Flist.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация и ключи](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Ответить на письмо\n\n`POST \u002Fv1\u002Fmail\u002Fmessages\u002F:id\u002Freply`\n\nОтправляет ответ на письмо: добавляет заголовок In-Reply-To, цитирует исходное письмо и переносит вложения. Сохраняется в папку Отправленные.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | integer | да | Идентификатор письма, в контексте которого создаётся ответ |\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|----------|\n| `replyToMessageId` | integer | да | Идентификатор письма, на которое отвечаем |\n| `from` | string | да | Адрес отправителя. Допустимые значения — из `GET \u002Fv1\u002Fmail\u002Fmailboxes\u002F:id\u002Fsenders` |\n| `to` | array of strings | да | Адреса получателей |\n| `subject` | string | да | Тема письма |\n| `body` | string | да | Текст письма |\n| `cc` | array of strings | нет | Адреса для копии |\n| `bcc` | array of strings | нет | Адреса для скрытой копии |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1234\u002Freply \\\n  -d '{\n    \"replyToMessageId\": 1234,\n    \"from\": \"sender@example.com\",\n    \"to\": [\"recipient@example.com\"],\n    \"subject\": \"Re: Тема письма\",\n    \"body\": \"Текст ответа\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1234\u002Freply \\\n  -d '{\n    \"replyToMessageId\": 1234,\n    \"from\": \"sender@example.com\",\n    \"to\": [\"recipient@example.com\"],\n    \"subject\": \"Re: Тема письма\",\n    \"body\": \"Текст ответа\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst messageId = 1234\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F${messageId}\u002Freply`,\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_API_KEY',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({\n      replyToMessageId: messageId,\n      from: 'sender@example.com',\n      to: ['recipient@example.com'],\n      subject: 'Re: Тема письма',\n      body: 'Текст ответа',\n    }),\n  }\n)\nconst data = await res.json()\nconsole.log(data.data.to)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst messageId = 1234\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F${messageId}\u002Freply`,\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({\n      replyToMessageId: messageId,\n      from: 'sender@example.com',\n      to: ['recipient@example.com'],\n      subject: 'Re: Тема письма',\n      body: 'Текст ответа',\n    }),\n  }\n)\nconst data = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном выполнении запроса |\n| `data.success` | boolean | `true` при успешной отправке |\n| `data.to` | array of strings | Список адресов, которым отправлено письмо |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"success\": true,\n    \"to\": [\"recipient@example.com\"]\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — некорректный параметр пути:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INVALID_PARAMS\",\n    \"message\": \"id must be a positive integer\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 400 | `INVALID_PARAMS` | Параметр `id` в пути не является положительным целым числом |\n| 422 | `BITRIX_ERROR` | Не передано поле `replyToMessageId`, адреса получателей не определены или отправка не выполнена |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `mail` |\n| 401 | `TOKEN_MISSING` | У API-ключа не настроены токены доступа к почтовому ящику |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n| 429 | `RATE_LIMITED` | Превышен общий лимит запросов платформы |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Идентификатор письма указывается дважды — в пути `:id` и в теле `replyToMessageId`; передавайте оба с одним значением.\n\n## Смотрите также\n\n- [Отправить письмо](.\u002Fsend.md)\n- [Переслать письмо](.\u002Fforward.md)\n- [Переместить письма](.\u002Fmove.md)\n- [Список писем](.\u002Flist.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация и ключи](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Переслать письмо\n\n`POST \u002Fv1\u002Fmail\u002Fmessages\u002F:id\u002Fforward`\n\nПересылает письмо: включает все вложения исходного и цитирует его текст. Сохраняется в папку Отправленные.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | integer | да | Идентификатор письма, в контексте которого выполняется пересылка |\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|----------|\n| `forwardMessageId` | integer | да | Идентификатор пересылаемого письма |\n| `from` | string | да | Адрес отправителя. Допустимые значения — из `GET \u002Fv1\u002Fmail\u002Fmailboxes\u002F:id\u002Fsenders` |\n| `to` | array of strings | да | Адреса получателей |\n| `subject` | string | да | Тема письма |\n| `body` | string | да | Текст письма |\n| `cc` | array of strings | нет | Адреса для копии |\n| `bcc` | array of strings | нет | Адреса для скрытой копии |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1234\u002Fforward \\\n  -d '{\n    \"forwardMessageId\": 1234,\n    \"from\": \"sender@example.com\",\n    \"to\": [\"recipient@example.com\"],\n    \"subject\": \"Fwd: Тема письма\",\n    \"body\": \"Пересылаю письмо\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F1234\u002Fforward \\\n  -d '{\n    \"forwardMessageId\": 1234,\n    \"from\": \"sender@example.com\",\n    \"to\": [\"recipient@example.com\"],\n    \"subject\": \"Fwd: Тема письма\",\n    \"body\": \"Пересылаю письмо\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst messageId = 1234\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F${messageId}\u002Fforward`,\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_API_KEY',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({\n      forwardMessageId: messageId,\n      from: 'sender@example.com',\n      to: ['recipient@example.com'],\n      subject: 'Fwd: Тема письма',\n      body: 'Пересылаю письмо',\n    }),\n  }\n)\nconst data = await res.json()\nconsole.log(data.data.to)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst messageId = 1234\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002F${messageId}\u002Fforward`,\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({\n      forwardMessageId: messageId,\n      from: 'sender@example.com',\n      to: ['recipient@example.com'],\n      subject: 'Fwd: Тема письма',\n      body: 'Пересылаю письмо',\n    }),\n  }\n)\nconst data = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном выполнении запроса |\n| `data.success` | boolean | `true` при успешной пересылке |\n| `data.to` | array of strings | Список адресов, которым отправлено письмо |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"success\": true,\n    \"to\": [\"recipient@example.com\"]\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — некорректный параметр пути:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INVALID_PARAMS\",\n    \"message\": \"id must be a positive integer\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 400 | `INVALID_PARAMS` | Параметр `id` в пути не является положительным целым числом |\n| 422 | `BITRIX_ERROR` | Не передано поле `forwardMessageId`, адреса получателей не определены или отправка не выполнена |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `mail` |\n| 401 | `TOKEN_MISSING` | У API-ключа не настроены токены доступа к почтовому ящику |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n| 429 | `RATE_LIMITED` | Превышен общий лимит запросов платформы |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Идентификатор письма указывается дважды — в пути `:id` и в теле `forwardMessageId`; передавайте оба с одним значением.\n\n## Смотрите также\n\n- [Отправить письмо](.\u002Fsend.md)\n- [Ответить на письмо](.\u002Freply.md)\n- [Переместить письма](.\u002Fmove.md)\n- [Список писем](.\u002Flist.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация и ключи](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Переместить письма\n\n`POST \u002Fv1\u002Fmail\u002Fmessages\u002Fmove`\n\nВыполняет массовое действие над письмами: перемещает в папку, помечает как спам или удаляет.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|----------|\n| `messageIds` | array of integers | да | Идентификаторы писем |\n| `action` | string | да | Действие: `move` — переместить в папку, `spam` — пометить как спам, `delete` — удалить |\n| `folder` | string | условно | Целевая папка. Обязателен при `action: \"move\"` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002Fmove \\\n  -d '{\n    \"messageIds\": [1234],\n    \"action\": \"move\",\n    \"folder\": \"INBOX\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002Fmove \\\n  -d '{\n    \"messageIds\": [1234],\n    \"action\": \"move\",\n    \"folder\": \"INBOX\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002Fmove', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    messageIds: [1234],\n    action: 'move',\n    folder: 'INBOX',\n  }),\n})\nconst data = await res.json()\nconsole.log(data.data.movedCount)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fmail\u002Fmessages\u002Fmove', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    messageIds: [1234],\n    action: 'move',\n    folder: 'INBOX',\n  }),\n})\nconst data = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном выполнении запроса |\n| `data.success` | boolean | `true` при успешном выполнении действия |\n| `data.movedCount` | integer | Количество обработанных писем |\n| `data.action` | string | Выполненное действие (`move`, `spam` или `delete`) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"success\": true,\n    \"movedCount\": 1,\n    \"action\": \"move\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — нарушена валидация запроса:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"Ошибка при валидации объекта запроса\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 422 | `BITRIX_ERROR` | Не передан `folder` при `action: \"move\"`, значение `action` не из допустимых, не передан `messageIds` или операция не выполнена |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `mail` |\n| 401 | `TOKEN_MISSING` | У API-ключа не настроены токены доступа к почтовому ящику |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен |\n| 401 | `KEY_EXPIRED` | Срок действия API-ключа истёк |\n| 429 | `RATE_LIMITED` | Превышен общий лимит запросов платформы |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Действия `spam` и `delete` необратимы.** Пометка как спам и удаление не имеют операции отмены через API.\n\n## Смотрите также\n\n- [Отправить письмо](.\u002Fsend.md)\n- [Ответить на письмо](.\u002Freply.md)\n- [Переслать письмо](.\u002Fforward.md)\n- [Список писем](.\u002Flist.md)\n- [Письма](\u002Fdocs\u002Fmail\u002Fmessages)\n- [Почта](\u002Fdocs\u002Fmail)\n- [Авторизация и ключи](\u002Fdocs\u002Fkeys-auth)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n"]