API Portal

Разработчикам

Создавайте и управляйте своими ботами, приложениями и интеграциями

Начало работы

Vibe Bot API позволяет легко подключать внешнюю автоматизацию, игры и сервисы. Поддерживается слой нативной совместимости со стандартом Telegram Bot API.

Аутентификация

Каждый запрос к API должен содержать секретный токен вашего бота. Вы можете передавать его в URL пути по стандартной схеме:

https://dev.v-vibe.ru/api/bot/tg/bot<YOUR_BOT_TOKEN>/<METHOD_NAME>

Доступные методы

getMe GET / POST

Возвращает базовую информацию о боте в виде объекта User.

// Example Response
{
  "ok": true,
  "result": {
    "id": 12345,
    "is_bot": true,
    "first_name": "My Awesome Bot",
    "username": "my_awesome_bot"
  }
}
sendMessage POST

Отправляет текстовые сообщения пользователям или в групповые каналы. Поддерживает ID пользователя, внутренний числовой ID или username.

Parameters (JSON Body):
  • chat_id (String) - Target user/group
  • text (String) - Message payload
// Payload Example {
  "chat_id": "friend_username",
  "text": "Hello from API Bot!"
}
sendPhoto POST

Отправляет фотографию пользователям или в группы. Поддерживаются URL изображений.

Parameters:
  • chat_id (String) - Target user/group
  • photo (String) - Image URL
  • caption (String, optional)
  • reply_markup (Object, optional)
{
  "chat_id": "username",
  "photo": "https://...",
  "caption": "Photo info"
}
sendVideo POST

Отправляет видео пользователям или в группы. Можно указать длительность и размеры.

Parameters:
  • chat_id (String) - Target user/group
  • video (String) - Video URL
  • caption (String, optional)
  • duration (Number, optional) - Seconds
  • width (Number, optional) - Pixels
  • height (Number, optional) - Pixels
  • reply_markup (Object, optional)
{
  "chat_id": "username",
  "video": "https://...",
  "duration": 60
}
sendAudio POST

Отправляет аудиофайл пользователям или в группы с метаданными.

Parameters:
  • chat_id (String) - Target user/group
  • audio (String) - Audio URL
  • performer (String, optional)
  • title (String, optional)
  • duration (Number, optional)
  • reply_markup (Object, optional)
{
  "chat_id": "123",
  "audio": "https://...",
  "title": "Song Title"
}
sendDocument POST

Отправляет документ или файл пользователям или в группы.

Parameters:
  • chat_id (String) - Target user/group
  • document (String) - File URL
  • caption (String, optional)
  • reply_markup (Object, optional)
{
  "chat_id": "123",
  "document": "https://..."
}
sendVoice POST

Отправляет голосовое сообщение пользователям или в группы.

Parameters:
  • chat_id (String) - Target user/group
  • voice (String) - Audio URL
  • duration (Number, optional) - Seconds
  • reply_markup (Object, optional)
{
  "chat_id": "123",
  "voice": "https://..."
}
sendSticker POST

Отправляет стикер из базы данных платформы.

Parameters:
  • chat_id (String) - Target user/group
  • sticker (String) - Sticker URL or ID
  • reply_markup (Object, optional)
{
  "chat_id": "123",
  "sticker": "https://..."
}
setWebhook POST

Устанавливает URL для получения входящих обновлений через исходящие вебхуки.

Параметры:
  • url (String) - HTTPS URL for webhooks.
Результат: Возвращает True при успешном выполнении.
sendPoll POST

Отправить опрос в чат.

Параметры:
  • chat_id (String) - Target chat.
  • question (String) - 1-300 chars.
  • options (Array) - 2-10 strings.
  • is_anonymous (Bool, opt)
Результат: Возвращает объект отправленного сообщения при успехе.
setMessageReaction POST

Установить реакцию на сообщение с помощью эмодзи.

Параметры:
  • chat_id (String) - Target chat.
  • message_id (String) - Target message.
  • reaction (Array) - List of ReactionType.
Результат: Возвращает True при успешном выполнении.
getFile GET

Получить информацию о файле для последующей загрузки.

Параметры:
  • file_id (String) - Unique file identifier.
Результат: Возвращает объект файла с file_id и путём.
createChatInviteLink POST

Управление инвайт-ссылками чата, создание и отзыв.

Параметры:
  • chat_id (String) - Target group chat.
  • name (String, opt) - Link name.
  • expire_date (Num, opt) - Unix time.
"result": { "invite_link": "https://..." }
setChatTitle POST

Изменить название группового чата.

Параметры:
  • chat_id (String) - Target chat
  • title (String) - New chat title
Результат: Возвращает True при успешном выполнении.
pinChatMessage POST

Закрепить сообщение в чате.

Параметры:
  • chat_id (String) - Target chat
  • message_id (String) - Message to pin
Результат: Возвращает True при успешном выполнении.
getChat GET / POST

Получить актуальную информацию о чате.

Параметры:
  • chat_id (String) - Target chat
Результат: Возвращает объект чата с полной информацией.
leaveChat POST

Покинуть групповой чат или канал.

Параметры:
  • chat_id (String) - Target chat
Результат: Возвращает True при успешном выполнении.
setMyName POST

Изменить отображаемое имя бота.

Параметры:
  • name (String, opt) - New bot name
  • language_code (String, opt)
Результат: Возвращает True при успешном выполнении.
setMyDescription POST

Изменить описание (био) бота.

Параметры:
  • description (String, opt)
  • language_code (String, opt)
Результат: Возвращает True при успешном выполнении.
getMyName GET

Получить текущее имя бота.

Параметры:
  • language_code (String, opt)
"result": { "name": "..." }
sendGift POST

Отправить подарок пользователю.

Параметры:
  • user_id (String) - Recipient.
  • gift_id (String) - Gift identifier.
Результат: Возвращает True при успешном выполнении.

Интерактивные кнопки (reply_markup)

Все методы отправки сообщений поддерживают необязательный параметр `reply_markup` для создания интерактивных кнопок (инлайн-клавиатур).

// Inline Keyboard Example
{
  "inline_keyboard": [
    [
      { "text": "Visit Site", "url": "https://v-vibe.ru" },
      { "text": "Help", "callback_data": "help_cmd" }
    ]
  ]
}

Как работают вебхуки

Вебхуки позволяют вашему боту получать обновления в реальном времени. Когда происходит событие (новое сообщение, добавление в группу), сервер Vibe отправляет HTTP POST запрос с JSON телом на указанный вами URL.

Безопасность и подписи

Для проверки подлинности запроса сервер отправляет заголовок `X-Vibe-Signature`, содержащий HMAC-SHA256 подпись тела запроса с использованием вашего Webhook Secret Token. Настоятельно рекомендуется проверять эту подпись на вашей стороне.

Повторные попытки

Если ваш сервер отвечает ошибкой (статус не 2xx) или недоступен, Vibe предпримет несколько повторных попыток отправки с экспоненциальной задержкой. Убедитесь, что ваш endpoint отвечает быстро (желательно за пару секунд), чтобы избежать задержек в очереди.

Лимиты API и ограничения

Для обеспечения стабильности платформы и предотвращения спама применяются динамические ограничения (Rate Limits) на запросы к API и доставку вебхуков.

Запросы к API: Для каждого токена действует ограничение на количество запросов в секунду (RPS). При превышении лимита сервер вернет статус `429 Too Many Requests`. Рекомендуется использовать экспоненциальную задержку при получении 429 статуса.

Webhooks: Существует ограничение на количество одновременных исходящих соединений (Concurrency) к вашему серверу. Если ваш сервер не справляется с нагрузкой, новые события будут ставиться в очередь. Обрабатывайте вебхуки асинхронно.

Отправка сообщений: Действуют дополнительные лимиты на массовую рассылку и массовое добавление в группы для предотвращения спама. Достижение этих лимитов может привести к временным автоматическим ограничениям работы бота.

📧

Если вам необходимо увеличить лимиты для вашего приложения, пожалуйста, свяжитесь с нами по электронной почте: support@v-vibe.ru

Шлюз реального времени

Боты также могут использовать наши нативные WebSocket (Socket.io) эндпоинты для потоковой передачи сообщений в реальном времени.

ruukbeen