Language: English | Русский | Español | Português | Türkçe | Deutsch | Français | Bahasa Indonesia | العربية | فارسی | Oʻzbek | हिन्दी | 中文 | اردو | Tagalog | አማርኛ

← Home

Group vs supergroup chat_id: key differences

Telegram has groups and supergroups. Both have a chat_id, but they behave differently.

Group

Supergroup

Migration: group → supergroup

When a group becomes a supergroup (e.g. when adding a username or exceeding a limit), Telegram may assign a new chat_id. Your old chat_id can stop working. The API may include migrate_to_chat_id in the update to indicate the new ID.

How to get the current chat_id

  1. Add @print_id_bot to the group or supergroup.
  2. When added, it sends a welcome message with the group name and chat_id.
  3. Or send /id or mention @print_id_bot — it replies with the current chat_id.

Always use the latest value. If your integration breaks after a migration, get the new chat_id from the bot.

Both use negative IDs

Group and supergroup chat_ids are typically negative. See why chat_id can be negative and chat_id format.

FAQ

How do I know if my chat is a group or supergroup?

Check chat.type in the update: "group" or "supergroup". @print_id_bot shows the chat_id; the type is in the raw JSON if you use /dump.

Will my chat_id change when we add a username?

Adding a username can trigger migration to supergroup. The chat_id may change. Get the new one from @print_id_bot.

Can I use the old chat_id after migration?

No. Use the new chat_id. The old one may return “chat not found”. See chat not found: common causes.

Are group and supergroup IDs formatted the same?

Yes. Both are negative numbers. The format is the same; only the value can change on migration.

Does @print_id_bot work in both?

Yes. Add it to the group or supergroup and send /id or mention it to get the chat_id.


Get your group or supergroup chat_id with @print_id_bot.

Open @print_id_bot


Related pages