Telegram ID Format: User, Group, Channel, and Bot API Examples
A Telegram ID is a numeric identifier used by Telegram clients, bots, and integrations. The exact format depends on what the ID represents: a user, private chat, basic group, supergroup, or channel.
Telegram ID format at a glance
| Telegram object | Typical Bot API format | Example |
|---|---|---|
| User | Positive integer | 123456789 |
| Private chat | Same positive integer as the user ID | 123456789 |
| Basic group | Negative integer | -987654321 |
| Supergroup | Negative integer, commonly beginning with -100 | -1001234567890 |
| Channel | Negative integer, commonly beginning with -100 | -1001987654321 |
These examples show the common Bot API representation. Copy the complete number exactly as Telegram returns it, including the minus sign.
User ID format
A Telegram user ID is a positive integer. It is different from the visible @username:
- the ID is numeric;
- the username begins with
@and can be changed; - bots receive the numeric ID after the user interacts with them;
- the value may be larger than a signed 32-bit integer.
Telegram documents that peer identifiers can use up to 52 significant bits. Store them in a signed 64-bit integer when your language or database supports it. Do not use a signed 32-bit column.
To see your ID, open @print_id_bot and send /id. For other safe methods, see how to get a Telegram user ID.
Private chat_id format
In a one-to-one conversation with a bot, the chat.id value is normally the same positive integer as the other user’s user.id.
Example update fragment:
{
"message": {
"from": { "id": 123456789 },
"chat": { "id": 123456789, "type": "private" }
}
}
The fields have different meanings even when their values match: from.id identifies the sender, while chat.id identifies the conversation.
Group ID format
A basic group’s Bot API chat_id is negative. For example:
-987654321
Keep the minus sign in API calls and database records. Removing it points to a different identifier.
Supergroup and channel ID format
Supergroup and channel chat IDs are negative and commonly appear with the -100 prefix:
-1001234567890
The -100 form is the Bot API dialog identifier, not a username and not an invite-link value. A group can receive a new chat_id when Telegram upgrades it to a supergroup, so always use the current value from a recent update. See the detailed Telegram chat_id format guide.
How to use an ID in the Bot API
Send the entire chat_id as the chat_id parameter:
https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=-1001234567890&text=Hello
Never publish a real bot token. Treat the token as a password. A Telegram ID itself is an identifier, not an authentication secret.
Common format mistakes
- Using
@usernameinstead of an ID. They are different identifiers. - Dropping the minus sign. Group, supergroup, and channel chat IDs are negative.
- Using a 32-bit integer. Telegram IDs can exceed that range.
- Converting the number through an imprecise type. Preserve every digit.
- Keeping an old group ID after migration. Read the current chat_id from a new update.
- Copying a message ID.
message_idis only unique inside one chat and is not a user ID or chat_id.
Official technical reference
Telegram’s documentation describes Bot API dialog IDs as unique 64-bit peer identifiers and explains the ranges for users, chats, supergroups, and channels. See Telegram Bot API dialog IDs and the Bot API Chat object.
FAQ
How many digits are in a Telegram user ID?
There is no single fixed length. Treat the ID as a numeric value rather than validating it by digit count.
Does every channel ID start with -100?
Bot API channel and supergroup dialog IDs use the negative channel range commonly displayed with -100. Always rely on the exact value returned by Telegram instead of constructing it manually.
Is a Telegram sender ID the same as a user ID?
For a normal message from a user, message.from.id is that sender’s numeric user ID. Messages sent on behalf of a channel or anonymous administrator require checking the complete update structure.
Can I find an ID from a phone number?
Not reliably through a bot. The user must interact with the bot, share an appropriate contact, or produce an update where Telegram exposes the relevant ID.
See your real Telegram user ID and chat_id now.
Related guides
- Add a bot to a group to get chat_id (10 seconds)
- Aiogram: get chat_id and user ID (examples)
- Bot not responding in a Telegram group: checklist
- C# Telegram bot: get chat_id
- Forwarded messages in Telegram: why IDs can be hidden
- Forwarded sender ID hidden in Telegram: reasons and limits
- Get a Telegram Group chat_id in 10 Seconds
- Get Telegram channel ID for Bot API (what's possible and what isn't)