---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://yandex.ru/dev/messenger/doc/ru/data-types.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/messenger/doc/ru/llms.txt

# Используемые типы данных



## BotRequest {#botrequest}

Запрос к боту. Приходит в поле `bot_request` объекта ##[Update](#update)##, когда пользователь нажимает кнопку с директивой `server_action`.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `server_action`   | Нет | ##[ServerAction](#serveraction)## | Серверное действие от кнопки | — ||
|| `element_id`      | Нет | `string` | ID нажатого элемента (кнопки) | — ||
|| `errors`          | Нет | ##[BotRequestError](#botrequesterror)##`[]` | Массив ошибок при выполнении директив | — ||
|#

## BotRequestError {#botrequesterror}

Ошибка при выполнении директивы на клиенте.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип ошибки | Возможные значения:
* `unsupported_directive` — директива не поддерживается клиентом;
* `invalid_directive_payload` — невалидные данные директивы;
* `client_error` — ошибка на стороне клиента. ||
  || `name`            | Нет | `string` | Имя директивы, вызвавшей ошибку | Для типов `unsupported_directive` и `invalid_directive_payload` ||
  || `message`         | Нет | `string` | Текст ошибки | Для типа `client_error` ||
  |#

## Button {#button}

{% note warning %}

Тип `Button` и параметр `inline_keyboard` устарели. Рекомендуется использовать ##[SuggestButtons](#suggestbuttons)##.

{% endnote %}

Используется в запросах для описания инлайн-кнопки под текстовым сообщением.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `text`            | Да  | `string` | Текст на инлайн-кнопке | — ||
|| `callback_data`   | Нет | `json`   | Данные, которые будут отправлены на сервер при нажатии кнопки | — ||
|| `url`             | Нет | `string` | URL, который откроется при нажатии кнопки | — ||
|#

## Chat {#chat}

Используется в ответах для описания чата (канала).

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string`  | Тип чата                                                      | Возможные значения:
* `private` — приватный чат;
* `group` — групповой чат;
* `channel` — канал. ||
|| `id`*             | Нет | `string`  | Идентификатор чата                                            | У чата с типом `private` нет значимого идентификатора.
В таком чате всегда два участника — бот и его собеседник. Собеседника нужно определять по объекту типа ##[User](#user)##, который обычно расположен рядом.||
|#

(*) Для группового чата (`group`) или канала (`channel`) идентификатор можно получить из адресной строки браузера:
   1. Откройте чат в веб-версии Мессенджера.
   2. Из адресной строки скопируйте набор символов после `https://yandex.ru/chat/#/chats/`.
   3. Если браузер применяет URL-кодирование в ссылке, замените `%2F` на слэш `/`.

## ChatMetaData {#chatmetadata}

Используется в ответах для описания чата или канала с расширенными метаданными.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string`  | Тип чата | Возможные значения:
* `private` — приватный чат;
* `group` — групповой чат;
* `channel` — канал. ||
|| `id`              | Да  | `string`  | Идентификатор чата | — ||
|| `title`           | Нет | `string`  | Название чата или канала | Только для `group` и `channel` ||
|| `description`     | Нет | `string`  | Описание чата или канала | Только для `group` и `channel` ||
|| `username`        | Нет | `string`  | Логин собеседника | Только для `private` ||
|#

## ChatInfo {#chatinfo}

Используется в ответе метода [получения информации о чате или канале](https://yandex.ru/dev/messenger/doc/ru/api-requests/chat-info.md).

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string`  | Тип чата | Возможные значения: `private`, `group`, `channel` ||
|| `id`              | Да  | `string`  | Идентификатор чата или канала | — ||
|| `private`         | Нет | `boolean` | Признак приватного чата | — ||
|| `name`            | Нет | `string`  | Название чата или канала | Только для `group` и `channel` ||
|| `description`     | Нет | `string`  | Описание чата или канала | Только для `group` и `channel` ||
|| `invite_hash`     | Нет | `string`  | Хэш приглашения в чат | Только для `group` и `channel` ||
|| `invite_link`     | Нет | `string`  | Ссылка-приглашение в чат | Только для `group` и `channel` ||
|| `available_reactions` | Нет | ##[Reaction](#reaction)##`[]` | Реакции, доступные в чате | Эти значения можно передавать в `reaction` метода установки реакции ||
|#

## ChatMember {#chatmember}

Используется в ответах для описания участника чата или канала.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `guid`            | Да  | `string`  | Уникальный идентификатор участника | — ||
|| `login`           | Нет | `string`  | Логин участника | — ||
|| `role`            | Да  | `string`  | Роль участника в чате или канале | Возможные значения:
* `admin` — администратор;
* `member` — участник чата;
* `subscriber` — подписчик канала. ||
|| `is_bot`          | Да  | `boolean` | Признак того, что участник является ботом | — ||
|#

## Directive {#directive}

Директива — это действие, которое выполняется при нажатии на кнопку.
Одна кнопка может содержать несколько директив (до 3).

### Типы директив

#### OpenUriDirective

Открывает URL в браузере.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип директивы | Значение: `open_uri` ||
|| `uri`             | Да  | `string` | URL для открытия | — ||
|#

#### SendMessageDirective

Отправляет сообщение в чат от имени пользователя, нажавшего кнопку.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип директивы | Значение: `send_message` ||
|| `text`            | Да  | `string` | Текст сообщения | Не более 6000 символов ||
|| `payload`         | Нет | `json`   | Произвольные данные, которые бот получит вместе с сообщением | — ||
|#

#### ServerActionDirective

Отправляет серверное действие боту. В отличие от `send_message`, сообщение не появляется в чате — бот получает только уведомление о нажатии кнопки.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип директивы | Значение: `server_action` ||
|| `name`            | Да  | `string` | Имя действия | — ||
|| `payload`         | Да  | `json`   | Произвольные данные | — ||
|#

При нажатии бот получит обновление с полем `bot_request`, содержащим `server_action` с указанными `name` и `payload`.

#### SetElementsStateDirective

Изменяет состояние элементов интерфейса (например, блокирует кнопки на время обработки).

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип директивы | Значение: `set_elements_state` ||
|| `ids`             | Да  | `string[]` | Идентификаторы элементов для изменения | — ||
|| `state`           | Да  | `string` | Новое состояние | Значения: `disabled` или `loading` ||
|| `timeout_seconds` | Нет | `integer` | Время действия состояния в секундах | От 1 до 60. По умолчанию: 15 ||
|#

## File {#file}

Используется в ответах для описания файла.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `id`              | Да  | `string`  | Идентификатор файла для загрузки через API                    | — ||
|| `name`            | Да  | `string`  | Имя файла                                                     | — ||
|| `size`            | Да  | `integer` | Размер файла в байтах                                         | — ||
|#

## Forward {#forward}

Используется в send-методах для пересылки сообщений из одного чата в другой.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `chat_id`         | Да  | `string`      | ID чата, из которого нужно переслать сообщения | Бот должен иметь доступ к исходному чату ||
|| `message_ids`     | Да  | `integer[]`   | ID сообщений, которые нужно переслать | Нельзя использовать одновременно с `reply_message_id` в send-запросе ||
|#

## Image {#image}

Используется в ответах для описания изображения.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `file_id`         | Да  | `string`  | Идентификатор файла для загрузки через API                    | — ||
|| `width`           | Да  | `integer` | Ширина картинки                                               | — ||
|| `height`          | Да  | `integer` | Высота картинки                                               | — ||
|| `size`            | Нет | `integer` | Размер файла в байтах                                         | Указывается только для оригинала ||
|| `name`            | Нет | `string`  | Название файла (каким оно было при загрузке)                  | Указывается только для оригинала ||
|#

## InlineSuggestButton {#inlinesuggestbutton}

Кнопка, отображаемая под сообщением.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `id`              | Нет | `string` | Уникальный идентификатор кнопки | Не более 255 символов ||
|| `title`           | Нет | `string` | Текст на кнопке | Не более 255 символов ||
|| `directives`      | Нет | ##[Directive](#directive)##`[]` | Действия при нажатии | Не более 3 действий ||
|#

## Sender {#sender}

Используется в ответах для описания отправителя сообщения.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `login`           | Да* | `string`  | Логин пользователя, который отправил сообщение         | Указывается для сообщений из чатов ||
|| ИЛИ `id`          | Да* | `string`  | `id` канала, администратор которого отправил сообщение | Указывается для сообщений в каналах ||
|| `display_name`    | Нет | `string`  | Отображаемое имя отправителя                           | — ||
|| `robot `          | Нет | `boolean` | Признак, является ли отправитель ботом                 | — ||
|#

## ChatMembersUpdate {#chatmembersupdate}

Используется в обновлениях для описания изменения состава группового чата. Событие приходит, когда включена настройка `get_members_changed`; для каналов такие события не отправляются.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `new_chat_members`     | Нет | ##[Sender](#sender)##`[]` | Пользователи, добавленные в чат | — ||
|| `removed_chat_members` | Нет | ##[Sender](#sender)##`[]` | Пользователи, удаленные из чата | — ||
|#

## Reaction {#reaction}

Используется для установки реакции и в событиях о реакциях.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип реакции | Для стандартных реакций: `default_reaction` ||
|| `name`            | Да  | `string` | Название реакции | Например: `like`, `fire` ||
|#

## ReactionEvent {#reactionevent}

Используется в обновлениях для описания реакции, поставленной или удаленной пользователем. Событие приходит, когда включена настройка `get_reactions`.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `message_id`      | Да  | `integer`              | ID сообщения, на которое поставили или с которого удалили реакцию | — ||
|| `reaction`        | Да  | ##[Reaction](#reaction)## | Реакция | — ||
|| `action`          | Да  | `string`               | Действие с реакцией | Возможные значения: `add`, `remove` ||
|#

## MessageReactionEntry {#messagereactionentry}

Используется в ответе метода получения реакций для личных и групповых чатов.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `reaction`        | Да | ##[Reaction](#reaction)## | Реакция | — ||
|| `timestamp`       | Да | `integer` | ID события реакции | Используется как `offset` для пагинации ||
|| `user`            | Да | ##[Sender](#sender)## | Пользователь, поставивший реакцию | — ||
|#

## ReactionCount {#reactioncount}

Используется в ответе метода получения реакций для каналов.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `reaction`        | Да | ##[Reaction](#reaction)## | Реакция | — ||
|| `count`           | Да | `integer` | Количество таких реакций на сообщении | Реакции в каналах анонимны ||
|#

(*) В ответе придет только один из параметров `login` или `id` в зависимости от того, куда было отправлено сообщение — в чат или канал.

## ServerAction {#serveraction}

Серверное действие, которое бот получает при нажатии кнопки с директивой `server_action`.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `name`            | Да  | `string` | Имя действия (то, что было указано в директиве) | — ||
|| `payload`         | Нет | `json`   | Произвольные данные действия | — ||
|#

## SuggestButtons {#suggestbuttons}

Используется в запросах для описания клавиатуры с кнопками под сообщением.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `layout` | Да | `string` | Режим отображения кнопок. `"false"` — кнопки идут в одну строку с переносом. `"true"` — кнопки располагаются по строкам согласно двумерному массиву в `buttons` | — ||
|| `persist` | Нет | `boolean` | Если `true` - кнопки под сообщением будут показываться, если оно не является последним в чате | По умолчанию: `false` ||
|| `buttons` | Нет | ##[InlineSuggestButton](#inlinesuggestbutton)##`[]` или ##[InlineSuggestButton](#inlinesuggestbutton)##`[][]`| Массив кнопок. При `layout: "false"` — одномерный массив. При `layout: "true"` — двумерный массив, где каждый вложенный массив — это отдельная строка | Не более 100 кнопок ||
|#

## ActionButtons {#actionbuttons}

Используется в запросах для описания кнопок действий под сообщением (например, «Нравится» / «Не нравится»).

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `buttons`         | Да  | ##[ActionButton](#actionbutton)##`[]` | Массив кнопок действий | Не более 6 кнопок ||
|#

## ActionButton {#actionbutton}

Кнопка действия.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `id`              | Нет | `string` | Идентификатор кнопки | Не более 255 символов ||
|| `title`           | Да  | `string` | Текст на кнопке | Не более 255 символов ||
|| `icon`            | Да  | ##[ActionButtonIcon](#actionbuttonicon)## | Иконка кнопки | — ||
|| `directives`      | Да  | ##[Directive](#directive)##`[]` | Действия при нажатии | Не более 3 действий ||
|#

## ActionButtonIcon {#actionbuttonicon}

Иконка для кнопки действия.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `type`            | Да  | `string` | Тип иконки | Значение: `messenger_icons` ||
|| `value`           | Да  | `string` | Название иконки | Возможные значения:
* `like` — лайк;
* `pressed_like` — нажатый лайк;
* `dislike` — дизлайк;
* `pressed_dislike` — нажатый дизлайк. ||
|#

## Vote {#vote}

Используется в ответах для описания проголосовавшего в опросе.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `timestamp`       | Да  | `integer`             | ID голоса                                                     | — ||
|| `user`            | Да  | ##[Sender](#sender)## | Проголосовавший пользователь                                  | — ||
|#

## Update {#update}

Используется в ответах для описания сообщения в обновлении.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `from`            | Да  | ##[Sender](#sender)##   | Отправитель сообщения                                         | — ||
|| `chat`            | Да  | ##[Chat](#chat)##       | Чат, в который было отправлено сообщение                      | — ||
|| `text`            | Нет | `string`                | Текст сообщения                                               | — ||
|| `timestamp`       | Да  | `integer`               | Время отправки сообщения по серверным часам: UNIX timestamp   | — ||
|| `message_id`      | Да  | `integer`               | Идентификатор сообщения в чате                                | — ||
|| `update_id`       | Да  | `integer`               | Идентификатор обновления                                      | — ||
|| `file`            | Нет | ##[File](#file)##       | Информация о вложенном в сообщение файле                      | — ||
|| `images`          | Нет | ##[Image](#image)##`[][]` | Информация о картинках                                        | — ||
|| `forwarded_messages` | Нет | ##[Update](#update)##`[]` | Пересланные сообщения                                      | — ||
|| `reply_to_message` | Нет | ##[Update](#update)##    | Сообщение, на которое был отправлен ответ                     | Может содержать процитированный фрагмент ||
|| `sticker`         | Нет | ##[Sticker](#sticker)## | Стикер                                                        | — ||
|| `chat_members_update` | Нет | ##[ChatMembersUpdate](#chatmembersupdate)## | Изменение участников группового чата                  | Приходит при включенной настройке `get_members_changed` ||
|| `reaction`        | Нет | ##[ReactionEvent](#reactionevent)## | Событие добавления или удаления реакции                        | Приходит при включенной настройке `get_reactions` ||
|| `bot_request`     | Нет | ##[BotRequest](#botrequest)## | Запрос к боту                                           | — ||
|#

## Sticker {#sticker}

Используется в обновлениях для описания стикера в сообщении.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `id`              | Да  | `string` | Идентификатор стикера | — ||
|| `set_id`          | Да  | `string` | Идентификатор набора стикеров | — ||
|#

## User {#user}

Используется в запросах для описания пользователя.

#|
|| **Имя параметра** | **Обязат.** | **Тип** | **Описание** | **Ограничения** ||
|| `login`*          | Да  | `string`  | Логин пользователя                                            |
* Для аккаунтов на Яндексе (домен yandex.ru) логины могут использоваться без указания домена.
* Для аккаунтов, созданных на других доменах, указывается полная форма логина `<login>@<domain>`. ||
|#

(*) В качестве `login` может быть также указан адрес рассылки группы или подразделения, тогда в качестве `User` будет использоваться группа или подразделение.
