Telegram chat_id lookup

Public channel or group: paste the link. The lookup calls getChat for you, so no token of yours is needed.

What this finds
  • A public channel or group by @username or t.me link — looked up for you, no token needed.
  • A numeric ID or a t.me/c/… message link — decoded in your browser, nothing is sent.
  • A private group, a person or yourself — not possible by name. How to read those IDs.

What the -100 means

The Bot API keeps users, groups and channels apart by range. A channel's or supergroup's ID is its MTProto ID plus 10¹², made negative.

-100kind1234567890MTProto channel ID
bot_api_id = −(10¹² + 1234567890) · example
# the same call, with your own bot
curl https://api.telegram.org/bot$TOKEN/getChat \
  -d chat_id=-1001234567890

ID ranges

Positive = user or bot. Negative = chat; the range tells the kind.

Scale is compressed (log of the magnitude) so all ranges fit. Hatched = reserved for secret chats, which bots never see. Look up an ID above and it is pinned here. Ranges from Telegram's Bot API dialog IDs page.
User or bot

1 … 1,099,511,627,775

Basic group

−1 … −999,999,999,999

Channel / supergroup

−1,000,000,000,001 … −1,997,852,516,352

Secret chat

−1,997,852,516,353 … −2,002,147,483,648

Channel direct messages

−2,002,147,483,649 … −4,000,000,000,000

Private groups and users

Nobody can look these up by name — Telegram only tells a bot the ID of a chat the bot is in, or of a person who wrote to it.

1
Write to your own bot, or add it to the group

Any bot you created with @BotFather works. Send it a message — in the group, mention it or send a command.

2
Open getUpdates

Call api.telegram.org/bot<token>/getUpdates yourself. The token stays with you.

3
Read chat.id and from.id

Paste the answer into the inspector and every ID in it is listed. It is read in your browser only.

Open the inspectorStep by step

Convert between formats

Type in any field; the others fill in. Works offline in your browser.

Channel / supergroup. −(10¹² + MTProto channel ID). This is the −100 prefix.

The format in detail · Message link parser

Every ID range

From Telegram's own “Bot API dialog IDs” page.

KindFromTo
User11099511627775
Group-999999999999-1
Channel-1997852516352-1000000000001
Secret chat-2002147483648-1997852516353
Monoforum-4000000000000-2002147483649

FAQ

How do I find a Telegram channel ID without a bot token?

Paste the channel's @username or t.me link into the lookup. The site asks Telegram's Bot API (getChat) for you and shows the chat_id. This works for any public channel or public group.

Why does my ID start with -100?

Channels and supergroups are written as −(10¹² + their MTProto ID) in the Bot API. The −100 is that 10¹², written in front of the channel's own number. A basic group has just a minus sign, a user or bot has a plain positive number.

Can I look up a person by @username?

No. The Bot API only resolves public channels and public groups by name. A person's ID is only told to a bot that person has written to, or it can be read from a message they sent to a group the bot is in. The page “Your own user ID” shows how.

How do I get the chat ID of a private group?

Add a bot you control to the group, send a message that the bot receives (a command or a mention), and call getUpdates. The group's ID is in message.chat.id. If you have a message link like t.me/c/1234567890/45, the ID is −100 followed by the first number.

Do you need my bot token?

No. The lookup never asks for one, and anything that looks like a token is refused by the server. The token and webhook checkers send your token from your browser directly to api.telegram.org; it never reaches this site.

Is the ID the same for every bot?

Yes. A chat ID or user ID is the same number for every bot and every account. Only file_id values (photos, stickers) differ from bot to bot.