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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Create, host and manage Telegram bots without writing code — start on the free plan.