Skip to content

Instantly share code, notes, and snippets.

@nafiesl
Last active November 15, 2024 20:36
Show Gist options
  • Save nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a to your computer and use it in GitHub Desktop.
Save nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a to your computer and use it in GitHub Desktop.
How to get Telegram Bot Chat ID

How to get Telegram Bot Chat ID

Content :

  1. Create a Telegram Bot and get a Bot Token
  2. Get Chat ID for a Private Chat
  3. Get Chat ID for a Channel
  4. Get Chat ID for a Group Chat
  5. Get Chat ID for a Topic in a Group Chat

Create a Telegram Bot and get a Bot Token

  1. Open Telegram application then search for @BotFather
  2. Click Start
  3. Click Menu -> /newbot or type /newbot and hit Send
  4. Follow the instruction until we get message like so
    Done! Congratulations on your new bot. You will find it at t.me/new_bot.
    You can now add a description.....
    
    Use this token to access the HTTP API:
    63xxxxxx71:AAFoxxxxn0hwA-2TVSxxxNf4c
    Keep your token secure and store it safely, it can be used by anyone to control your bot.
    
    For a description of the Bot API, see this page: https://core.telegram.org/bots/api
    
  5. So here is our bot token 63xxxxxx71:AAFoxxxxn0hwA-2TVSxxxNf4c (make sure we don't share it to anyone).

Back to top ↑

Get Chat ID for a Private Chat

  1. Search and open our new Telegram bot
  2. Click Start or send a message
  3. Open this URL in a browser https://api.telegram.org/bot{our_bot_token}/getUpdates
    • See we need to prefix our token with a word bot
    • Eg: https://api.telegram.org/bot63xxxxxx71:AAFoxxxxn0hwA-2TVSxxxNf4c/getUpdates
  4. We will see a json like so
    {
      "ok": true,
      "result": [
        {
          "update_id": 83xxxxx35,
          "message": {
            "message_id": 2643,
            "from": {...},
            "chat": {
              "id": 21xxxxx38,
              "first_name": "...",
              "last_name": "...",
              "username": "@username",
              "type": "private"
            },
            "date": 1703062972,
            "text": "/start"
          }
        }
      ]
    }
    
  5. Check the value of result.0.message.chat.id, and here is our Chat ID: 21xxxxx38
  6. Let's try to send a message: https://api.telegram.org/bot63xxxxxx71:AAFoxxxxn0hwA-2TVSxxxNf4c/sendMessage?chat_id=21xxxxx38&text=test123
  7. When we set the bot token and chat id correctly, the message test123 should be arrived on our Telegram bot chat.

Back to top ↑

Get Chat ID for a Channel

  1. Add our Telegram bot into a channel
  2. Send a message to the channel
  3. Open this URL https://api.telegram.org/bot{our_bot_token}/getUpdates
  4. We will see a json like so
    {
      "ok": true,
      "result": [
        {
          "update_id": 838xxxx36,
          "channel_post": {...},
            "chat": {
              "id": -1001xxxxxx062,
              "title": "....",
              "type": "channel"
            },
            "date": 1703065989,
            "text": "test"
          }
        }
      ]
    }
    
  5. Check the value of result.0.channel_post.chat.id, and here is our Chat ID: -1001xxxxxx062
  6. Let's try to send a message: https://api.telegram.org/bot63xxxxxx71:AAFoxxxxn0hwA-2TVSxxxNf4c/sendMessage?chat_id=-1001xxxxxx062&text=test123
  7. When we set the bot token and chat id correctly, the message test123 should be arrived on our Telegram channel.

Back to top ↑

Get Chat ID for a Group Chat

The easiest way to get a group chat ID is through a Telegram desktop application.

  1. Open Telegram in a desktop app
  2. Add our Telegram bot into a chat group
  3. Send a message to the chat group
  4. Right click on the message and click Copy Message Link
    • We will get a link like so: https://t.me/c/194xxxx987/11/13
    • The pattern: https://t.me/c/{group_chat_id}/{group_topic_id}/{message_id}
    • So here is our Chat ID: 194xxxx987
  5. To use the group chat ID in the API, we need to prefix it with the number -100, like so: -100194xxxx987
  6. Now let's try to send a message: https://api.telegram.org/bot63xxxxxx71:AAFoxxxxn0hwA-2TVSxxxNf4c/sendMessage?chat_id=-100194xxxx987&text=test123
  7. When we set the bot token and chat id correctly, the message test123 should be arrived on our group chat.

Back to top ↑

Get Chat ID for a Topic in a Group Chat

In order to send a message to a specific topic on Telegram group, we need to get the topic ID.

  1. Similar to steps above, after we click the Copy Message Link, we will get a link like: https://t.me/c/194xxxx987/11/13, so the group Topic ID is 11.
  2. Now we can use it like so (see message_thread_id): https://api.telegram.org/bot783114779:AAEuRWDTFD2UQ7agBtFSuhJf2-NmvHN3OPc/sendMessage?chat_id=-100194xxxx987&message_thread_id=11&text=test123
  3. When we set the bot token and chat id correctly, the message test123 should be arrived inside our group chat topic.

Back to top ↑

@nafiesl
Copy link
Author

nafiesl commented Sep 9, 2024

Can't I get a chat ID for private conversations from a bot that doesn't belong to me?

Ah I see, I was misunderstood your question. When you don't have the bot token, then you can't get the chat ID.

@lydnguyen
Copy link

I tried the URL link method and included my bot token as well. But I keep getting this result back {"ok":true,"result":[]}. Does anyone know why and how I can retrieve the chatID?

@nafiesl
Copy link
Author

nafiesl commented Sep 13, 2024

I tried the URL link method and included my bot token as well. But I keep getting this result back {"ok":true,"result":[]}. Does anyone know why and how I can retrieve the chatID?

@lydnguyen I think you need to send message first. Ff it doesn't work, try to end conversation and start again. Sometimes I experience the same issue, too.

@yash760
Copy link

yash760 commented Sep 13, 2024

Thanks a lot!!!!

@horia-delicoti
Copy link

Helpful! Thank you, sir!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment