Every way to find the numeric ID of a Telegram chat, group, channel or user, what the -100 prefix means, and how to avoid the mistakes that break bots.
The quickest way to get a Telegram chat ID is to add your own bot to the chat, send a message there, and read the chat ID from the update the bot receives. For a user ID, the person has to message your bot first, and the ID arrives in that update. Telegram Web and some versions of Telegram Desktop can also show IDs directly, which is handy when you just need one number once.
This guide explains every method, which one fits which kind of chat, why channel and supergroup IDs start with -100, and the small mistakes that make a perfectly good ID look broken.
Every user, bot, group and channel on Telegram has a permanent numeric identifier. Names change, usernames change, and private chats have no username at all. The number stays the same, which is why software uses it.
You need an ID in a handful of situations:
Regular users chatting with friends never need IDs. If you only want someone's username or to share a chat, look at a link instead, which is covered in our invite links guide.
Telegram shows IDs in slightly different shapes depending on what they belong to and which interface you use. The Bot API, which is the interface most tools use, follows these patterns:
Telegram's developer documentation explains the channel rule: the internal channel number is offset by a fixed amount and made negative when shown in the Bot API. In practice that means a channel whose internal number is 1234567890 appears to a bot as -1001234567890. You do not need to do the arithmetic yourself. You just need to recognise the -100 at the front and keep it.
A numeric ID is an identifier, not a password. Knowing it does not let anyone log in, read messages or contact a person. On Telegram, a bot can only message a user who has started a conversation with it, and a regular account still needs a username, a shared chat or a saved contact to reach someone. So an ID is safe to keep in your own configuration files.
What you must keep secret is your bot token, the long string @BotFather gives you. Anyone holding the token controls the bot. Several methods below involve the token, so treat it like a password. Our guide to creating a bot with BotFather covers where the token comes from and how to replace it if it leaks.
Check these points first. They decide which method will work for you.
Telegram Web runs in the browser and puts an identifier for the open chat in the address bar. This is the fastest method if you just need a number once and are already logged in on a computer.
Depending on the version of Telegram Web, a channel or supergroup may appear with the -100 prefix or with a shorter negative number that lacks it. Bots need the -100 form. If what you see does not start with -100 and the chat is a channel or supergroup, compare it with another method before you rely on it. A wrong prefix is the most common reason a bot reports "chat not found".
For public chats the address may show the username instead of a number. That tells you the chat is public, and for sending messages through a bot you can often use the username with an at sign in front of it. If you specifically need the number, use Method 3.
For a broader comparison of the web and desktop apps, see Telegram Desktop vs Web vs mobile.
Some versions of Telegram Desktop include an experimental option that shows the numeric ID on profile and chat info pages. It lives among the experimental settings in the advanced part of the app's settings, and its exact name and position have changed between versions.
If your version does not have this option, do not install modified builds that promise it. Unofficial clients are a common route for malware and account theft. Use another method instead. Our guide to third-party Telegram clients explains what to look out for.
Desktop may show a channel ID with or without the -100 prefix depending on the format it uses. As with Telegram Web, check it against the bot method before putting it into production.
This is the method developers rely on, because the ID comes from the same Bot API that will later use it. There is no doubt about the format.
The idea is simple. Telegram stores recent events for your bot as "updates". When someone writes in a chat the bot can see, the update includes a chat object, and that object contains the chat's ID. You can ask for the stored updates by calling the getUpdates method in your browser.
By default, bots in groups run in privacy mode. In this mode they receive commands meant for them, replies to their own messages and messages that mention them, but not ordinary chatter. If you type "hello" and then check getUpdates, you may see nothing. Sending a command or a mention avoids that. You can switch privacy mode off in @BotFather if your bot genuinely needs every message, but you do not need to for this task.
Channels work slightly differently because members do not write there, only admins post.
The same works for any person who chooses to message your bot. That is the only way a bot learns a user's ID: the person starts the conversation. A bot cannot look up someone who has never interacted with it, which is a deliberate privacy rule.
An empty list means Telegram has no stored updates for the bot. The usual causes, in the order worth checking:
Message links carry an ID inside them, which is useful when you can see a chat but cannot easily add a bot to it.
This method gives a reliable channel ID without touching the bot token. It does not work for private chats with users, and basic groups do not offer message links. Copying links is covered in more detail in how to forward Telegram posts, which also explains the other ways to share a message.
Many groups already run moderation, welcome or utility bots, and some of these reply to a command with the chat's ID. If you are an admin and such a bot is present, check its help command. This saves adding another bot.
There are also bots whose whole purpose is to tell you IDs. Some are fine, some collect data from every message forwarded to them. The rule of thumb: forward only messages you would be comfortable showing to a stranger, never forward private conversations, and never give any bot your phone number or login code. Our guide to finding Telegram bots safely explains how to judge a bot before you use it. If you already have your own bot, Method 3 is safer, because nothing leaves your hands.
Different situations point to different methods. Here is a quick way to decide.
These examples are illustrations to show the steps end to end. The numbers are made up.
Maria runs a small web shop and wants downtime alerts in a private group with her two colleagues. The monitoring tool asks for a bot token and a chat ID.
A month later the group grows, Maria turns on a feature that only supergroups support, and alerts stop. The group has been converted to a supergroup, and its ID changed. She repeats the steps, finds an ID starting with -100, updates the tool, and alerts resume. The section on group migration below explains why.
Jonas has a public news channel and a bot that posts summaries. Because the channel is public, he configures the bot with the channel's username, including the at sign. That works. Later he makes the channel private to run it as a paid community, and the bot fails. Private channels have no username, so the bot now needs the -100 number. He takes it from a message link, adds -100, and the bot posts again. Our guide on making a channel private or public covers what else changes when you switch.
A moderator in a busy group wants to log the accounts that break the rules, because spammers often change their names. The group's moderation bot already logs user IDs with each warning, so the moderator copies the ID from the bot's log rather than relying on the display name. If the same account rejoins under a new name, the ID matches. For more on running moderation, see how to stop spam bots in Telegram groups.
Telegram has two group types under the surface. Small groups start as basic groups. When a group grows past a certain size, or when an admin enables features that only supergroups support, Telegram converts it into a supergroup. Members see no difference other than new features.
Bots see a big difference: the supergroup is technically a new chat with a new ID, in the -100 format. The Bot API sends a message to the old chat telling bots the new ID, and further messages to the old ID fail. Anything with the old ID hard-coded stops working.
Our article on group vs supergroup vs gigagroup explains the differences between the group types.
Groups with topics enabled are still one chat with one ID. Each topic is a thread inside that chat, identified by its own thread number. If you want a bot to post into a particular topic rather than the general area, you need both the group's ID and the topic's thread ID.
If the tool has only a chat ID field, its messages go to the general topic. Our guide to topics in Telegram groups explains how topics are organised.
IDs are long, and that causes problems in places you might not expect.
Write a short note next to each stored ID saying which chat it belongs to. Six months later a list of bare numbers is hard to make sense of.
These are the errors behind most "my bot cannot find the chat" problems.
Once you have the ID, the next steps depend on what you are building:
Not with a bot, unless the person interacts with it. A bot only learns a user's ID when that user messages it, joins a chat where the bot can see them, or interacts with it in some other way. If you need someone's ID for a legitimate reason, ask them to send a message to your bot.
That is how the Bot API writes channel and supergroup IDs. Telegram's internal channel number is offset and made negative for bots, and in practice that puts -100 at the front. Keep the full number, including the prefix and the minus sign, whenever a tool asks for a chat ID.
User and channel IDs do not change. A basic group gets a new ID when it is upgraded to a supergroup, which is the most common reason a working bot suddenly stops. Deleting a group or channel and creating a new one also produces a new ID, even if the name is the same.
The official phone apps do not show numeric IDs. Use Telegram Web or Telegram Desktop on a computer, or use your own bot, which you can manage from any device once you know the getUpdates address.
Generally yes. An ID is an identifier, and knowing it does not give anyone access to the chat or let them message you. Keep your bot token private, though, because the token is what controls the bot.
For a public channel, yes: many Bot API methods accept the username with an at sign in place of the numeric ID. Private channels have no username, so they always need the number. If the channel might become private later, store the numeric ID from the start.
Telegram IDs are permanent numbers for users, groups and channels. Users have positive IDs, groups negative ones, and channels and supergroups negative ones starting with -100. The most reliable way to get one is through your own bot: add it to the chat, send a command or a post, and read the ID from getUpdates. Telegram Web, a Desktop option and private message links give quick alternatives. Keep the full number including the minus sign and prefix, update stored IDs when a group becomes a supergroup, and never share your bot token. A user's ID is only available when that person chooses to interact with your bot.
Ownership confirmed through our claim process — not an endorsement of their content.
Founder of Telegram.
The official Telegram on Telegram. Much recursion. Very Telegram. Wow.
Telegram Premium – a subscription that unlocks dozens of exclusive features.
Binance Official English Group Binance Official Chinese Group Binance English Announcements Binance Chinese Announcements
is a modern crypto news and research platform covering the latest developments across digital assets, markets, regulation, and blockchain technology.
Technical analysis & high-probability trade setups. Price action, market structure, risk control.
BlackBlock Markets exists to observe how capital moves before it becomes obvious.
This channel focuses exclusively on what shapes global finance. Macroeconomics, markets, liquidity, central banks.
Clear long & short signals for BTC, ETH & liquid altcoins. AI-backed analysis, real-time execution.