Документация API

REST API для уведомлений через Telegram и Max. Подписчики, OTP, рассылки, формы, helpdesk.

Auth через ботов

Авторизация пользователей вашего сайта через ботов Telegram/Max. Пользователь кликает ссылку, подтверждает в боте, автоматически подписывается на уведомления, и вы получаете его данные.

Как это работает

1. Пользователь кликает ссылку бота

2. Бот показывает запрос авторизации с кнопками "Войти" / "Отмена"

3. Пользователь нажимает "Войти" → автоматическая подписка на уведомления + генерация кода

4. Бот отправляет кнопку "Перейти на сайт" → callback_url?code=CODE

5. Ваш сервер вызывает POST /v1/auth/verify → получает данные

Настройка

В дашборде проекта перейдите в Settings → Auth и задайте Callback URL и Origin URL.

Статические ссылки

Простой вариант — постоянная ссылка. Получите через API или в дашборде:

GET /v1/auth/link
 
// Response:
{
"telegram_link": "https://t.me/YourBot?start=auth_my-app",
"max_link": "https://max.ru/YourBot?start=auth_my-app",
"configured": true
}

API-сессии (с state)

Для передачи state (например, ID браузерной сессии) создайте сессию через API:

POST /v1/auth/session
 
{
"state": "browser_session_abc"
}
 
// Response:
{
"session_id": "aBcDeFgH12345678",
"telegram_link": "https://t.me/YourBot?start=auths_aBcDeFgH12345678",
"expires_in": 300
}

Верификация кода

После подтверждения пользователь попадает на callback_url?code=CODE. Верифицируйте код:

POST /v1/auth/verify
 
{
"code": "aBcDeFgH..."
}
 
// Response:
{
"channel": "telegram",
"first_name": "John",
"username": "johndoe",
"avatar_url": null,
"subscriber_id": "uuid-...",
"lang": "ru",
"tags": [],
"state": "browser_session_abc"
}

QR/Polling (кросс-девайс)

Для авторизации на десктопе через мобильного бота: создайте сессию, покажите QR-код со ссылкой, и поллите статус. Когда пользователь подтвердит авторизацию на телефоне, вы получите code. Интервал polling: 2-3 секунды. Код одноразовый — после получения status=completed повторный запрос вернёт expired.

GET /v1/auth/session/{session_id}/status
 
// Pending:
{ "status": "pending" }
 
// Completed:
{ "status": "completed", "code": "aBcDeFgH..." }

Связанные разделы