Reyta Bot API

Создавайте чат-ботов в 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 при ошибке.

JSONКонверт ответа
{ "ok": true,  "result": { ... } }
{ "ok": false, "error_code": 401, "description": "Unauthorized" }

Токен выдаётся при создании бота в BotMother. Это единственный ключ доступа – храните его как пароль.

Быстрый старт

Вызовите getMe, чтобы проверить токен и увидеть своего бота. Вставьте это в терминал (подставьте <token>):

ShellЗапрос
curl "https://api.reyta.uz/bot<token>/getMe"
JSONОтвет
{
  "ok": true,
  "result": {
    "id": 770001,
    "is_bot": true,
    "first_name": "My Bot",
    "username": "my_bot"
  }
}

Вот и вся модель: замените getMe на любой метод ниже, добавьте его параметры и читайте JSON в ответе.

Авторизация

Токен передаётся прямо в пути запроса – отдельного заголовка или шага OAuth нет. Держите его в секрете: тот, у кого он есть, управляет ботом. Если токен утёк, отзовите и перевыпустите его в BotMother.

ShellПроверка токена
curl "https://api.reyta.uz/bot<token>/getMe"

Запросы

Передавайте параметры строкой запроса, form-кодированным телом (application/x-www-form-urlencoded) или JSON (application/json). Для загрузки файла используйте multipart/form-data. Большинство методов работают и через GET, и через POST.

ShellЗапрос с 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 проверены на этом эндпоинте).

grammY (Node / TypeScript)

TypeScriptgrammy.ts
import { Bot } from "grammy";

const bot = new Bot("<token>", {
  client: { apiRoot: "https://api.reyta.uz" },
});

console.log(await bot.api.getMe());

Telegraf (Node / TypeScript)

TypeScripttelegraf.ts
import { Telegraf } from "telegraf";

const bot = new Telegraf("<token>", {
  telegram: { apiRoot: "https://api.reyta.uz" },
});

console.log(await bot.telegram.getMe());

python-telegram-bot

Pythonbot.py
from telegram.ext import ApplicationBuilder

app = (
    ApplicationBuilder()
    .token("<token>")
    .base_url("https://api.reyta.uz/bot")
    .build()
)

Любая другая библиотека или прямой HTTP

Если в библиотеке есть параметр базового URL, хоста или apiRoot, укажите https://api.reyta.uz. Если вызываете API напрямую – просто смените хост:

Базовый URL
- https://api.telegram.org/bot<token>/sendMessage
+ https://api.reyta.uz/bot<token>/sendMessage

Отправка сообщения

Чтобы написать пользователю или в чат, нужен его chat_id. Самый простой способ его узнать: отправьте боту сообщение и прочитайте его через getUpdates – chat.id будет в ответе. Затем:

ShellsendMessage
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 за ними.

ПараметрТипОбязательныйОписание
offsetIntegerНеобязательныйИдентификатор первого возвращаемого обновления. Укажите последний полученный update_id + 1 для подтверждения.
limitIntegerНеобязательныйКоличество обновлений, 1–100. По умолчанию 100.
timeoutIntegerНеобязательныйТаймаут long polling в секундах. 0 – короткий опрос (только для тестов).
allowed_updatesArray of StringНеобязательныйСписок типов обновлений для получения, напр. ["message","callback_query"].
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/getUpdates" \
  -d "timeout=30&offset=1"
JSONОтвет
{
  "ok": true,
  "result": [
    {
      "update_id": 100001,
      "message": {
        "message_id": 42,
        "from": { "id": 987654321, "is_bot": false, "first_name": "Aziz" },
        "chat": { "id": 987654321, "type": "private" },
        "date": 1783900000,
        "text": "/start"
      }
    }
  ]
}
POST/bot<token>/setWebhook→ True

Регистрирует HTTPS-URL для получения обновлений через push. Reyta доставляет каждое обновление как JSON POST.

ПараметрТипОбязательныйОписание
urlStringДаHTTPS-URL для отправки обновлений. Пустая строка удаляет webhook.
secret_tokenStringНеобязательный1–256 символов; возвращается в заголовке X-Telegram-Bot-Api-Secret-Token, чтобы вы могли проверять запросы.
allowed_updatesArray of StringНеобязательныйТипы обновлений для получения.
max_connectionsIntegerНеобязательныйМакс. число одновременных HTTPS-соединений для доставки, 1–100. По умолчанию 40.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/setWebhook" \
  -d "url=https://your-bot.example/hook&secret_token=s3cr3t"
JSONОтвет
{ "ok": true, "result": true, "description": "Webhook was set" }
POST/bot<token>/deleteWebhook→ True

Удаляет webhook и возвращает к getUpdates.

ПараметрТипОбязательныйОписание
drop_pending_updatesBooleanНеобязательныйОтбросить всё, что накопилось в очереди до этого вызова.
GET/bot<token>/getWebhookInfo→ WebhookInfo

Текущий статус webhook, число ожидающих обновлений и последняя ошибка.

Отправка сообщений

Доставляйте текст, медиа и любой контент в любой доступный боту чат.

POST/bot<token>/sendMessage→ MessageЧастичная поддержка

Отправляет текстовое сообщение. Поддерживает форматирование Markdown/HTML и inline-клавиатуры.

Объект reply_to_message содержит id и чат отвечаемого сообщения, но не его содержимое — при необходимости запросите его по id. Поле link_preview_options в ответе не возвращается.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаУникальный идентификатор чата или @username канала.
textStringДаТекст сообщения, 1–4096 символов.
parse_modeStringНеобязательный"MarkdownV2" или "HTML" для форматирования.
reply_markupObjectНеобязательныйInline-клавиатура, reply-клавиатура или force-reply.
disable_notificationBooleanНеобязательныйОтправить без звука уведомления.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/sendMessage" \
  -d "chat_id=987654321" \
  -d "text=Salom! Reyta Bot API is live." \
  -d "parse_mode=HTML"
JSONОтвет
{
  "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_idInteger or StringДаЦелевой чат.
photoString or InputFileДаfile_id, HTTPS-URL или загруженный файл.
captionStringНеобязательныйПодпись, 0–1024 символа.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/sendPhoto" \
  -F chat_id=1000100 -F caption="Look" -F photo=@cat.jpg
JSONОтвет
{
  "ok": true,
  "result": {
    "message_id": 512,
    "from": { "id": 523722417021, "is_bot": true, "first_name": "Jokebot" },
    "chat": { "id": 1000100, "type": "private" },
    "date": 1787900000,
    "caption": "Look",
    "photo": [ { "file_id": "l8BvW8G5ZiGyZcYCX...", "file_unique_id": "k9UIku2zcCg", "width": 320, "height": 240, "file_size": 8123 } ]
  }
}
POST/bot<token>/forwardMessage→ Message

Пересылает сообщение любого типа из одного чата в другой.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
from_chat_idInteger or StringДаЧат, из которого пересылается сообщение.
message_idIntegerДаИдентификатор сообщения.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/forwardMessage" \
  -d "chat_id=1000100&from_chat_id=-1001234567890&message_id=42"
JSONОтвет
{
  "ok": true,
  "result": {
    "message_id": 516,
    "chat": { "id": 1000100, "type": "private" },
    "date": 1787900030,
    "text": "the forwarded text"
  }
}
POST/bot<token>/copyMessage→ MessageIdЧастичная поддержка

Копирует сообщение без заголовка пересылки.

Реализовано как копирование с последующим редактированием подписи. Если редактирование не удалось, копия всё равно доставлена, но без новой подписи.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
from_chat_idInteger or StringДаЧат, из которого копируется сообщение.
message_idIntegerДаИдентификатор сообщения.
captionStringНеобязательныйНовая подпись. Если не указана, сохраняется исходная.
parse_modeStringНеобязательныйФорматирование новой подписи: HTML, Markdown или MarkdownV2.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/copyMessage" \
  -d "chat_id=1000100&from_chat_id=-1001234567890&message_id=42&caption=New caption"
JSONОтвет
{ "ok": true, "result": { "message_id": 517 } }
POST/bot<token>/sendDocument→ Message

Отправляет любой файл в пределах заданного лимита размера.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
documentInputFile or StringДаФайл: file_id, HTTPS-URL или multipart-загрузка.
captionStringНеобязательныйПодпись, 0-1024 символа.
parse_modeStringНеобязательныйMarkdown, MarkdownV2 или HTML.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
thumbnailInputFileНеобязательныйОбложка, загружаемая как multipart-часть. Старое имя thumb тоже принимается.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/sendDocument" \
  -F chat_id=1000100 -F [email protected]
JSONОтвет
{
  "ok": true,
  "result": {
    "message_id": 513,
    "chat": { "id": 1000100, "type": "private" },
    "date": 1787900010,
    "document": { "file_id": "qWQSGcLKbVNV1I3y...", "file_unique_id": "Ch0MHHySQBAA", "file_name": "report.pdf", "mime_type": "application/pdf", "file_size": 20481 }
  }
}
POST/bot<token>/sendVideo→ Message

Отправляет видео в формате MP4.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
videoInputFile or StringДаВидео: file_id, HTTPS-URL или multipart-загрузка.
captionStringНеобязательныйПодпись, 0-1024 символа.
parse_modeStringНеобязательныйMarkdown, MarkdownV2 или HTML.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
durationIntegerНеобязательныйДлительность в секундах.
widthIntegerНеобязательныйШирина в пикселях.
heightIntegerНеобязательныйВысота в пикселях.
supports_streamingBooleanНеобязательныйПометить видео как пригодное для стриминга.
has_spoilerBooleanНеобязательныйСкрыть медиа под спойлером.
thumbnailInputFileНеобязательныйОбложка, загружаемая как multipart-часть. Старое имя thumb тоже принимается.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendAnimation→ Message

Отправляет GIF или анимацию H.264/MPEG-4 без звука.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
animationInputFile or StringДаАнимация: file_id, HTTPS-URL или multipart-загрузка.
captionStringНеобязательныйПодпись, 0-1024 символа.
parse_modeStringНеобязательныйMarkdown, MarkdownV2 или HTML.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
durationIntegerНеобязательныйДлительность в секундах.
widthIntegerНеобязательныйШирина в пикселях.
heightIntegerНеобязательныйВысота в пикселях.
has_spoilerBooleanНеобязательныйСкрыть медиа под спойлером.
thumbnailInputFileНеобязательныйОбложка, загружаемая как multipart-часть. Старое имя thumb тоже принимается.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendAudio→ Message

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

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
audioInputFile or StringДаАудио: file_id, HTTPS-URL или multipart-загрузка.
captionStringНеобязательныйПодпись, 0-1024 символа.
parse_modeStringНеобязательныйMarkdown, MarkdownV2 или HTML.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
durationIntegerНеобязательныйДлительность в секундах.
performerStringНеобязательныйИсполнитель аудио.
titleStringНеобязательныйНазвание.
thumbnailInputFileНеобязательныйОбложка, загружаемая как multipart-часть. Старое имя thumb тоже принимается.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendVoice→ Message

Отправляет голосовое сообщение (OGG/OPUS).

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
voiceInputFile or StringДаГолосовое: file_id, HTTPS-URL или multipart-загрузка.
captionStringНеобязательныйПодпись, 0-1024 символа.
parse_modeStringНеобязательныйMarkdown, MarkdownV2 или HTML.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
durationIntegerНеобязательныйДлительность в секундах.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendVideoNote→ Message

Отправляет круглое квадратное видеосообщение.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
video_noteInputFile or StringДаВидеозаметка: file_id или multipart-загрузка.
lengthIntegerНеобязательныйДлина стороны квадратной видеозаметки.
durationIntegerНеобязательныйДлительность в секундах.
thumbnailInputFileНеобязательныйОбложка, загружаемая как multipart-часть. Старое имя thumb тоже принимается.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendMediaGroup→ Array of Message

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

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
mediaArray of InputMediaДаJSON-массив, описывающий элементы альбома.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/sendMediaGroup" \
  -d chat_id=1000100 \
  -d 'media=[{"type":"photo","media":"https://reyta.uz/a.jpg","caption":"one"},{"type":"photo","media":"https://reyta.uz/b.jpg"}]'
JSONОтвет
{
  "ok": true,
  "result": [
    { "message_id": 514, "chat": { "id": 1000100, "type": "private" }, "media_group_id": "2093252871779782656", "caption": "one", "photo": [] },
    { "message_id": 515, "chat": { "id": 1000100, "type": "private" }, "media_group_id": "2093252871779782656", "photo": [] }
  ]
}
POST/bot<token>/sendLocation→ Message

Отправляет точку на карте; может быть live-локацией.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
latitudeFloatДаШирота точки.
longitudeFloatДаДолгота точки.
live_periodIntegerНеобязательныйСколько секунд локация остаётся live, 60-86400. Без него – разовая локация.
POST/bot<token>/sendVenue→ Message

Отправляет информацию о месте.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
latitudeFloatДаШирота точки.
longitudeFloatДаДолгота точки.
titleStringДаНазвание.
addressStringДаАдрес места.
foursquare_idStringНеобязательныйИдентификатор места в Foursquare.
foursquare_typeStringНеобязательныйКатегория места в Foursquare.
google_place_idStringНеобязательныйИдентификатор места в Google Places.
google_place_typeStringНеобязательныйКатегория места в Google Places.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendContact→ Message

Отправляет телефонный контакт.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
phone_numberStringДаТелефон контакта.
first_nameStringДаИмя контакта.
last_nameStringНеобязательныйФамилия контакта.
vcardStringНеобязательныйДополнительные данные контакта в формате vCard.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendPoll→ MessageПока недоступен

Отправляет опрос или викторину.

Пока не реализован – возвращает 501. Опросы на стороне сервера не поддерживаются.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
questionStringДаВопрос опроса.
optionsArray of StringДаJSON-массив вариантов ответа.
is_anonymousBooleanНеобязательныйСкрывать, кто голосовал.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendDice→ Message

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

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
emojiStringНеобязательныйЭмодзи, на котором основана анимация кубика.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.
POST/bot<token>/sendChatAction→ True

Показывает статус «печатает…» или «загружает…».

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
actionStringДаПоказываемое действие: typing, upload_photo, record_video и т. д.
POST/bot<token>/sendSticker→ Message

Отправляет статический, анимированный или видеостикер.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
stickerStringДаfile_id стикера, который уже есть на сервере – возьмите его из getStickerSet или из входящего апдейта.
reply_to_message_idIntegerНеобязательныйОтправить стикер ответом на это сообщение.
reply_markupInlineKeyboardMarkupНеобязательныйИнлайн-клавиатура, прикреплённая к стикеру.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/sendSticker" \
  -d "chat_id=1000100&sticker=CAQAAAABHGv42k_AEABAvG9SmO6EnQAAAAEAAAAAAAAAAA"
JSONОтвет
{
  "ok": true,
  "result": {
    "message_id": 1022,
    "from": { "id": 523722417021, "is_bot": true, "first_name": "Jokebot", "username": "Jokeformebot" },
    "chat": { "id": 1000100, "type": "private" },
    "date": 1787863074,
    "sticker": {
      "file_id": "CAQAAAABHGv42k_AEABAvG9SmO6EnQAAAAEAAAAAAAAAAA",
      "file_unique_id": "Chxr-NpPwBAA",
      "type": "regular",
      "width": 512,
      "height": 512,
      "is_video": true,
      "emoji": "\uD83D\uDC4D",
      "file_size": 126387
    }
  }
}
POST/bot<token>/copyMessages→ Array of MessageId

Копирует несколько сообщений сразу, без ссылки на оригинал.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
from_chat_idInteger or StringДаЧат, из которого берётся сообщение.
message_idsArray of IntegerДаJSON-массив id сообщений.
remove_captionBooleanНеобязательныйКопировать без исходной подписи.
POST/bot<token>/forwardMessages→ Array of MessageId

Пересылает несколько сообщений сразу, сохраняя исходного автора.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
from_chat_idInteger or StringДаЧат, из которого берётся сообщение.
message_idsArray of IntegerДаJSON-массив id сообщений.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
protect_contentBooleanНеобязательныйЗапретить пересылку и сохранение отправленного сообщения.
reply_to_message_idIntegerНеобязательныйОтправить ответом на это сообщение.
message_thread_idIntegerНеобязательныйТема форума, к которой относится сообщение.

Изменение и удаление

Редактирование и удаление уже отправленных ботом сообщений. Правка по chat_id + message_id работает везде; правка инлайн-сообщения по inline_message_id пока не поддерживается.

POST/bot<token>/editMessageText→ Message or TrueЧастичная поддержка

Изменяет текст отправленного или inline-сообщения.

Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.

ПараметрТипОбязательныйОписание
textStringДаНовый текст сообщения.
chat_idInteger or StringНеобязательныйЦелевой чат. Обязателен, если не используется inline_message_id.
message_idIntegerНеобязательныйСообщение для правки. Обязательно, если не используется inline_message_id.
parse_modeStringНеобязательныйФорматирование: HTML, Markdown или MarkdownV2.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/editMessageText" \
  -d "chat_id=1000100&message_id=512&text=Updated&parse_mode=HTML"
JSONОтвет
{
  "ok": true,
  "result": {
    "message_id": 512,
    "chat": { "id": 1000100, "type": "private" },
    "date": 1787900000,
    "text": "Updated"
  }
}
POST/bot<token>/editMessageCaption→ Message or TrueЧастичная поддержка

Изменяет подпись медиасообщения.

Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
inline_message_idStringНеобязательныйИдентификатор инлайн-сообщения.
captionStringНеобязательныйПодпись, 0-1024 символа.
parse_modeStringНеобязательныйMarkdown, MarkdownV2 или HTML.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
POST/bot<token>/editMessageMedia→ Message or TrueЧастичная поддержка

Заменяет медиа в сообщении.

Работает по chat_id + message_id (медиа по file_id, URL или загрузка attach://; подпись из InputMedia заменяет подпись сообщения). Редактирование по inline_message_id пока не поддерживается.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
mediaArray of InputMediaДаJSON-массив, описывающий элементы альбома.
inline_message_idStringНеобязательныйИдентификатор инлайн-сообщения.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
POST/bot<token>/editMessageReplyMarkup→ Message or TrueЧастичная поддержка

Изменяет только inline-клавиатуру сообщения.

Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
inline_message_idStringНеобязательныйИдентификатор инлайн-сообщения.
reply_markupInlineKeyboardMarkupНеобязательныйJSON-клавиатура, прикреплённая к сообщению.
POST/bot<token>/editMessageLiveLocation→ Message or TrueЧастичная поддержка

Перемещает активную live-локацию.

Редактирование по inline_message_id пока не поддерживается – возвращает 501. Редактирование по chat_id + message_id работает.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
inline_message_idStringНеобязательныйИдентификатор инлайн-сообщения.
latitudeFloatНеобязательныйШирота точки.
longitudeFloatНеобязательныйДолгота точки.
live_periodIntegerНеобязательныйСколько секунд точка остаётся live.
headingIntegerНеобязательныйНаправление движения пользователя, 1-360 градусов.
proximity_alert_radiusIntegerНеобязательныйРасстояние в метрах для оповещений о приближении.
POST/bot<token>/deleteMessage→ True

Удаляет сообщение, отправленное ботом, или любое сообщение, где он администратор.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
message_idIntegerДаИдентификатор сообщения.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/deleteMessage" -d "chat_id=1000100&message_id=512"
JSONОтвет
{ "ok": true, "result": true }
POST/bot<token>/deleteMessages→ True

Удаляет несколько сообщений сразу.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idsArray of IntegerДаJSON-массив id сообщений.
POST/bot<token>/stopMessageLiveLocation→ Message or TrueЧастичная поддержка

Останавливает обновление активной live-локации до истечения срока.

Остановка по inline_message_id пока не поддерживается – возвращает 501. Остановка по chat_id + message_id работает.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
inline_message_idStringНеобязательныйИдентификатор инлайн-сообщения.
POST/bot<token>/setMessageReaction→ True

Ставит или снимает реакцию бота на сообщение.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
is_bigBooleanНеобязательныйПроиграть крупную анимацию реакции.
reactionArray of ReactionTypeНеобязательныйJSON-массив реакций; пустой массив снимает их.
POST/bot<token>/stopPoll→ PollЧастичная поддержка

Останавливает активный опрос, отправленный ботом.

Возвращает true вместо итогового объекта Poll.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.

Inline и колбэки

Ответы на инлайн-запросы и на нажатия инлайн-кнопок. Каждый ответ привязан к id запроса и истекает вместе с ним — отвечайте сразу.

POST/bot<token>/answerCallbackQuery→ True

Отвечает на нажатие inline-кнопки; при необходимости показывает уведомление.

ПараметрТипОбязательныйОписание
callback_query_idStringДаИдентификатор callback-запроса, на который отвечаем.
textStringНеобязательныйТекст уведомления, до 200 символов.
show_alertBooleanНеобязательныйПоказать модальное окно вместо всплывающего уведомления.
urlStringНеобязательныйURL, который откроет клиент.
cache_timeIntegerНеобязательныйСколько секунд клиент может кэшировать результат.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/answerCallbackQuery" \
  -d "callback_query_id=4382bfdwdsb323b2d9&text=Saved"
JSONОтвет
{ "ok": true, "result": 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.

ПараметрТипОбязательныйОписание
inline_query_idStringДаИдентификатор inline-запроса.
resultsArray of InlineQueryResultДаJSON-массив результатов. Поддерживаются: article, photo, gif, mpeg4_gif, document.
cache_timeIntegerНеобязательныйСколько секунд кэшировать результат, 1-300 (по умолчанию 300).
is_personalBooleanНеобязательныйКэшировать результаты для каждого пользователя отдельно.
next_offsetStringНеобязательныйСмещение для следующей страницы, до 64 байт.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/answerInlineQuery" \
  -d inline_query_id=1234567890 \
  -d 'results=[{"type":"article","id":"1","title":"Hello","input_message_content":{"message_text":"Hello!"}}]'
JSONОтвет
{ "ok": true, "result": true }

Чаты и участники

Просматривайте и управляйте чатами, участниками, пригласительными ссылками и правами администраторов.

GET/bot<token>/getChat→ ChatЧастичная поддержка

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

Возвращает полный ChatFullInfo. Объект pinned_message содержит id и чат закреплённого сообщения, но не его текст — при необходимости запросите его по id.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/getChat" -d chat_id=-1001234567890
JSONОтвет
{
  "ok": true,
  "result": {
    "id": -1001234567890,
    "type": "supergroup",
    "title": "Reyta devs",
    "username": "reytadevs",
    "description": "Server talk",
    "invite_link": "https://t.me/+abcdef",
    "member_count": 128,
    "permissions": { "can_send_messages": true, "can_send_photos": true, "can_pin_messages": false }
  }
}
GET/bot<token>/getChatAdministrators→ Array of ChatMember

Список администраторов чата.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
GET/bot<token>/getChatMember→ ChatMember

Информация об одном участнике чата.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
user_idIntegerДаИдентификатор целевого пользователя.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/getChatMember" -d "chat_id=-1001234567890&user_id=1000100"
JSONОтвет
{
  "ok": true,
  "result": {
    "status": "administrator",
    "user": { "id": 1000100, "is_bot": false, "first_name": "Johan" },
    "custom_title": "Founder"
  }
}
GET/bot<token>/getChatMemberCount→ Integer

Число участников в чате.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
GET/bot<token>/getUserProfilePhotos→ UserProfilePhotos

Фотографии профиля пользователя.

ПараметрТипОбязательныйОписание
user_idIntegerДаЦелевой пользователь.
offsetIntegerНеобязательныйПодтверждает все апдейты до этого id и начинает с него.
limitIntegerНеобязательныйСколько апдейтов вернуть, 1-100.
POST/bot<token>/setChatTitle→ True

Меняет название группы, супергруппы или канала.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
titleStringДаНазвание.
POST/bot<token>/setChatDescription→ True

Меняет описание группы, супергруппы или канала.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
descriptionStringНеобязательныйТекст описания.
POST/bot<token>/setChatPhoto→ True

Устанавливает новое фото чата. Бот должен быть администратором.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
photoInputFileДаФайл изображения, загружаемый как multipart-часть.
POST/bot<token>/deleteChatPhoto→ True

Удаляет фото чата.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
POST/bot<token>/pinChatMessage→ True

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

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerДаЦелевое сообщение.
disable_notificationBooleanНеобязательныйДоставить без звука уведомления.
POST/bot<token>/unpinChatMessage→ True

Открепляет закреплённое сообщение. Без message_id снимается последнее закрепление.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_idIntegerНеобязательныйЦелевое сообщение.
POST/bot<token>/unpinAllChatMessages→ True

Открепляет все закреплённые сообщения в чате.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
POST/bot<token>/leaveChat→ True

Бот покидает группу, супергруппу или канал.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.

Модерация

Бан, ограничения и назначение админов. Боту нужно соответствующее право администратора в чате.

POST/bot<token>/banChatMember→ True

Банит пользователя в группе, супергруппе или канале.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
user_idIntegerДаИдентификатор целевого пользователя.
revoke_messagesBooleanНеобязательныйУдалить все сообщения этого пользователя в чате.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/banChatMember" \
  -d "chat_id=-1001234567890&user_id=1000100&revoke_messages=true"
JSONОтвет
{ "ok": true, "result": true }
POST/bot<token>/banChatSenderChat→ True

Блокирует канал, который пишет в супергруппу от своего имени.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевая супергруппа: числовой id или @username.
sender_chat_idIntegerДаId канала или супергруппы, которая пишет в чат.
POST/bot<token>/unbanChatSenderChat→ True

Снимает блокировку канала в супергруппе.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевая супергруппа: числовой id или @username.
sender_chat_idIntegerДаId канала или супергруппы, которая пишет в чат.
POST/bot<token>/setChatStickerSet→ True

Устанавливает набор стикеров супергруппы.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевая супергруппа: числовой id или @username.
sticker_set_nameStringДаКороткое имя набора, как в getStickerSet.
POST/bot<token>/deleteChatStickerSet→ True

Убирает набор стикеров у супергруппы.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевая супергруппа: числовой id или @username.
POST/bot<token>/unpinAllGeneralForumTopicMessages→ True

Открепляет все сообщения в теме General форума.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевая супергруппа: числовой id или @username.
POST/bot<token>/unbanChatMember→ True

Снимает бан, чтобы пользователь мог вернуться по ссылке-приглашению.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
user_idIntegerДаЦелевой пользователь.
only_if_bannedBooleanНеобязательныйНичего не делать, если пользователь не заблокирован.
POST/bot<token>/restrictChatMember→ True

Ограничивает права участника супергруппы.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
user_idIntegerДаИдентификатор целевого пользователя.
permissionsChatPermissionsДаJSON-объект с тем, что участнику разрешено.
POST/bot<token>/promoteChatMember→ True

Повышает или понижает участника, задавая права администратора.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
user_idIntegerДаИдентификатор целевого пользователя.
can_manage_chatBooleanНеобязательныйВыдать соответствующее право администратора. Каждое право – отдельный булев параметр.
POST/bot<token>/setChatAdministratorCustomTitle→ True

Задаёт произвольное звание администратору, назначенному ботом.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
user_idIntegerДаЦелевой пользователь.
custom_titleStringДаТитул рядом с администратором, 0-16 символов.
POST/bot<token>/setChatPermissions→ True

Задаёт права по умолчанию для всех участников супергруппы.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
permissionsChatPermissionsДаJSON-объект с флагами can_*.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/setChatPermissions" \
  -d chat_id=-1001234567890 \
  -d 'permissions={"can_send_messages":true,"can_send_photos":false}'
JSONОтвет
{ "ok": true, "result": true }

Настройка бота

Собственный профиль бота: имя, описания, список команд и права администратора по умолчанию. Все они задаются по языкам — передайте language_code для локализованного значения или опустите его для значения по умолчанию.

GET/bot<token>/getMe→ User

Базовая информация о боте. Быстрый способ проверить токен.

POST/bot<token>/setMyCommands→ True

Задаёт список команд бота.

ПараметрТипОбязательныйОписание
commandsArray of BotCommandДаJSON-массив команд, от 0 до 100 элементов.
scopeBotCommandScopeНеобязательныйГде действуют команды. Сейчас учитывается только область default.
language_codeStringНеобязательныйДвухбуквенный код языка, для которого заданы команды.
ShellЗапрос
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"}'
JSONОтвет
{ "ok": true, "result": true }
GET/bot<token>/getMyCommands→ Array of BotCommand

Текущий список команд бота.

ПараметрТипОбязательныйОписание
scopeBotCommandScopeНеобязательныйJSON-scope: default, all_private_chats, all_group_chats, all_chat_administrators, chat, chat_administrators или chat_member.
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setMyName→ True

Задаёт имя бота.

ПараметрТипОбязательныйОписание
nameStringНеобязательныйИмя.
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getMyName→ BotName

Текущее имя бота.

ПараметрТипОбязательныйОписание
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setMyDescription→ True

Задаёт описание бота.

ПараметрТипОбязательныйОписание
descriptionStringНеобязательныйТекст описания.
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setChatMenuButton→ TrueЧастичная поддержка

Меняет кнопку меню бота в чате.

Тип кнопки web_app отклоняется с 400. Только для личных чатов.

ПараметрТипОбязательныйОписание
menu_buttonMenuButtonНеобязательныйJSON-кнопка меню: default или commands.
chat_idInteger or StringНеобязательныйЦелевой чат: числовой id или @username.
POST/bot<token>/logOut→ True

Выходит из облачного Bot API перед переносом бота на свой сервер.

POST/bot<token>/deleteMyCommands→ True

Удаляет список команд бота для указанной области и языка.

ПараметрТипОбязательныйОписание
scopeBotCommandScopeНеобязательныйJSON-scope: default, all_private_chats, all_group_chats, all_chat_administrators, chat, chat_administrators или chat_member.
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getMyDescription→ BotDescription

Возвращает описание бота, показываемое на пустом экране чата.

ПараметрТипОбязательныйОписание
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
POST/bot<token>/setMyShortDescription→ True

Задаёт краткое описание, показываемое в профиле бота.

ПараметрТипОбязательныйОписание
short_descriptionStringНеобязательныйКраткое описание в профиле бота.
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getMyShortDescription→ BotShortDescription

Возвращает краткое описание бота.

ПараметрТипОбязательныйОписание
language_codeStringНеобязательныйДвухбуквенный код языка; пусто — значение по умолчанию.
GET/bot<token>/getChatMenuButton→ MenuButtonЧастичная поддержка

Возвращает кнопку меню бота для чата или значение по умолчанию.

Возвращает только default или commands. Кнопка любого другого типа читается как default.

ПараметрТипОбязательныйОписание
chat_idInteger or StringНеобязательныйЦелевой чат: числовой id или @username.
POST/bot<token>/setMyDefaultAdministratorRights→ True

Задаёт права администратора, запрашиваемые при добавлении бота в чат.

ПараметрТипОбязательныйОписание
rightsChatAdministratorRightsНеобязательныйJSON-объект с правами администратора по умолчанию.
for_channelsBooleanНеобязательныйПрименить права к каналам, а не к группам.
GET/bot<token>/getMyDefaultAdministratorRights→ ChatAdministratorRights

Возвращает права администратора бота по умолчанию.

ПараметрТипОбязательныйОписание
for_channelsBooleanНеобязательныйПрименить права к каналам, а не к группам.
POST/bot<token>/setUserEmojiStatus→ True

Устанавливает эмодзи-статус пользователя с помощью доступного боту кастомного эмодзи.

ПараметрТипОбязательныйОписание
user_idIntegerДаЦелевой пользователь.
emoji_status_custom_emoji_idStringНеобязательныйКастомное эмодзи как статус пользователя.
emoji_status_expiration_dateIntegerНеобязательныйUnix-время, когда статус-эмодзи истекает.
POST/bot<token>/close→ TrueЧастичная поддержка

Закрывает экземпляр бота перед переносом между серверами.

Принимается и отвечает true, но ничего не делает – в Reyta нет модели локального сервера.

Файлы и стикеры

Скачивание доступных боту файлов и создание наборов стикеров. Набор, созданный через API, принадлежит создавшему его боту.

GET/bot<token>/getFile→ File

Готовит файл к загрузке и возвращает File с его путём.

ПараметрТипОбязательныйОписание
file_idStringДаИдентификатор файла. В ответе придёт file_path для скачивания через /file/bot<token>/<file_path>.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/getFile" -d file_id=CAQAAAABHQwcfJJAEAAQgUZMXHglLAAAAAEAAAAAAAAAAA
JSONОтвет
{
  "ok": true,
  "result": {
    "file_id": "CAQAAAABHQwcfJJAEAAQgUZMXHglLAAAAAEAAAAAAAAAAA",
    "file_unique_id": "Ch0MHHySQBAA",
    "file_size": 888,
    "file_path": "sticker/CAQAAAABHQwcfJJAEAAQgUZMXHglLAAAAAEAAAAAAAAAAA"
  }
}
GET/bot<token>/getStickerSet→ StickerSet

Набор стикеров по имени.

ПараметрТипОбязательныйОписание
nameStringДаИмя.
GET/bot<token>/getCustomEmojiStickers→ Array of Sticker

Информация о кастомных эмодзи-стикерах по id.

ПараметрТипОбязательныйОписание
custom_emoji_idsArray of StringДаJSON-массив id кастомных эмодзи.
POST/bot<token>/createNewStickerSet→ TrueЧастичная поддержка

Создаёт новый набор стикеров, принадлежащий пользователю.

Владельцем набора становится создавший его бот, а не user_id — Reyta проставляет владельца по вызывающему API. Параметр needs_repainting принимается, но не сохраняется.

ПараметрТипОбязательныйОписание
user_idIntegerДаИдентифицирует запрашивающего. Владельцем набора становится вызывающий бот.
nameStringДаКороткое имя набора, 5-64 символа: сначала буква, далее буквы, цифры и подчёркивания.
titleStringДаНазвание набора, 1-64 символа.
stickersArray of InputStickerДаJSON-массив, не более 50 элементов. В каждом нужны sticker (file_id из uploadStickerFile либо attach://&lt;поле&gt;, указывающее на часть этого запроса), format и emoji_list; keywords и mask_position необязательны.
sticker_typeStringНеобязательныйregular (по умолчанию), mask или custom_emoji.
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/createNewStickerSet" \
  -F user_id=1000100 -F name=mypack_by_yourbot -F title="My pack" \
  -F 'stickers=[{"sticker":"attach://s1","format":"static","emoji_list":["🔥"]}]' \
  -F s1=@cat.webp
JSONОтвет
{ "ok": true, "result": true }
POST/bot<token>/deleteStickerFromSet→ True

Удаляет стикер из набора.

ПараметрТипОбязательныйОписание
stickerStringДаfile_id стикера.
POST/bot<token>/deleteStickerSet→ True

Удаляет набор стикеров, созданный ботом.

ПараметрТипОбязательныйОписание
nameStringДаИмя.
POST/bot<token>/setStickerSetTitle→ True

Переименовывает набор стикеров, созданный ботом.

ПараметрТипОбязательныйОписание
nameStringДаИмя.
titleStringДаНазвание.
POST/bot<token>/setStickerPositionInSet→ True

Перемещает стикер на другую позицию в наборе.

ПараметрТипОбязательныйОписание
stickerStringДаfile_id стикера.
positionIntegerДаПозиция в наборе, начиная с нуля.
POST/bot<token>/setStickerEmojiList→ True

Заменяет эмодзи, связанные со стикером.

ПараметрТипОбязательныйОписание
stickerStringДаfile_id стикера.
emoji_listArray of StringДаJSON-массив из 1-20 эмодзи.
POST/bot<token>/setStickerKeywords→ True

Заменяет поисковые ключевые слова стикера.

ПараметрТипОбязательныйОписание
stickerStringДаfile_id стикера.
keywordsArray of StringНеобязательныйJSON-массив ключевых слов для поиска.
POST/bot<token>/setStickerMaskPosition→ True

Меняет положение маски-стикера на лице.

ПараметрТипОбязательныйОписание
stickerStringДаfile_id стикера.
mask_positionMaskPositionНеобязательныйJSON-объект: point (forehead, eyes, mouth, chin), x_shift, y_shift, scale.
POST/bot<token>/uploadStickerFile→ FileЧастичная поддержка

Загружает файл стикера для последующего использования в наборе.

Файл проверяется до сохранения: формат, размеры (одна сторона 512px), частота кадров и длительность TGS, кодек WebM. Отклонённый файл получает 400 с названием нарушенного правила.

ПараметрТипОбязательныйОписание
user_idIntegerДаПользователь, для которого выполняется загрузка. В Reyta владельцем набора всегда является вызывающий бот, поэтому поле только идентифицирует запрашивающего.
stickerInputFileДаФайл стикера, загружаемый как multipart/form-data.
sticker_formatStringДаОдно из: static (.webp), animated (.tgs) или video (.webm).
ShellЗапрос
curl "https://api.reyta.uz/bot<token>/uploadStickerFile" \
  -F user_id=1000100 -F sticker_format=static -F sticker=@cat.webp
JSONОтвет
{
  "ok": true,
  "result": {
    "file_id": "CAQAAAABHQwcfJJAEAAQgUZMXHglLAAAAAEAAAAAAAAAAA",
    "file_unique_id": "Ch0MHHySQBAA",
    "file_size": 888
  }
}
POST/bot<token>/addStickerToSet→ TrueЧастичная поддержка

Добавляет новый стикер в набор, созданный ботом.

Стикер, уже входящий в набор, отклоняется с 400, а не дублируется. Добавлять может только бот-владелец набора.

ПараметрТипОбязательныйОписание
user_idIntegerДаИдентифицирует запрашивающего.
nameStringДаКороткое имя набора.
stickerInputStickerДаJSON-объект с полями sticker (file_id или attach://&lt;поле&gt;), format и emoji_list.
POST/bot<token>/replaceStickerInSet→ TrueЧастичная поддержка

Заменяет существующий стикер в наборе.

Замена добавляется до удаления старого стикера, поэтому отклонённая замена оставляет набор нетронутым.

ПараметрТипОбязательныйОписание
user_idIntegerДаИдентифицирует запрашивающего.
nameStringДаКороткое имя набора.
old_stickerStringДаfile_id заменяемого стикера.
stickerInputStickerДаЗамена, той же формы, что и в addStickerToSet.
POST/bot<token>/setStickerSetThumbnail→ TrueЧастичная поддержка

Задаёт обложку набора стикеров.

Обложкой может быть только стикер из этого же набора; загрузка отдельного изображения возвращает 400.

ПараметрТипОбязательныйОписание
nameStringДаКороткое имя набора.
user_idIntegerДаИдентифицирует запрашивающего.
thumbnailStringНеобязательныйfile_id стикера, уже входящего в набор. Не передавайте, чтобы очистить обложку — тогда клиенты возьмут первый стикер.
POST/bot<token>/setCustomEmojiStickerSetThumbnail→ True

Задаёт обложку набора кастомных эмодзи.

ПараметрТипОбязательныйОписание
nameStringДаКороткое имя набора кастомных эмодзи.
custom_emoji_idStringНеобязательныйИдентификатор кастомного эмодзи из набора. Принимаются и десятичный id документа, и file_unique_id из getStickerSet. Не передавайте, чтобы очистить.

Темы форума

Управление темами в форум-супергруппе. Каждому методу нужна супергруппа с включённым режимом форума — канал или обычная группа отклоняются.

POST/bot<token>/createForumTopic→ ForumTopic

Создаёт тему в форуме-супергруппе.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаИдентификатор целевого чата или @channelusername.
nameStringДаНазвание темы, до 128 символов.
icon_colorIntegerНеобязательныйЦвет иконки в виде RGB-числа.
icon_custom_emoji_idStringНеобязательныйКастомный эмодзи в качестве иконки темы.
POST/bot<token>/editForumTopic→ True

Изменяет имя/значок темы форума.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_thread_idIntegerДаТема форума, к которой относится сообщение.
nameStringНеобязательныйИмя.
icon_custom_emoji_idStringНеобязательныйКастомное эмодзи в качестве иконки темы.
POST/bot<token>/deleteForumTopic→ True

Удаляет тему форума вместе с её сообщениями.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_thread_idIntegerДаТема форума, к которой относится сообщение.
POST/bot<token>/closeForumTopic→ True

Закрывает тему форума – новые сообщения отправить нельзя.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_thread_idIntegerДаТема форума, к которой относится сообщение.
POST/bot<token>/reopenForumTopic→ True

Снова открывает закрытую тему форума.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_thread_idIntegerДаТема форума, к которой относится сообщение.
POST/bot<token>/unpinAllForumTopicMessages→ True

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

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
message_thread_idIntegerДаТема форума, к которой относится сообщение.
POST/bot<token>/editGeneralForumTopic→ True

Переименовывает тему General в форуме.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
nameStringДаИмя.
POST/bot<token>/closeGeneralForumTopic→ True

Закрывает тему General в форуме.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
POST/bot<token>/reopenGeneralForumTopic→ True

Снова открывает тему General в форуме.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
POST/bot<token>/hideGeneralForumTopic→ True

Скрывает тему General из списка тем форума.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
POST/bot<token>/unhideGeneralForumTopic→ True

Снова показывает тему General.

ПараметрТипОбязательныйОписание
chat_idInteger or StringДаЦелевой чат: числовой id или @username.
GET/bot<token>/getForumTopicIconStickers→ Array of StickerЧастичная поддержка

Возвращает стикеры, доступные как иконки тем форума.

В Reyta нет курируемого набора иконок тем. Оператор может указать серверу набор кастомных эмодзи; до этого метод возвращает пустой массив, и клиенты не показывают выбор иконок.