Формат запроса
При каждом обращении к навыку Яндекс Диалоги отправляют POST-запрос на Backend, указанный при публикации.
{
  "meta": {
    "locale": "ru-RU",
    "timezone": "Europe/Moscow",
    "client_id": "ru.yandex.searchplugin/7.16 (none none; android 4.4.2)",
    "interfaces": {
      "screen": {},
      "account_linking": {},
      "audio_player": {}
    }
  },
  "request": {
    "type": "...",
  },
  "session": {
    "message_id": 0,
    "session_id": "2eac4854-fce721f3-b845abba-20d60",
    "skill_id": "3ad36498-f5rd-4079-a14b-788652932056",
    "user_id": "47C73714B580ED2469056E71081159529FFC676A4E5B059D629A819E857DC2F8",
    "user": {
      "user_id": "6C91DA5198D1758C6A9F63A7C5CDDF09359F683B13A18A151FBF4C8B092BB0C2",
      "access_token": "AgAAAAAB4vpbAAApoR1oaCd5yR6eiXSHqOGT8dT"
    },
    "application": {
      "application_id": "47C73714B580ED2469056E71081159529FFC676A4E5B059D629A819E857DC2F8"
    },
    "new": true
  },
  "state": {
    "session": {
      "value": 10
    },
    "user": {
      "value": 42
    },
    "application": {
      "value": 37
    }
  },  
  "version": "1.0"
}
Содержимое тела запроса
| Свойство | Описание | 
| object Информация об устройстве, с помощью которого пользователь разговаривает с Алисой. | |
| object Данные, полученные от пользователя. Содержимое зависит от типа ввода, указанного в поле  | |
| object Данные о сессии. Сессия — это период относительно непрерывного взаимодействия пользователя с навыком. Сессия завершается, когда: 
 | |
| object Данные о сохраненном состоянии. | |
| 
 | string Версия протокола. Текущая версия — 1.0. | 
meta
Информация об устройстве, с помощью которого пользователь разговаривает с Алисой.
| Свойство | Описание | 
| 
 | string Язык в POSIX-формате, максимум 64 символа. | 
| 
 | string Название часового пояса, включая алиасы, максимум 64 символа. | 
| 
 | string Не рекомендуется к использованию. Интерфейсы, доступные на клиентском устройстве, перечислены в свойстве  Идентификатор устройства и приложения, в котором идет разговор, максимум 1024 символа. | 
| object Интерфейсы, доступные на устройстве пользователя. | 
meta.interfaces
Интерфейсы, доступные на устройстве пользователя.
| Свойство | Описание | 
| 
 | object Пользователь может видеть ответ навыка на экране и открывать ссылки в браузере. | 
| 
 | object У пользователя есть возможность запросить связку аккаунтов. | 
| 
 | object На устройстве пользователя есть аудиоплеер. | 
request
Данные, полученные от пользователя.
| Свойство | Описание | 
| 
 | string Обязательное свойство. Тип ввода. Возможные значения: 
 | 
session
Данные о сессии. Сессия — это период относительно непрерывного взаимодействия пользователя с навыком.
Сессия завершается, когда:
- пользователь запрашивает выход из навыка;
- навык явно завершает работу ("end_session": true);
- от пользователя долго не поступает команд (тайм-аут зависит от поверхности, минимум несколько минут).
| Свойство | Описание | 
| 
 | string Уникальный идентификатор сессии, максимум 64 символа. | 
| 
 | number Идентификатор сообщения в рамках сессии, максимум 8 символов. Инкрементируется с каждым следующим запросом. | 
| 
 | string Идентификатор вызываемого навыка, присвоенный при создании. Чтобы узнать идентификатор своего навыка, откройте его в консоли разработчика — идентификатор можно скопировать на вкладке Общие сведения, внизу страницы. | 
| 
 | string Свойство не поддерживается — вместо него следует использовать новое, полностью аналогичное свойство  Идентификатор экземпляра приложения, в котором пользователь общается с Алисой, максимум 64 символа. Даже если пользователь вошел в один и тот же аккаунт в приложение Яндекс для Android и iOS, Яндекс Диалоги присвоят отдельный  | 
| object Атрибуты пользователя Яндекса, который взаимодействует с навыком. Если пользователь не авторизован в приложении, свойства  | |
| object Данные о приложении, с помощью которого пользователь взаимодействует с навыком. | |
| 
 | boolean Признак новой сессии. Возможные значения: 
 | 
session.user
Атрибуты пользователя Яндекса, который взаимодействует с навыком. Если пользователь не авторизован в приложении, свойства user в запросе не будет.
| Свойство | Описание | 
| 
 | string Идентификатор пользователя Яндекса, единый для всех приложений и устройств. Этот идентификатор уникален для пары «пользователь — навык»: в разных навыках значение свойства  | 
| 
 | string Токен для OAuth-авторизации, который также передается в заголовке  Это JSON-свойство можно использовать, например, при реализации навыка в Yandex Cloud Functions (Диалоги вызывают функции с параметром integration=raw,который не позволяет получать заголовки клиентского запроса). | 
session.application
Данные о приложении, с помощью которого пользователь взаимодействует с навыком.
| Свойство | Описание | 
| 
 | string Идентификатор экземпляра приложения, в котором пользователь общается с Алисой, максимум 64 символа. Даже если пользователь вошел в один и тот же аккаунт в приложение Яндекс для Android и iOS, Яндекс Диалоги присвоят отдельный  Этот идентификатор уникален для пары «приложение — навык»: в разных навыках значение свойства  | 
state
Данные о сохраненном состоянии.
| Свойство | Описание | 
| 
 | object Состояние навыка в контексте сессии. | 
| 
 | object Состояние навыка в контексте авторизованного пользователя. | 
| 
 | object Состояние навыка в контексте экземпляра приложения пользователя. | 
Cтрока, выделяется кавычками, например "Hello world".
Целое или дробное число без кавычек, например 25.5.
Логическое значение без кавычек: true (истина) или false (ложь).
Массив элементов, разделенных запятой. Элементом могут быть стандартные элементы JSON: строка, число, true, false, объект или массив. Массив выделяется квадратными скобками []: "cities": ["Moscow", "Tokyo", "New York"] 
Список пар "ключ": значение, разделенных запятой. Выделяется фигурными скобками {}.
{
  "name": "John",
  "surname": "Smith"
}