Как узнать ID чата, группы или канала в Telegram
Свой ID покажет @userinfobot по команде /start, ID канала — он же, если переслать ему пост, а ID группы — @GetIDsBot после добавления в группу. У пользователей ID положительный, у супергрупп и каналов начинается с -100. ID чата не секрет, в отличие от токена бота.
Свой ID в Telegram покажет User Info Bot (@userinfobot): отправьте ему /start. Перешлите тому же боту пост из канала — получите ID канала, а ID группы сообщит GetIDs Bot (@GetIDsBot), если добавить его в группу. Если у вас есть свой бот и токен, напишите боту, откройте в браузере адрес getUpdates и найдите chat.id. ID пользователя — положительное число, у супергрупп и каналов он начинается с -100. ID чата не секрет, секрет — токен бота.
Какой ID нужен сервису
n8n, скрипт мониторинга и ваш собственный бот отправляют сообщения через Telegram Bot API, и метод sendMessage требует chat_id: номер чата или @username публичного канала, супергруппы либо бота. По виду числа понятно, на какой чат оно указывает. Диапазоны описаны в документации Telegram об идентификаторах чатов в Bot API:
| Чат | Как выглядит chat_id | Пример |
|---|---|---|
| Человек (его личный чат с ботом) | Положительное число, равно ID пользователя | 123456789 |
| Обычная группа | Отрицательное число без -100 | -987654321 |
| Супергруппа | -100 и собственный номер группы | -1001234567890 |
| Канал | -100 и собственный номер канала | -1001987654321 |
| Тема в группе с темами | ID группы и отдельно message_thread_id |
-1001234567890 и 42 |
| Публичный канал или супергруппа | Число или @username | @channelname |
Где чаще всего ошибаются:
- Число длинное. Telegram предупреждает, что ID может не поместиться в 32 бита и некоторые языки программирования молча его искажают. Надёжно хранить его как 64-битное целое, double или строку.
- У личного чата — ID человека. Когда сервис пишет вам через бота,
chat_id— это просто ваш ID пользователя. - ID группы может смениться. Когда обычную группу преобразуют в супергруппу, у неё появляется новый ID с -100, и сообщения на старый перестают доходить.
Приставка -100 — не украшение. Внутренний номер канала Telegram переводит в формат Bot API так: прибавляет 1 000 000 000 000 и делает число отрицательным. Поэтому номер, скопированный откуда-то без приставки, в таком виде не сработает.
Как узнать свой ID в Telegram
Свой ID нужен, когда сервис должен писать вам в личку: оповещение с сервера, новый заказ, упавший бэкап.
- Откройте User Info Bot (@userinfobot) и нажмите «Старт».
- Бот ответит данными аккаунта. Скопируйте число из строки с ID.
- Откройте бота, через которого будет писать сервис, и нажмите «Старт» и в нём.
Третий шаг в инструкциях обычно пропускают. Боты не могут первыми начать переписку: человек должен написать боту сам, и пока вы этого не сделали, сервис до вас не достучится даже с верным ID.
GetIDs Bot (@GetIDsBot) отвечает на /start тем же. Оба бота бесплатные и без рекламы.
Чужой ID — например, коллеги, которого нужно добавить в белый список бота, — узнаётся так же: перешлите его сообщение в User Info Bot, и бот покажет ID отправителя. Если человек выбрал «Никто» в разделе «Настройки» → «Конфиденциальность» → «Пересылка сообщений», в пересланном сообщении останется только имя, и аккаунт не увидит ни один бот. Тогда попросите коллегу самого нажать «Старт» в User Info Bot и прислать вам число.
Как узнать ID группы в Telegram
Через бота
- Добавьте GetIDs Bot (@GetIDsBot) в группу как обычного участника. Если делаете это впервые, вот как добавить бота в группу.
- После добавления бот сообщит ID группы. Копируйте его вместе с минусом.
- Удалите бота из группы, если других задач у него там нет.
Telegram Bot Raw (@RawDataBot) советует документация n8n: пригласите его в группу, и он ответит сырым JSON обновления, где id внутри chat и есть ID группы.
В веб-версии Telegram
- Откройте версию WebA по адресу web.telegram.org/a/ и войдите в аккаунт.
- Откройте группу.
- Посмотрите на адресную строку: всё после
#и есть ID чата, напримерweb.telegram.org/a/#-1001234567890.
WebA строит адрес из тех же ID, что и Bot API, поэтому минус и -100 уже на месте. Если инструкция велит взять цифры после буквы «g» и дописать минус, она описывает старый веб-интерфейс. В группе с темами адрес открытой темы заканчивается подчёркиванием и номером темы: #-1001234567890_42.
В Telegram Desktop
Telegram Desktop для Windows, macOS и Linux (не путать с отдельным приложением Telegram для macOS) умеет показывать ID в профиле:
- Откройте «Настройки» → «Продвинутые настройки» → «Экспериментальные настройки».
- Включите Show Peer IDs in Profile. Этот пункт написан по-английски при любом языке интерфейса.
- Откройте профиль группы. Под описанием появятся
id:и число; нажмите на число, чтобы скопировать его.
Desktop показывает внутренний номер Telegram без знака и приставки Bot API: для супергруппы или канала допишите впереди -100, для обычной группы — минус. Если непонятно, какая у вас группа, возьмите ID в WebA или у бота, там он уже готов к использованию. Сам Telegram предупреждает, что экспериментальные настройки могут сломаться или пропасть в следующей версии.
Как узнать ID канала в Telegram
Публичному каналу номер часто не нужен: Bot API принимает его @username как chat_id. У закрытого канала username нет, поэтому понадобится ID:
- Откройте канал и выберите «Переслать» у любого поста.
- Отправьте пост в User Info Bot (@userinfobot) или GetIDs Bot (@GetIDsBot).
- В ответе будет ID канала.
JsonBOT (@JsonBot) в ответ на пересланное сообщение показывает сырые данные Telegram целиком, вместе с идентификаторами. Это удобно, если нужна вся структура.
Если в канале включён переключатель «Запретить копирование», посты не пересылаются. Остаются два способа:
- Ссылка на пост. Нажмите «Копировать ссылку» у поста (в Telegram Desktop — «Копировать ссылку на сообщение»). Ссылка закрытого канала выглядит как
t.me/c/1987654321/15: первое число означает канал, второе — пост. Допишите перед номером канала -100, получится-1001987654321. У закрытых супергрупп ссылки устроены так же. - WebA. Откройте канал на web.telegram.org/a/ и посмотрите на адресную строку, как с группой.
Узнать ID — половина дела. Бот, который будет публиковать, тоже должен состоять в канале, а в каналы Telegram добавляет ботов только администраторами.
Как получить ID чата через своего бота
Если токен уже есть (если нет — вот как создать бота и получить токен), Telegram сам сообщит ID любого чата, без сторонних ботов:
- Сделайте так, чтобы из чата пришло сообщение боту. В личке нажмите «Старт». В группе добавьте бота и отправьте адресованную ему команду, например
/start@YourBot. В канале назначьте бота администратором и опубликуйте пост. - Откройте в браузере
https://api.telegram.org/bot<token>/getUpdates, подставив вместо<token>токен бота. - Найдите в ответе
"chat". Егоidи есть ID чата, уже со знаком и приставкой, аtypeподскажет тип:private,group,supergroupилиchannel.
"chat": {
"id": -1001234567890,
"title": "Оповещения о сборках",
"type": "supergroup"
}
Почти все пустые и неудачные ответы объясняются правилами из документации getUpdates:
- Режим приватности. По умолчанию бот в группе видит в основном адресованные ему команды, ответы на свои сообщения и служебные сообщения — например, о том, что его добавили. Бот-администратор видит всё. Обычная переписка до такого бота не доходит, поэтому в шаге 1 нужна команда.
- 24 часа. Недоставленные обновления Telegram хранит не дольше суток. Если список пуст, напишите боту ещё раз и обновите страницу.
- Вебхук. Пока у бота настроен вебхук, getUpdates не работает, а Telegram Trigger в n8n как раз его ставит. В ответ придёт ошибка
Conflict. Возьмите ID из результата триггера — по документации n8n, он там есть — или воспользуйтесь ботами выше. - Темы. Сообщение из темы приходит ещё и с полем
message_thread_id. Передайте его вместе сchat_id, чтобы писать в эту тему.
В адресе из шага 2 стоит ваш токен, а токен — ключ от бота. Не вставляйте эту ссылку в чаты, скриншоты и общие документы, а если она утекла, выпустите новый токен в @BotFather.
Что делать, если ID не работает
На неудачный запрос Bot API отвечает коротким описанием ошибки на английском. Частые случаи:
- «chat not found». Сверьте формат с таблицей: супергруппе и каналу нужна приставка -100, обычной группе — минус. Проверьте и то, что токен принадлежит боту, который состоит в этом чате.
- «bot is not a member of the channel chat» (или «supergroup chat»). Добавьте бота в чат, а в канал — администратором.
- «bot can't initiate conversation with a user». Человек ещё не нажал «Старт» в вашем боте.
- «group chat was upgraded to a supergroup chat». У группы теперь новый ID с -100, и Telegram передаёт его в этой же ошибке в поле
migrate_to_chat_id. Замените старый ID в настройках. Приложения Telegram сами преобразуют обычную группу, когда администратор включает то, что есть только у супергрупп, например публичную ссылку или темы. - Бот не показывает ID по пересланному сообщению. Отправитель скрыл аккаунт в настройке «Пересылка сообщений». Попросите его открыть бота самого.
- Сообщение попадает в общую тему, а не в нужную. Добавьте
message_thread_idс номером темы. - ID портится в коде. Отрицательное 13-значное число не помещается в 32-битное целое. Храните его как 64-битное число или как строку.
Что дальше
Если подбираете и другие инструменты для работы с ботами, например форматирование JSON или кодирование в Base64, сравните их в рейтинге инструментов для разработчиков. А если сам бот ещё настраивается, сравнение BotFather и User Info Bot покажет, какой из двух нужен на каком шаге.



