Обзор

API (Application Programming Interface) — это посредник между разработчиком приложений и средой, с которой это приложение должно взаимодействовать. API упрощает написание кода за счёт набора готовых классов, функций или структур для работы с данными

API MAX — это интерфейс, который позволяет ботам взаимодействовать с платформой и получать необходимые данные с помощью HTTPS-запросов к серверу. В этом разделе расскажем, как подготовиться к использованию API приложения

Методы

HTTPS-запросы на домен platform-api.max.ru вызывают методы — условные команды, которые соответствуют той или иной операции с базой данных. Например, получение, запись или удаление какой-либо информации
Параметры запроса должны содержать HTTP-метод, соответствующий необходимой операции:

В зависимости от конкретного метода, параметры запроса будут отображаться в пути, URL-параметрах или теле запроса

Передача токена через query-параметры больше не поддерживается — используйте заголовок Authorization: <token>

Примеры запросов:

JSON — это формат записи данных в виде пар <ИМЯ_СВОЙСТВА>: <ЗНАЧЕНИЕ>. Прочитайте об особенностях формата JSON, если вы ещё не работали с ним
Пример ответа на запрос к методу GET /me:

{
	"user_id": 1,
	"name": "My Bot",
	"username": "my_bot",
	"is_bot": true,
	"last_activity_time": 1737500130100
}

Также, помимо JSON, сервер вернет трёхзначный HTTP-код, информирующий об успешном выполнении запроса или ошибке.

Коды ответов HTTP

Рекомендации по работе с API

Когда вы настраиваете получение обновлений о действиях в чат-боте, используйте:

Для стабильной работы сервисов MAX убедитесь, что максимальное количество запросов в секунду на platform-api.max.ru — 30 rps

Клавиатура для чат-бота

Клавиатура позволяет отправлять боту запросы кнопками, а не сообщениями. Чтобы клавиатура была удобной для пользователей, рекомендуем заранее продумать её наполнение и учитывать обязательные параметры:

Вы можете подключить к чат-боту в MAX inline-клавиатуру. Она позволяет разместить под сообщением бота до 210 кнопок, сгруппированных в 30 рядов — до 7 кнопок в каждом (до 3, если это кнопки типа link, open_app, request_geo_location или request_contact)

Для кнопки с видом link максимальный размер ссылки составляет 2048 символов

Типы кнопок

Обратите внимание: для отправки вебхуков поддерживается только протокол HTTPS, включая самоподписанные сертификаты. HTTP не поддерживается

Кнопка clipboard

При нажатии на кнопку с типом clipboard текст, указанный в свойстве payload, копируется в буфер обмена

В свойстве payload можно передать любой текст, например промокод, трек-номер, платёжные реквизиты

{
  "type": "clipboard", // Тип кнопки
  "text": "Скопировать", // Текст кнопки
  "payload": "123456" // Текст, который будет скопирован
}

Как добавить кнопки

Чтобы добавить кнопки, отправьте сообщение с InlineKeyboardAttachment

{
  "text": "It is message with inline keyboard",
  "attachments": [
    {
      "type": "inline_keyboard",
      "payload": {
        "buttons": [
          [
            {
              "type": "callback", // Тип кнопки
              "text": "Press me!", // Текст кнопки
              "payload": "button1 pressed" // Описание действия
            }
          ]
        ]
      }
    }
  ]
}

Форматирование текста

Текст сообщения в чат-боте можно улучшить с помощью базового форматирования. Для этого вы можете использовать либо Markdown, либо HTML

Markdown

Чтобы включить разбор Markdown, установите свойство format в NewMessageBody на значение markdown

MarkdownОтображение
курсив{’empasized или empasized'}
жирный{’strong или strong'}
~~зачёркнутый~~{’~~strikethough~~'}
подчёркнутый{’++underline++'}
моноширинный{’code (переводы строк внутри этого блока обрабатываются как пробелы)'}
ссылка{’Inline URL'}
@упоминание пользователя{’“text”: “Имя Фамилия”, “format”: “markdown”’}
Вместо User mention указывайте полное имя пользователя из профиля в MAX, в том числе фамилию. Если фамилия отсутствует — только имя

HTML

Чтобы включить разбор HTML, установите свойство format в NewMessageBody на значение html

MarkdownОтображение
курсив{’ или '}
жирный{’ или '}
~~зачёркнутый~~{’ или '}
подчёркнутый{’ или '}
моноширинный{’
 или '}
ссылка{’Docs'}
@упоминание пользователя{’“text”: “<a href=\"max://user/user_id\">Имя Фамилия”, “format”: “html”’}
Вместо User mention указывайте полное имя пользователя из профиля в MAX, в том числе фамилию. Если фамилия отсутствует — только имя

Если у вас возникли вопросы, [посмотрите раздел с ответами](/help)