Free Telegram tool

Telegram Chat & Channel ID Finder

Find the numeric ID of any public Telegram channel, group, or user from its @username or t.me link. Free and instant — paste a username, look up the chat, and copy the ID your bot needs.

Advanced — looking up a private chat? Add your own bot token

Only needed for a private chat or group your own bot is already a member of — public channels, groups and bots resolve without it. Don’t have a bot token?

Private chat with no public username?

Public @usernames resolve instantly above with no token. This forward method is only for a private group, channel or DM — which has no public username, so no one who isn’t a member can resolve it. Forward any message from the chat to @userinfobot or @RawDataBot, and it will reply with the numeric ID of the original sender or chat — no token required.

  • For a channel or group ID, forward one of its messages to @userinfobot.
  • For your own user ID, just send any message to @userinfobot.
  • Channel and supergroup IDs are negative and usually start with -100.

Why you need a chat ID

The Telegram Bot API addresses chats by numeric chat_id, not by username. To send a message, post to a channel, or pin content, your bot needs the ID — and unlike a @username, the ID never changes. This tool resolves a public @username into that stable numeric ID so you can drop it straight into your automation or TeleCrow bot. For a deeper walkthrough, see our guide on getting a Telegram chat ID for bots.

How to use it

  1. Paste the public @username or t.me link of the channel, group, bot or user. No bot token needed.
  2. Press Find chat ID. The numeric chat_id appears with the chat type.
  3. Click Copy and paste the ID into your bot config, script, or TeleCrow flow.
  4. For a private chat, group or DM with no public username, use the forward-a-message fallback above.

Common uses — when you need a chat ID

  • Sending automated messages or alerts to a channel or group with sendMessage.
  • Posting scheduled content, broadcasts, or cross-posts to a channel your bot administers.
  • Routing webhook or server notifications (deploys, orders, monitoring) into a specific chat.
  • Whitelisting your own user ID so a bot only responds to you, or building admin-only commands.
  • Configuring a no-code bot in TeleCrow that needs a destination chat to post to.

Technical notes & gotchas

  • The method. Lookups hit GET /bot<token>/getChat?chat_id=@username, which returns a Chat object with the id, type, title, and username.
  • The -100 prefix. Channel and supergroup IDs are negative and usually look like -100xxxxxxxxxx. Always include the full value, -100 and all, when you pass it as a chat_id.
  • Public vs. private. getChat resolves any public @username, but private groups, secret chats, and DMs have no public username — use the @userinfobot forward method for those.
  • Sending needs membership. Reading the ID does not require the bot to be in the chat, but posting to a channel or group requires adding the bot as an administrator with the right permissions first.
  • Token safety. Treat your bot token like a password. It grants full control of the bot, so revoke and regenerate it in @BotFather if it has been exposed.

Frequently asked questions

What is a Telegram chat or channel ID?

Every Telegram user, group, and channel has a unique numeric ID that never changes, even if the @username is updated. Bots and APIs use this numeric ID — not the username — to send messages, so you often need it when wiring up automations.

Do I need a bot token to find an ID?

No — not for public chats. We resolve public @usernames, channels, groups and bots for you with TeleCrow’s own bot, so you just paste the handle. A bot token is only needed for a private chat your own bot is already a member of (under “Advanced”), or use the forward-a-message method below.

Why is my channel ID negative or prefixed with -100?

Telegram represents supergroups and channels with negative IDs, usually in the form -100xxxxxxxxxx. That full value (including the -100 prefix) is what the Bot API expects as the chat_id.

Is my bot token safe if I use the Advanced option?

Yes. A token is only needed for the optional Advanced field (private chats) — public lookups need none. When supplied it is sent once over HTTPS for a single read-only getChat call and is never saved, logged or shared. Only read-only methods (getMe, getChat, getStickerSet) are allowed, so a token pasted here can’t send messages.

Why do I get "chat not found"?

The Bot API can only resolve public usernames or chats your bot already has access to. Check for typos, make sure the @username is correct, and remember that private groups and DMs cannot be resolved by username — use the forward-a-message method instead.

Is this Telegram ID finder free, and do I need to log in?

Yes, completely free with no account or login. Paste a public @username or t.me link and the chat ID appears instantly — no bot token needed. Nothing is stored, and there’s no usage limit for normal lookups.

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

Open the channel in Telegram, long-press or right-click any message, and choose Forward to send it to @userinfobot or @RawDataBot. The bot replies with the channel’s numeric chat ID — typically a negative number beginning with -100 — without needing your own bot token.

Which Bot API method does this tool use?

For public lookups it uses an MTProto username resolver server-side (no bot token), which returns the numeric id, the type, the title and the username for any public @username — personal users included. getChat is only used for the optional Advanced lookup of a private chat your own bot is already in. Either way, we read only public metadata — no messages are sent or fetched.

What is the difference between a chat ID and a user ID?

A user ID identifies one person and is a positive number. A chat ID can refer to a private chat (equals that user’s ID), a group, a supergroup, or a channel; groups and channels use negative IDs, with supergroups and channels usually prefixed with -100. Both are stable and never change.

Can I use a channel’s numeric ID instead of its @username in my bot?

Yes. The Bot API accepts either the @username (for public chats) or the numeric chat_id anywhere a chat_id is required, such as in sendMessage. The numeric ID is the more reliable choice because it also works for private channels and keeps working even if the owner changes the @username later.

Why does my bot get "Forbidden: bot is not a member" when posting to a channel?

Resolving the ID with getChat works for any public chat, but sending messages requires that your bot be added to the channel or group as an administrator. Add the bot as an admin with the relevant rights (for channels, "Post Messages"), then retry with the same numeric chat_id.

Build a no-code Telegram bot with TeleCrow

Create, host and manage Telegram bots without writing code — start on the free plan.

Get started free