Создавайте чат-ботов в Reyta через простой HTTPS API. Он повторяет Telegram Bot API, поэтому знакомые методы, параметры и JSON-ответы работают здесь без изменений – а существующий бот переносится сменой одной строки.
Введение
Bot API – это набор HTTPS-эндпоинтов. Каждый вызов складывается из базового URL, токена вашего бота и имени метода. Вы отправляете параметры – получаете JSON. На стороне сервера ничего ставить не нужно: с ним работает любой язык с HTTP-клиентом.
Форма эндпоинта
https://api.reyta.uz/bot<token>/METHOD_NAME
У каждого ответа один и тот же конверт: булево ok и либо result при успехе, либо error_code с понятным description при ошибке.
Вот и вся модель: замените getMe на любой метод ниже, добавьте его параметры и читайте JSON в ответе.
Авторизация
Токен передаётся прямо в пути запроса – отдельного заголовка или шага OAuth нет. Держите его в секрете: тот, у кого он есть, управляет ботом. Если токен утёк, отзовите и перевыпустите его в BotMother.
Проверка токена
curl"https://api.reyta.uz/bot<token>/getMe"
Запросы
Передавайте параметры строкой запроса, form-кодированным телом (application/x-www-form-urlencoded) или JSON (application/json). Для загрузки файла используйте multipart/form-data. Большинство методов работают и через GET, и через POST.
Запрос с JSON-телом
curl"https://api.reyta.uz/bot<token>/sendMessage"\ -H"Content-Type: application/json"\ -d'{"chat_id": 987654321, "text": "Hello from Reyta"}'
Переход с Telegram
Поскольку интерфейс совпадает с Telegram Bot API, переход – это не переписывание, а изменение настройки. Укажите в вашей библиотеке базовый адрес API на Reyta и используйте токен из BotMother. Ваши вызовы методов, обработка обновлений и типы остаются прежними. Ниже – изменения в одну строку для популярных библиотек (grammY и Telegraf проверены на этом эндпоинте).
Чтобы написать пользователю или в чат, нужен его chat_id. Самый простой способ его узнать: отправьте боту сообщение и прочитайте его через getUpdates – chat.id будет в ответе. Затем:
sendMessage
curl"https://api.reyta.uz/bot<token>/sendMessage"\ -d"chat_id=987654321"\ -d"text=Salom! My bot is live on Reyta."\ -d"parse_mode=HTML"
Добавьте инлайн-клавиатуру, ответьте на сообщение или прикрепите медиа – параметры перечислены под каждым методом ниже.
Получение обновлений
Получайте входящие события через long polling или webhook. Выберите один способ – они взаимоисключающие.
POST/bot<token>/getUpdates→ Array of UpdateЧастичная поддержка
Опрашивает новые обновления через long polling. Возвращает массив объектов Update.
allowed_updates фильтрует на чтении: отфильтрованные апдейты не возвращаются, но остаются в очереди и продолжают учитываться в pending_update_count, пока не подтверждён offset за ними.
Параметр
Тип
Обязательный
Описание
offset
Integer
Необязательный
Идентификатор первого возвращаемого обновления. Укажите последний полученный update_id + 1 для подтверждения.
limit
Integer
Необязательный
Количество обновлений, 1–100. По умолчанию 100.
timeout
Integer
Необязательный
Таймаут long polling в секундах. 0 – короткий опрос (только для тестов).
allowed_updates
Array of String
Необязательный
Список типов обновлений для получения, напр. ["message","callback_query"].
{"ok":true,"result":true,"description":"Webhook was set"}
POST/bot<token>/deleteWebhook→ True
Удаляет webhook и возвращает к getUpdates.
Параметр
Тип
Обязательный
Описание
drop_pending_updates
Boolean
Необязательный
Отбросить всё, что накопилось в очереди до этого вызова.
GET/bot<token>/getWebhookInfo→ WebhookInfo
Текущий статус webhook, число ожидающих обновлений и последняя ошибка.
Отправка сообщений
Доставляйте текст, медиа и любой контент в любой доступный боту чат.
POST/bot<token>/sendMessage→ MessageЧастичная поддержка
Отправляет текстовое сообщение. Поддерживает форматирование Markdown/HTML и inline-клавиатуры.
Объект reply_to_message содержит id и чат отвечаемого сообщения, но не его содержимое — при необходимости запросите его по id. Поле link_preview_options в ответе не возвращается.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Уникальный идентификатор чата или @username канала.
text
String
Да
Текст сообщения, 1–4096 символов.
parse_mode
String
Необязательный
"MarkdownV2" или "HTML" для форматирования.
reply_markup
Object
Необязательный
Inline-клавиатура, reply-клавиатура или force-reply.
disable_notification
Boolean
Необязательный
Отправить без звука уведомления.
Запрос
curl"https://api.reyta.uz/bot<token>/sendMessage"\ -d"chat_id=987654321"\ -d"text=Salom! Reyta Bot API is live."\ -d"parse_mode=HTML"
Ответ
{"ok":true,"result":{"message_id":43,"chat":{"id":987654321,"type":"private"},"date":1783900050,"text":"Salom! Reyta Bot API is live."}}
POST/bot<token>/sendPhoto→ Message
Отправляет фото по file_id, HTTP-URL или загрузкой multipart.
Копирует несколько сообщений сразу, без ссылки на оригинал.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
from_chat_id
Integer or String
Да
Чат, из которого берётся сообщение.
message_ids
Array of Integer
Да
JSON-массив id сообщений.
remove_caption
Boolean
Необязательный
Копировать без исходной подписи.
POST/bot<token>/forwardMessages→ Array of MessageId
Пересылает несколько сообщений сразу, сохраняя исходного автора.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
from_chat_id
Integer or String
Да
Чат, из которого берётся сообщение.
message_ids
Array of Integer
Да
JSON-массив id сообщений.
disable_notification
Boolean
Необязательный
Доставить без звука уведомления.
protect_content
Boolean
Необязательный
Запретить пересылку и сохранение отправленного сообщения.
reply_to_message_id
Integer
Необязательный
Отправить ответом на это сообщение.
message_thread_id
Integer
Необязательный
Тема форума, к которой относится сообщение.
Изменение и удаление
Редактирование и удаление уже отправленных ботом сообщений. Правка по chat_id + message_id работает везде; правка инлайн-сообщения по inline_message_id пока не поддерживается.
POST/bot<token>/editMessageText→ Message or TrueЧастичная поддержка
Изменяет текст отправленного или inline-сообщения.
Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.
Параметр
Тип
Обязательный
Описание
text
String
Да
Новый текст сообщения.
chat_id
Integer or String
Необязательный
Целевой чат. Обязателен, если не используется inline_message_id.
message_id
Integer
Необязательный
Сообщение для правки. Обязательно, если не используется inline_message_id.
POST/bot<token>/editMessageCaption→ Message or TrueЧастичная поддержка
Изменяет подпись медиасообщения.
Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_id
Integer
Да
Целевое сообщение.
inline_message_id
String
Необязательный
Идентификатор инлайн-сообщения.
caption
String
Необязательный
Подпись, 0-1024 символа.
parse_mode
String
Необязательный
Markdown, MarkdownV2 или HTML.
reply_markup
InlineKeyboardMarkup
Необязательный
JSON-клавиатура, прикреплённая к сообщению.
POST/bot<token>/editMessageMedia→ Message or TrueЧастичная поддержка
Заменяет медиа в сообщении.
Работает по chat_id + message_id (медиа по file_id, URL или загрузка attach://; подпись из InputMedia заменяет подпись сообщения). Редактирование по inline_message_id пока не поддерживается.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_id
Integer
Да
Целевое сообщение.
media
Array of InputMedia
Да
JSON-массив, описывающий элементы альбома.
inline_message_id
String
Необязательный
Идентификатор инлайн-сообщения.
reply_markup
InlineKeyboardMarkup
Необязательный
JSON-клавиатура, прикреплённая к сообщению.
POST/bot<token>/editMessageReplyMarkup→ Message or TrueЧастичная поддержка
Изменяет только inline-клавиатуру сообщения.
Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_id
Integer
Да
Целевое сообщение.
inline_message_id
String
Необязательный
Идентификатор инлайн-сообщения.
reply_markup
InlineKeyboardMarkup
Необязательный
JSON-клавиатура, прикреплённая к сообщению.
POST/bot<token>/editMessageLiveLocation→ Message or TrueЧастичная поддержка
Перемещает активную live-локацию.
Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_id
Integer
Да
Целевое сообщение.
inline_message_id
String
Необязательный
Идентификатор инлайн-сообщения.
latitude
Float
Необязательный
Широта точки.
longitude
Float
Необязательный
Долгота точки.
live_period
Integer
Необязательный
Сколько секунд точка остаётся live.
heading
Integer
Необязательный
Направление движения пользователя, 1-360 градусов.
proximity_alert_radius
Integer
Необязательный
Расстояние в метрах для оповещений о приближении.
POST/bot<token>/deleteMessage→ True
Удаляет сообщение, отправленное ботом, или любое сообщение, где он администратор.
POST/bot<token>/answerInlineQuery→ TrueЧастичная поддержка
Отвечает на inline-запрос списком результатов.
Поддерживаемые типы результатов: article, photo, gif, mpeg4_gif, video, audio, voice, document, sticker, location, venue и contact - каждый и в URL-, и в cached-варианте (*_file_id), как определяет Bot API. Игры не поддерживаются и возвращают 400.
Просматривайте и управляйте чатами, участниками, пригласительными ссылками и правами администраторов.
GET/bot<token>/getChat→ ChatЧастичная поддержка
Актуальная информация о чате.
Возвращает полный ChatFullInfo. Объект pinned_message содержит id и чат закреплённого сообщения, но не его текст — при необходимости запросите его по id.
Отзывает ссылку-приглашение, чтобы она перестала работать.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
invite_link
String
Да
Ссылка-приглашение, с которой работаем.
POST/bot<token>/approveChatJoinRequest→ True
Одобряет заявку на вступление в чат.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
user_id
Integer
Да
Целевой пользователь.
POST/bot<token>/declineChatJoinRequest→ True
Отклоняет заявку на вступление в чат.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
user_id
Integer
Да
Целевой пользователь.
Настройка бота
Собственный профиль бота: имя, описания, список команд и права администратора по умолчанию. Все они задаются по языкам — передайте language_code для локализованного значения или опустите его для значения по умолчанию.
GET/bot<token>/getMe→ User
Базовая информация о боте. Быстрый способ проверить токен.
POST/bot<token>/setMyCommands→ True
Задаёт список команд бота.
Параметр
Тип
Обязательный
Описание
commands
Array of BotCommand
Да
JSON-массив команд, от 0 до 100 элементов.
scope
BotCommandScope
Необязательный
Где действуют команды. Сейчас учитывается только область default.
language_code
String
Необязательный
Двухбуквенный код языка, для которого заданы команды.
Запрос
curl"https://api.reyta.uz/bot<token>/setMyCommands"\ -d'commands=[{"command":"start","description":"Begin"},{"command":"help","description":"How it works"}]'\ -d'scope={"type":"all_private_chats"}'
Ответ
{"ok":true,"result":true}
GET/bot<token>/getMyCommands→ Array of BotCommand
Текущий список команд бота.
Параметр
Тип
Обязательный
Описание
scope
BotCommandScope
Необязательный
JSON-scope: default, all_private_chats, all_group_chats, all_chat_administrators, chat, chat_administrators или chat_member.
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setMyName→ True
Задаёт имя бота.
Параметр
Тип
Обязательный
Описание
name
String
Необязательный
Имя.
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getMyName→ BotName
Текущее имя бота.
Параметр
Тип
Обязательный
Описание
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setMyDescription→ True
Задаёт описание бота.
Параметр
Тип
Обязательный
Описание
description
String
Необязательный
Текст описания.
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setChatMenuButton→ TrueЧастичная поддержка
Меняет кнопку меню бота в чате.
Тип кнопки web_app отклоняется с 400. Только для личных чатов.
Параметр
Тип
Обязательный
Описание
menu_button
MenuButton
Необязательный
JSON-кнопка меню: default или commands.
chat_id
Integer or String
Необязательный
Целевой чат: числовой id или @username.
POST/bot<token>/logOut→ True
Выходит из облачного Bot API перед переносом бота на свой сервер.
POST/bot<token>/deleteMyCommands→ True
Удаляет список команд бота для указанной области и языка.
Параметр
Тип
Обязательный
Описание
scope
BotCommandScope
Необязательный
JSON-scope: default, all_private_chats, all_group_chats, all_chat_administrators, chat, chat_administrators или chat_member.
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getMyDescription→ BotDescription
Возвращает описание бота, показываемое на пустом экране чата.
Параметр
Тип
Обязательный
Описание
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setMyShortDescription→ True
Задаёт краткое описание, показываемое в профиле бота.
Параметр
Тип
Обязательный
Описание
short_description
String
Необязательный
Краткое описание в профиле бота.
language_code
String
Необязательный
Двухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getCustomEmojiStickers→ Array of Sticker
Информация о кастомных эмодзи-стикерах по id.
Параметр
Тип
Обязательный
Описание
custom_emoji_ids
Array of String
Да
JSON-массив id кастомных эмодзи.
POST/bot<token>/createNewStickerSet→ TrueЧастичная поддержка
Создаёт новый набор стикеров, принадлежащий пользователю.
Владельцем набора становится создавший его бот, а не user_id — Reyta проставляет владельца по вызывающему API. Параметр needs_repainting принимается, но не сохраняется.
Параметр
Тип
Обязательный
Описание
user_id
Integer
Да
Идентифицирует запрашивающего. Владельцем набора становится вызывающий бот.
name
String
Да
Короткое имя набора, 5-64 символа: сначала буква, далее буквы, цифры и подчёркивания.
title
String
Да
Название набора, 1-64 символа.
stickers
Array of InputSticker
Да
JSON-массив, не более 50 элементов. В каждом нужны sticker (file_id из uploadStickerFile либо attach://<поле>, указывающее на часть этого запроса), format и emoji_list; keywords и mask_position необязательны.
JSON-объект: point (forehead, eyes, mouth, chin), x_shift, y_shift, scale.
POST/bot<token>/uploadStickerFile→ FileЧастичная поддержка
Загружает файл стикера для последующего использования в наборе.
Файл проверяется до сохранения: формат, размеры (одна сторона 512px), частота кадров и длительность TGS, кодек WebM. Отклонённый файл получает 400 с названием нарушенного правила.
Параметр
Тип
Обязательный
Описание
user_id
Integer
Да
Пользователь, для которого выполняется загрузка. В Reyta владельцем набора всегда является вызывающий бот, поэтому поле только идентифицирует запрашивающего.
sticker
InputFile
Да
Файл стикера, загружаемый как multipart/form-data.
sticker_format
String
Да
Одно из: static (.webp), animated (.tgs) или video (.webm).
Идентификатор кастомного эмодзи из набора. Принимаются и десятичный id документа, и file_unique_id из getStickerSet. Не передавайте, чтобы очистить.
Темы форума
Управление темами в форум-супергруппе. Каждому методу нужна супергруппа с включённым режимом форума — канал или обычная группа отклоняются.
POST/bot<token>/createForumTopic→ ForumTopic
Создаёт тему в форуме-супергруппе.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Идентификатор целевого чата или @channelusername.
name
String
Да
Название темы, до 128 символов.
icon_color
Integer
Необязательный
Цвет иконки в виде RGB-числа.
icon_custom_emoji_id
String
Необязательный
Кастомный эмодзи в качестве иконки темы.
POST/bot<token>/editForumTopic→ True
Изменяет имя/значок темы форума.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_thread_id
Integer
Да
Тема форума, к которой относится сообщение.
name
String
Необязательный
Имя.
icon_custom_emoji_id
String
Необязательный
Кастомное эмодзи в качестве иконки темы.
POST/bot<token>/deleteForumTopic→ True
Удаляет тему форума вместе с её сообщениями.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_thread_id
Integer
Да
Тема форума, к которой относится сообщение.
POST/bot<token>/closeForumTopic→ True
Закрывает тему форума – новые сообщения отправить нельзя.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_thread_id
Integer
Да
Тема форума, к которой относится сообщение.
POST/bot<token>/reopenForumTopic→ True
Снова открывает закрытую тему форума.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_thread_id
Integer
Да
Тема форума, к которой относится сообщение.
POST/bot<token>/unpinAllForumTopicMessages→ True
Открепляет все закреплённые сообщения в теме форума.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
message_thread_id
Integer
Да
Тема форума, к которой относится сообщение.
POST/bot<token>/editGeneralForumTopic→ True
Переименовывает тему General в форуме.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
name
String
Да
Имя.
POST/bot<token>/closeGeneralForumTopic→ True
Закрывает тему General в форуме.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
POST/bot<token>/reopenGeneralForumTopic→ True
Снова открывает тему General в форуме.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
POST/bot<token>/hideGeneralForumTopic→ True
Скрывает тему General из списка тем форума.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
POST/bot<token>/unhideGeneralForumTopic→ True
Снова показывает тему General.
Параметр
Тип
Обязательный
Описание
chat_id
Integer or String
Да
Целевой чат: числовой id или @username.
GET/bot<token>/getForumTopicIconStickers→ Array of StickerЧастичная поддержка
Возвращает стикеры, доступные как иконки тем форума.
В Reyta нет курируемого набора иконок тем. Оператор может указать серверу набор кастомных эмодзи; до этого метод возвращает пустой массив, и клиенты не показывают выбор иконок.