Библиотека MAX Bridge открывает мини-приложению доступ к системным возможностям — от диплинков до сканера QR-кодов. Первый раздел документации — «Работа с данными инициализации» — объединяет пять методов, и два из них, initData и initDataUnsafe, отдают один и тот же набор стартовых данных о пользователе. Разница не в содержимом, а в том, какой из двух можно использовать для проверки подлинности.

2метода отдают один и тот же набор стартовых данных — initData и initDataUnsafe
1поле hash встречается в обоих представлениях данных
1 часрекомендованный интервал инвалидации auth_date — без указания единиц самого числа
3значения поля chat.type — DIALOG, CHAT, CHANNEL

Один раздел, пять методов, два — про одни данные

В документации MAX Bridge (dev.max.ru) раздел «Работа с данными инициализации» открывает список функциональности библиотеки. Документация перечисляет сразу пять методов одним списком:

Чтобы получить инициализационные данные, в объекте WebApp предусмотрены следующие методы.

dev.max.ru, раздел «Работа с данными инициализации»

Три из пяти — platform, version и deviceName — сообщают о платформе, версии приложения и устройстве, с которого запущено мини-приложение. Оставшиеся два, initData и initDataUnsafe, — про сами стартовые данные: кто открыл мини-приложение, в каком чате и с каким параметром запуска.

Строка для сервера и объект без права на проверку

Первый метод возвращает данные в виде закодированной строки:

Строка со стартовыми параметрами в URL-кодировке.

window.WebApp.initData, dev.max.ru

Документация уточняет назначение этой строки — закодированные в UTF-8 данные предназначены именно для проверки на сервере:

Содержит данные о пользователе и другие инициализационные данные в виде закодированной в UTF-8 строки для валидации на стороне сервера.

window.WebApp.initData, dev.max.ru

Второй метод отдаёт те же данные в удобном виде — готовым JSON-объектом:

Объект, который содержит данные из initData в виде JSON-объекта.

window.WebApp.initDataUnsafe, dev.max.ru

Сразу под описанием — предупреждение, из-за которого в названии метода и стоит слово Unsafe:

Обратите внимание, что объект нельзя использовать для валидации данных.

window.WebApp.initDataUnsafe, dev.max.ru

Удобный для чтения объект годится, чтобы быстро подставить имя пользователя в интерфейс, но не годится, чтобы на его основании принимать решения, которые требуют уверенности в подлинности данных.

Hash есть в обоих — использовать можно только один

Оба метода описывает один и тот же интерфейс InitData, и в нём есть поле hash. Документация в таблице свойств объясняет его назначение так:

Хеш переданных параметров, который можно использовать для проверки их достоверности.

dev.max.ru, раздел «Работа с данными инициализации», таблица свойств InitData

Формулировка относится к полю в целом, а не отдельно к строке и не отдельно к объекту, — но именно объект initDataUnsafe парой абзацев выше прямо помечен как непригодный для валидации. Получается, что hash физически присутствует и в initData, и в initDataUnsafe, но в разделе нет ни слова о том, можно ли проверять достоверность по значению hash, если оно взято из initDataUnsafe, а не из исходной строки initData. Единственная явная инструкция документации — использовать для проверки именно строку.

Что ещё лежит в стартовых данных

Кроме hash, в объекте InitData документация перечисляет ещё несколько полей. У поля auth_date указан не только тип, но и рекомендация по времени жизни:

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

dev.max.ru, раздел «Работа с данными инициализации», таблица свойств InitData, поле auth_date

При этом тип поля в документации — просто number: секунды это unix-времени или миллисекунды, раздел не уточняет. Ещё одно поле — необязательное и не про самого пользователя:

IP-адрес пользователя.

dev.max.ru, раздел «Работа с данными инициализации», таблица свойств InitData, поле ip

Рядом в таблице — идентификатор сессии:

Уникальный идентификатор текущей сессии.

dev.max.ru, раздел «Работа с данными инициализации», таблица свойств InitData, поле query_id

Объект user несёт имя, фамилию, никнейм, код языка интерфейса и ссылку на фото профиля. Объект chat — идентификатор чата и один из трёх типов:

Тип чата (DIALOG / CHAT / CHANNEL).

dev.max.ru, раздел «Работа с данными инициализации», таблица свойств InitData, поле chat.type

То есть уже на старте мини-приложение знает не только кто его открыл, но и в каком именно типе переписки — личном диалоге, групповом чате или канале.

Частые вопросы

Чем initData отличается от initDataUnsafe в MAX Bridge?

initData — закодированная строка для проверки на сервере, initDataUnsafe — те же данные в виде готового JSON-объекта, который документация прямо запрещает использовать для валидации.

Можно ли проверить подлинность данных по hash из initDataUnsafe?

Документация об этом не говорит: единственная явная инструкция — валидировать по строке initData, а объект initDataUnsafe отдельно помечен как непригодный для проверки.

В каких единицах измеряется auth_date в MAX Bridge?

Тип поля — просто number, документация не уточняет, секунды это или миллисекунды; указан только рекомендуемый интервал инвалидации — 1 час.

Какие типы чата возвращает поле chat.type в MAX Bridge?

Три значения: DIALOG для личного диалога, CHAT для группового чата и CHANNEL для канала.

Развиваете канал или бота в MAX?

Добавьте его в каталог MaxOfficial — читатели находят каналы через поиск и подборки, а статистика копится автоматически.

Добавить канал в каталог
initData MAX BridgeinitDataUnsafe MAXвалидация мини-приложения MAXhash стартовых данных MAX
Разбор основан на видимом тексте раздела «Работа с данными инициализации» библиотеки MAX Bridge документации dev.max.ru; замеры — по состоянию на 13 августа 2026 года.