{"name":"Telegram Bot API","vendor":"Telegram","industry":"communications","summary":"HTTP-интерфейс для ботов Telegram: получение обновлений (long polling или вебхук), отправка и редактирование сообщений, фото и документов, ответы на нажатия inline-кнопок, работа с файлами. Каждый метод вызывается отдельным URL с токеном бота. Актуальная версия — Bot API 10.3 (24 августа 2026).","docsUrl":"https://core.telegram.org/bots/api","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"otpravlyat-uvedomleniya-v-chat-ili-kanal","title":"Отправлять уведомления в чат или канал","summary":"Самый частый случай: сайт или сервис пишет в Telegram о новых заказах, ошибках, заявках.","steps":["Создай бота у @BotFather и получи токен. Проверь его: POST /bot{token}/getMe вернёт данные бота.","Узнай chat_id: напиши боту любое сообщение (или добавь бота в группу) и вызови POST /bot{token}/getUpdates — chat_id будет в message.chat.id. Для публичного канала можно передавать @username канала, бот должен быть в нём администратором.","Отправь сообщение: POST /bot{token}/sendMessage с chat_id и text (до 4096 символов). Для жирного текста и ссылок передай parse_mode = HTML.","Храни chat_id в 64-битном целом: идентификаторы групп и каналов не помещаются в 32 бита. Если пришла ошибка с retry_after — подожди столько секунд и повтори."],"code":"TOKEN='123456:ABC-DEF...'\n\ncurl -X POST \"https://api.telegram.org/bot$TOKEN/sendMessage\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"chat_id\": -1001234567890,\n        \"text\": \"<b>Новый заказ №1042</b>\\nСумма: 15 000 ₽\\n<a href=\\\"https://example.ru/admin/orders/1042\\\">Открыть</a>\",\n        \"parse_mode\": \"HTML\",\n        \"link_preview_options\": {\"is_disabled\": true}\n      }'","language":"bash","methods":["POST /bot{token}/getMe","POST /bot{token}/getUpdates","POST /bot{token}/sendMessage"]},{"id":"prinimat-soobscheniya-cherez-vebhuk","title":"Принимать сообщения через вебхук","summary":"Бот на сервере с HTTPS: Telegram сам присылает каждое сообщение пользователю на твой адрес.","steps":["Установи вебхук: POST /bot{token}/setWebhook с url (HTTPS, порты 443, 80, 88 или 8443) и secret_token — случайной строкой.","Telegram присылает на url POST-запрос с объектом Update и заголовком X-Telegram-Bot-Api-Secret-Token. Сверяй заголовок с secret_token, чтобы отбрасывать чужие запросы.","Отвечай 200 сразу: при другом коде Telegram повторяет запрос. Ответ пользователю отправляй отдельным вызовом POST /bot{token}/sendMessage с chat_id из update.message.chat.id.","Пока вебхук установлен, getUpdates не работает. Чтобы вернуться к long polling, вызови setWebhook с пустым url."],"code":"curl -X POST \"https://api.telegram.org/bot$TOKEN/setWebhook\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"url\": \"https://example.ru/tg/webhook\",\n        \"secret_token\": \"s3cr3t_Random_42\",\n        \"allowed_updates\": [\"message\", \"callback_query\"],\n        \"drop_pending_updates\": true\n      }'","language":"bash","methods":["POST /bot{token}/setWebhook","POST /bot{token}/sendMessage"]},{"id":"bot-bez-svoego-servera-s-https-long","title":"Бот без своего сервера с HTTPS: long polling","summary":"Для бота на домашнем компьютере, в локальной сети или в скрипте — без публичного адреса и сертификата.","steps":["Убедись, что вебхук не установлен (иначе getUpdates вернёт ошибку).","В цикле вызывай POST /bot{token}/getUpdates с timeout = 30 (длинный опрос: запрос ждёт новых событий до 30 секунд) и offset.","После каждого ответа ставь offset = update_id последнего полученного обновления + 1 — так Telegram поймёт, что предыдущие обработаны, и не пришлёт их снова.","На каждое сообщение отвечай через POST /bot{token}/sendMessage."],"code":"import requests\n\nAPI = \"https://api.telegram.org/bot<токен>\"\noffset = 0\nwhile True:\n    r = requests.post(f\"{API}/getUpdates\", json={\"offset\": offset, \"timeout\": 30, \"allowed_updates\": [\"message\"]}, timeout=40).json()\n    for upd in r.get(\"result\", []):\n        offset = upd[\"update_id\"] + 1\n        msg = upd.get(\"message\")\n        if msg and \"text\" in msg:\n            requests.post(f\"{API}/sendMessage\", json={\"chat_id\": msg[\"chat\"][\"id\"], \"text\": f\"Вы написали: {msg['text']}\"})","language":"python","methods":["POST /bot{token}/getUpdates","POST /bot{token}/sendMessage"]},{"id":"knopki-pod-soobscheniem-i-obrabotka","title":"Кнопки под сообщением и обработка нажатий","summary":"Inline-кнопки: «Подтвердить заказ», «Отменить», выбор варианта — без ввода текста.","steps":["Отправь сообщение с кнопками: POST /bot{token}/sendMessage с reply_markup = inline_keyboard. У каждой кнопки — text и callback_data (до 64 байт): по ней ты поймёшь, что нажали.","Нажатие приходит как update с callback_query: в нём id, data (твоя callback_data) и message, к которому была кнопка.","Обязательно ответь на нажатие: POST /bot{token}/answerCallbackQuery с callback_query_id — иначе у пользователя будет крутиться индикатор загрузки. В text можно показать короткое уведомление.","Обнови исходное сообщение: POST /bot{token}/editMessageText с chat_id, message_id и новым текстом (и новыми кнопками или без них)."],"code":"# Сообщение с кнопками\ncurl -X POST \"https://api.telegram.org/bot$TOKEN/sendMessage\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"chat_id\": 123456789,\n        \"text\": \"Заказ №1042 на 15 000 ₽. Подтвердить?\",\n        \"reply_markup\": {\"inline_keyboard\": [[\n          {\"text\": \"✅ Подтвердить\", \"callback_data\": \"order:1042:ok\"},\n          {\"text\": \"❌ Отменить\", \"callback_data\": \"order:1042:cancel\"}\n        ]]}\n      }'\n\n# После нажатия: убрать «часики» и поменять текст\ncurl -X POST \"https://api.telegram.org/bot$TOKEN/answerCallbackQuery\" \\\n  -H 'Content-Type: application/json' -d '{\"callback_query_id\": \"<id>\", \"text\": \"Заказ подтверждён\"}'\ncurl -X POST \"https://api.telegram.org/bot$TOKEN/editMessageText\" \\\n  -H 'Content-Type: application/json' -d '{\"chat_id\": 123456789, \"message_id\": 512, \"text\": \"Заказ №1042 подтверждён ✅\"}'","language":"bash","methods":["POST /bot{token}/sendMessage","POST /bot{token}/answerCallbackQuery","POST /bot{token}/editMessageText"]},{"id":"otpravit-fayl-i-skachat-fayl","title":"Отправить файл и скачать файл от пользователя","summary":"Прислать счёт или отчёт документом, принять от пользователя фото или файл.","steps":["Отправь файл с диска: POST /bot{token}/sendDocument в формате multipart/form-data с chat_id и document. Бот может отправлять файлы до 50 МБ. Фото — POST /bot{token}/sendPhoto: можно передать HTTP-ссылку вместо загрузки.","Telegram вернёт file_id: повторно отправляй тот же файл по нему, без загрузки.","Чтобы скачать файл от пользователя, возьми file_id из сообщения (document.file_id или последний элемент photo) и вызови POST /bot{token}/getFile.","Скачай файл по адресу https://api.telegram.org/file/bot<токен>/<file_path> из ответа. Ссылка живёт не меньше часа, через облачный Bot API скачиваются файлы до 20 МБ."],"code":"# Отправить PDF\ncurl -X POST \"https://api.telegram.org/bot$TOKEN/sendDocument\" \\\n  -F chat_id=123456789 \\\n  -F document=@invoice-1042.pdf \\\n  -F caption='Счёт по заказу №1042'\n\n# Получить путь к файлу пользователя и скачать\nFILE_PATH=$(curl -s -X POST \"https://api.telegram.org/bot$TOKEN/getFile\" -d file_id='<file_id>' | jq -r .result.file_path)\ncurl -o file.bin \"https://api.telegram.org/file/bot$TOKEN/$FILE_PATH\"","language":"bash","methods":["POST /bot{token}/sendPhoto","POST /bot{token}/sendDocument","POST /bot{token}/getFile"]}],"baseUrls":[{"label":"Боевой","url":"https://api.telegram.org"},{"label":"URL метода","url":"https://api.telegram.org/bot<token>/METHOD_NAME"}],"auth":{"type":"api_key","description":"Токен бота (выдаёт @BotFather) передаётся в пути запроса после `bot`.","example":"https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe"},"methods":[{"id":"POST /bot{token}/getMe","title":"Проверка токена","httpMethod":"POST","path":"/bot{token}/getMe","description":"Параметров нет. Возвращает объект User с информацией о боте.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/getUpdates","title":"Получение обновлений (long polling)","httpMethod":"POST","path":"/bot{token}/getUpdates","description":"Возвращает массив объектов Update. Не работает, пока установлен вебхук.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"offset","in":"body","type":"integer","required":false,"description":"ID первого обновления; на 1 больше последнего полученного — подтверждает предыдущие"},{"name":"limit","in":"body","type":"integer","required":false,"description":"Число обновлений, 1–100, по умолчанию 100"},{"name":"timeout","in":"body","type":"integer","required":false,"description":"Таймаут long polling в секундах, по умолчанию 0"},{"name":"allowed_updates","in":"body","type":"array","required":false,"description":"Типы обновлений, например [\"message\", \"edited_channel_post\", \"callback_query\"]"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/setWebhook","title":"Установка вебхука","httpMethod":"POST","path":"/bot{token}/setWebhook","description":"Telegram отправляет на URL HTTPS POST с JSON-объектом Update; при ответе не 2XX повторяет запрос.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"url","in":"body","type":"string","required":true,"description":"HTTPS URL для обновлений; пустая строка удаляет вебхук"},{"name":"certificate","in":"body","type":"file","required":false,"description":"Публичный ключ для самоподписанного сертификата"},{"name":"ip_address","in":"body","type":"string","required":false,"description":"Фиксированный IP для отправки вебхуков"},{"name":"max_connections","in":"body","type":"integer","required":false,"description":"Одновременных соединений, 1–100, по умолчанию 40"},{"name":"allowed_updates","in":"body","type":"array","required":false,"description":"Типы обновлений"},{"name":"drop_pending_updates","in":"body","type":"boolean","required":false,"description":"Сбросить накопленные обновления"},{"name":"secret_token","in":"body","type":"string","required":false,"description":"1–256 символов A-Z, a-z, 0-9, _, -; приходит в заголовке X-Telegram-Bot-Api-Secret-Token"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/sendMessage","title":"Отправка текстового сообщения","httpMethod":"POST","path":"/bot{token}/sendMessage","description":"Возвращает отправленный Message.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"chat_id","in":"body","type":"integer/string","required":true,"description":"ID чата или @username канала/супергруппы"},{"name":"text","in":"body","type":"string","required":true,"description":"Текст, 1–4096 символов после разбора сущностей"},{"name":"parse_mode","in":"body","type":"string","required":false,"description":"Режим форматирования (Markdown-стиль или HTML)"},{"name":"entities","in":"body","type":"array","required":false,"description":"Сущности текста вместо parse_mode"},{"name":"message_thread_id","in":"body","type":"integer","required":false,"description":"ID темы форума"},{"name":"link_preview_options","in":"body","type":"object","required":false,"description":"Настройки превью ссылок"},{"name":"disable_notification","in":"body","type":"boolean","required":false,"description":"Отправить без звука"},{"name":"protect_content","in":"body","type":"boolean","required":false,"description":"Запретить пересылку и сохранение"},{"name":"reply_parameters","in":"body","type":"object","required":false,"description":"Сообщение, на которое отвечаем"},{"name":"reply_markup","in":"body","type":"object","required":false,"description":"Inline-клавиатура, обычная клавиатура, её удаление или ForceReply"},{"name":"business_connection_id","in":"body","type":"string","required":false,"description":"Бизнес-подключение, от имени которого отправляем"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/sendPhoto","title":"Отправка фото","httpMethod":"POST","path":"/bot{token}/sendPhoto","description":"","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"chat_id","in":"body","type":"integer/string","required":true,"description":"ID чата или @username"},{"name":"photo","in":"body","type":"file/string","required":true,"description":"file_id, HTTP URL или загрузка через multipart/form-data"},{"name":"caption","in":"body","type":"string","required":false,"description":"Подпись, 0–1024 символа"},{"name":"parse_mode","in":"body","type":"string","required":false,"description":"Режим форматирования подписи"},{"name":"has_spoiler","in":"body","type":"boolean","required":false,"description":"Скрыть фото под спойлером"},{"name":"show_caption_above_media","in":"body","type":"boolean","required":false,"description":"Подпись над медиа"},{"name":"reply_markup","in":"body","type":"object","required":false,"description":"Клавиатура"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/sendDocument","title":"Отправка файла","httpMethod":"POST","path":"/bot{token}/sendDocument","description":"Боты могут отправлять файлы любого типа до 50 МБ.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"chat_id","in":"body","type":"integer/string","required":true,"description":"ID чата или @username"},{"name":"document","in":"body","type":"file/string","required":true,"description":"file_id, HTTP URL или загрузка через multipart/form-data"},{"name":"thumbnail","in":"body","type":"file/string","required":false,"description":"Превью в JPEG до 200 кБ"},{"name":"caption","in":"body","type":"string","required":false,"description":"Подпись, 0–1024 символа"},{"name":"parse_mode","in":"body","type":"string","required":false,"description":"Режим форматирования подписи"},{"name":"disable_content_type_detection","in":"body","type":"boolean","required":false,"description":"Отключить определение типа файла на сервере"},{"name":"reply_markup","in":"body","type":"object","required":false,"description":"Клавиатура"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/answerCallbackQuery","title":"Ответ на нажатие inline-кнопки","httpMethod":"POST","path":"/bot{token}/answerCallbackQuery","description":"Показывает уведомление или алерт; возвращает `True`.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"callback_query_id","in":"body","type":"string","required":true,"description":"ID callback-запроса"},{"name":"text","in":"body","type":"string","required":false,"description":"Текст уведомления, 0–200 символов"},{"name":"show_alert","in":"body","type":"boolean","required":false,"description":"Показать алерт вместо уведомления, по умолчанию false"},{"name":"url","in":"body","type":"string","required":false,"description":"URL для открытия (игра или t.me/your_bot?start=XXXX)"},{"name":"cache_time","in":"body","type":"integer","required":false,"description":"Время кэширования ответа на клиенте, секунд; по умолчанию 0"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/editMessageText","title":"Редактирование текста сообщения","httpMethod":"POST","path":"/bot{token}/editMessageText","description":"Возвращает отредактированный Message или `True` для inline-сообщений.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"chat_id","in":"body","type":"integer/string","required":false,"description":"Обязателен, если нет inline_message_id"},{"name":"message_id","in":"body","type":"integer","required":false,"description":"Обязателен, если нет inline_message_id"},{"name":"inline_message_id","in":"body","type":"string","required":false,"description":"Обязателен, если нет chat_id и message_id"},{"name":"text","in":"body","type":"string","required":false,"description":"Новый текст, 1–4096 символов; обязателен, если нет rich_message"},{"name":"parse_mode","in":"body","type":"string","required":false,"description":"Режим форматирования"},{"name":"link_preview_options","in":"body","type":"object","required":false,"description":"Настройки превью ссылок"},{"name":"reply_markup","in":"body","type":"object","required":false,"description":"Inline-клавиатура"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/getFile","title":"Информация о файле для скачивания","httpMethod":"POST","path":"/bot{token}/getFile","description":"Возвращает объект File; ссылка `https://api.telegram.org/file/bot<token>/<file_path>` действует не меньше часа. Боты могут скачивать файлы до 20 МБ.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"file_id","in":"body","type":"string","required":true,"description":"Идентификатор файла"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /bot{token}/deleteMessage","title":"Удаление сообщения","httpMethod":"POST","path":"/bot{token}/deleteMessage","description":"Сообщение можно удалить, если оно отправлено меньше 48 часов назад; служебные сообщения о создании супергруппы, канала или темы удалить нельзя.","params":[{"name":"token","in":"path","type":"string","required":true,"description":"Токен бота"},{"name":"chat_id","in":"body","type":"integer/string","required":true,"description":"ID чата или @username"},{"name":"message_id","in":"body","type":"integer","required":true,"description":"ID сообщения"}],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"retry_after","description":"Превышен flood control — сколько секунд ждать до повтора"},{"code":"migrate_to_chat_id","description":"Группа преобразована в супергруппу с указанным ID"}],"limits":"- Отправка файлов ботом — до 50 МБ; скачивание через `getFile` — до 20 МБ.\n- Локальный Bot API Server: скачивание без ограничения размера, загрузка до 2000 МБ.\n- Текст сообщения — до 4096 символов, подпись к медиа — до 1024.","gotchas":["Поддерживаются GET и POST; параметры — строкой запроса, `application/x-www-form-urlencoded`, `application/json` (кроме загрузки файлов) или `multipart/form-data` (для файлов).","Имена методов нечувствительны к регистру; все запросы — в UTF-8 и только по HTTPS.","Ответ — JSON с полем `ok`; при успехе результат в `result`, при ошибке — `description` и `error_code`.","`getUpdates` и вебхук взаимоисключающие: пока вебхук установлен, `getUpdates` не работает. Порты вебхука: 443, 80, 88, 8443.","Чтобы не получать дубли при long polling, пересчитывайте `offset` после каждого ответа.","ID чатов могут превышать 32 бита (до 52 значимых бит) — храните их в 64-битных целых.","`allow_paid_broadcast` снимает лимиты рассылки до 1000 сообщений в секунду за 0,1 Telegram Stars за сообщение."],"slug":"telegram-bot-api","version":2,"updatedAt":"2026-10-24T17:05:37.728Z","sources":[{"title":"Telegram Bot API","url":"https://core.telegram.org/bots/api","kind":"research","addedAt":"2026-10-14T18:41:40.165Z"},{"title":"Making requests","url":"https://core.telegram.org/bots/api#making-requests","kind":"research","addedAt":"2026-10-14T18:41:40.165Z"},{"title":"Getting updates","url":"https://core.telegram.org/bots/api#getting-updates","kind":"research","addedAt":"2026-10-14T18:41:40.165Z"},{"title":"ResponseParameters","url":"https://core.telegram.org/bots/api#responseparameters","kind":"research","addedAt":"2026-10-14T18:41:40.165Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-14T18:41:40.165Z"},{"title":"scenarios-telegram-bot-api.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:27.674Z"}],"logoUrl":null}