Для AI-агентов: markdown этой страницы — /docs-content/mail/messages.md индекс документации — /llms.txt
Письма
Список, чтение и отправка писем, работа с цепочками переписки, ответы, пересылка и перемещение между папками.
Битрикс24 API: mail.message.*
Скоуп: mail
Список писем
GET /v1/mail/messages
Возвращает список писем подключённых почтовых ящиков с поддержкой фильтров и постраничной загрузки.
Параметры
| Параметр | Тип | По умолч. | Описание |
|---|---|---|---|
ПараметрmailboxId |
Типnumber | По умолч.— | ОписаниеИдентификатор ящика. Список ящиков: GET /v1/mail/mailboxes |
ПараметрsearchQuery |
Типstring | По умолч.— | ОписаниеПолнотекстовый поиск по письмам |
Параметрfolder |
Типstring | По умолч.— | ОписаниеИмя папки (например, INBOX) |
ПараметрisSeen |
Типboolean | По умолч.— | Описаниеtrue — только прочитанные, false — только непрочитанные |
ПараметрhasAttachments |
Типboolean | По умолч.— | Описаниеtrue — только письма с вложениями |
ПараметрdateFrom |
Типstring | По умолч.— | ОписаниеНачало периода включительно. Дата YYYY-MM-DD или полная дата-время с Z или смещением, например 2026-05-01T00:00:00Z |
ПараметрdateTo |
Типstring | По умолч.— | ОписаниеКонец периода включительно. Те же форматы, что у dateFrom |
Параметрlimit |
Типnumber | По умолч.50 |
ОписаниеРазмер страницы, от 1 до 500 |
Для dateFrom и dateTo принимаются дата YYYY-MM-DD и полная дата-время YYYY-MM-DDTHH:mm:ss с Z или смещением +03:00, -03:30, +0300. Дробная часть секунд может содержать 3 или 6 цифр, например 2026-05-01T00:00:00.123Z. Дата без времени задаёт начало дня для dateFrom и конец дня для dateTo.
Знак + в строке запроса кодируйте как %2B, например dateFrom=2026-05-01T00:00:00%2B03:00. При сборке запроса через URLSearchParams знак кодируется автоматически.
Страницы собираются автоматически на стороне сервера до заданного limit. Поле total приходит только когда Битрикс24 сообщил общее число писем, иначе оно отсутствует. Поле truncated показывает, могут ли существовать записи за пределами возвращённого окна. Максимум за один запрос — 500 писем.
Смещения у метода нет. Чтобы дойти до писем за пределами окна, сужайте выборку параметрами отбора — mailboxId, folder, dateFrom и dateTo.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/mail/messages?mailboxId=5&limit=10&dateFrom=2026-05-01" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/mail/messages?mailboxId=5&limit=10&dateFrom=2026-05-01" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/mail/messages?mailboxId=5&limit=10&dateFrom=2026-05-01',
{
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
}
)
const { success, data } = await res.json()
console.log(`Писем: ${data.items.length}`)
JavaScript — OAuth-приложение
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/mail/messages?mailboxId=5&limit=10&dateFrom=2026-05-01',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
const { success, data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеtotal |
Типnumber (optional) | ОписаниеОбщее число писем, удовлетворяющих фильтру. Поле отсутствует, если Битрикс24 не сообщил количество |
Полеtruncated |
Типboolean | Описаниеtrue, если за пределами возвращённого окна могут существовать другие письма |
Полеdata.items |
Типarray | ОписаниеМассив писем |
Полеdata.items[].id |
Типnumber | ОписаниеИдентификатор письма |
Полеdata.items[].mailboxId |
Типnumber | ОписаниеИдентификатор почтового ящика |
Полеdata.items[].mailboxEmail |
Типstring | ОписаниеАдрес почтового ящика |
Полеdata.items[].subject |
Типstring | ОписаниеТема письма |
Полеdata.items[].from |
Типstring | ОписаниеОтправитель в формате Имя <адрес> |
Полеdata.items[].to |
Типstring | ОписаниеПолучатель в формате Имя <адрес> |
Полеdata.items[].cc |
Типstring | null | ОписаниеАдреса в копии, null при отсутствии копий |
Полеdata.items[].date |
Типstring | ОписаниеДата отправки в формате YYYY-MM-DD HH:MM:SS (без часового пояса) |
Полеdata.items[].isSeen |
Типboolean | ОписаниеПрочитано ли письмо |
Полеdata.items[].hasAttachments |
Типboolean | ОписаниеЕсть ли вложения |
Полеdata.items[].url |
Типstring | ОписаниеСсылка на письмо в интерфейсе Битрикс24 |
Полеdata.items[].bindings |
Типarray | ОписаниеПривязки письма к объектам Битрикс24. Пустой массив, если письмо ни к чему не привязано |
Полеdata.items[].bindings[].type |
Типstring | ОписаниеТип привязанного объекта (например, task) |
Полеdata.items[].bindings[].entityId |
Типnumber | ОписаниеИдентификатор привязанного объекта |
Полеdata.items[].body |
Типnull | ОписаниеПолный текст письма в списке не возвращается (доступен в GET /v1/mail/messages/:id) |
URL любого письма из массива data.items — его id:
https://<portal>.bitrix24.ru/mail/message/<id>?source=mail
<portal> — домен портала. Доступ ограничен правами сотрудника в Битрикс24. В ответе также возвращается готовый URL в поле data.items[].url.
Пример ответа
{
"success": true,
"data": {
"items": [
{
"id": 1763,
"mailboxId": 5,
"mailboxEmail": "support@example.com",
"subject": "Re: Запрос по интеграции",
"from": "Анна Иванова <anna@example.com>",
"to": "Поддержка <support@example.com>",
"cc": null,
"date": "2026-05-18 15:35:32",
"isSeen": true,
"hasAttachments": false,
"url": "https://example.bitrix24.ru/mail/message/1763",
"bindings": [],
"body": null
},
{
"id": 1761,
"mailboxId": 5,
"mailboxEmail": "support@example.com",
"subject": "Запрос по интеграции",
"from": "Поддержка <support@example.com>",
"to": "anna@example.com <anna@example.com>",
"cc": null,
"date": "2026-05-18 15:35:10",
"isSeen": true,
"hasAttachments": false,
"url": "https://example.bitrix24.ru/mail/message/1761",
"bindings": [],
"body": null
}
]
},
"truncated": false
}
Когда Битрикс24 сообщает общее количество, структура ответа дополнительно содержит поле total. Если количество неизвестно, поле отсутствует, а truncated показывает, может ли список продолжаться.
Пример ответа при ошибке
403 — нет скоупа mail:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'mail' scope"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP403 | КодSCOPE_DENIED |
ОписаниеAPI-ключ не имеет скоупа mail |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеAPI-ключ не имеет настроенных токенов Битрикс24 |
| HTTP429 | КодRATE_LIMITED |
ОписаниеПревышен лимит запросов (заголовок Retry-After: 2) |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеПортал Битрикс24 вернул ошибку 5xx |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеПрочие ошибки Битрикс24 |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан заголовок X-Api-Key |
| HTTP401 | КодINVALID_API_KEY |
ОписаниеКлюч не опознан: такой строки на платформе нет |
| HTTP401 | КодKEY_INACTIVE |
ОписаниеAPI-ключ деактивирован |
| HTTP401 | КодKEY_EXPIRED |
ОписаниеСрок действия API-ключа истёк |
Полный список общих ошибок API — Ошибки.