Chat ID Telegram Dimana? Cara Mendapatkan Chat ID User, Grup, dan Channel
Chat id telegram adalah angka unik untuk setiap chat (pribadi, grup, supergroup, atau channel) yang dipakai sebagai parameter chat_id saat bot mengirim pesan. Aplikasi Telegram biasanya tidak menampilkannya. Cara paling andal untuk mendapatkannya: kirim pesan ke bot, panggil getUpdates, lalu baca message.chat.id.
Apa itu chat id telegram dan formatnya
Bentuk chat id langsung menunjukkan jenis chatnya:
| Jenis chat | Contoh chat_id | Ciri |
|---|---|---|
| Pengguna (chat pribadi) | 123456789 | angka positif |
| Grup biasa | -123456789 | angka negatif |
| Supergroup | -1001234567890 | diawali -100 |
| Channel | -1001234567890 | diawali -100 |
Simpan chat id sebagai integer 64-bit (misalnya BIGINT), karena nilainya bisa melebihi 32 bit. Jangan membuang tanda minus atau awalan -100. Itu penyebab paling umum error chat not found.
Cara 1: chat id pribadi lewat getUpdates
- Buka bot kamu di Telegram dan kirim pesan apa saja, misalnya
/start. - Panggil
getUpdatesdengan token bot kamu, lewat terminal atau langsung di getUpdates di Bot API Tester:curl https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/getUpdates - Cari
message.chat.iddi hasilnya:
{
"ok": true,
"result": [
{
"update_id": 100000001,
"message": {
"message_id": 5,
"from": {"id": 123456789, "is_bot": false, "first_name": "Budi"},
"chat": {"id": 123456789, "first_name": "Budi", "type": "private"},
"date": 1793232000,
"text": "/start"
}
}
]
}
Di chat pribadi, chat.id sama dengan from.id, yaitu ID pengguna. Belum punya bot atau token? Ikuti dulu panduan token bot Telegram.
Kalau hasilnya panjang, skrip Python kecil ini menampilkan semua chat id yang ada di update, termasuk grup dan channel:
import os
import requests
TOKEN = os.environ["BOT_TOKEN"]
url = f"https://api.telegram.org/bot{TOKEN}/getUpdates"
data = requests.get(url, timeout=10).json()
for upd in data["result"]:
msg = upd.get("message") or upd.get("channel_post")
if msg:
chat = msg["chat"]
print(chat["id"], chat["type"], chat.get("title", ""))
Cara 2: chat id telegram group dan supergroup
- Tambahkan bot ke grup sebagai anggota.
- Kirim
/start@username_botdi grup (ganti dengan username bot kamu). - Panggil
getUpdatesdan bacamessage.chat.id. Nilainya negatif, danchat.typeberisigroupatausupergroup.
Kenapa harus perintah dengan @username_bot? Secara default bot memakai privacy mode: di grup, bot hanya menerima perintah yang ditujukan kepadanya, balasan ke pesannya, pesan yang dikirim lewat bot, dan pesan layanan. Pesan biasa seperti "halo" tidak akan muncul di getUpdates. Privacy mode bisa dimatikan dengan /setprivacy di @BotFather (bot harus dikeluarkan lalu ditambahkan lagi ke grup), atau jadikan bot admin.
Saat bot ditambahkan ke grup, biasanya juga muncul update my_chat_member yang berisi chat.id grup tersebut.
Perhatian: jika grup biasa diupgrade menjadi supergroup, chat id berubah. Request ke ID lama akan gagal dengan error 400, dan parameters.migrate_to_chat_id di respons berisi ID baru.
Cara 3: chat id channel
Channel publik. Kamu bisa langsung memakai username channel sebagai chat_id, misalnya @infopromo. Bot tetap harus menjadi admin channel agar bisa memposting.
Channel privat. Username tidak ada, jadi ambil ID numeriknya:
- Tambahkan bot sebagai admin channel.
- Publikasikan satu postingan di channel.
- Panggil
getUpdatesdan carichannel_post.chat.id:
"channel_post": {
"message_id": 12,
"chat": {"id": -1001234567890, "title": "Info Promo", "type": "channel"},
"date": 1793232000,
"text": "Tes"
}
Topik forum: message_thread_id
Di supergroup dengan fitur topik, setiap topik punya message_thread_id. Chat id tetap milik supergroup, sedangkan topik ditentukan oleh parameter terpisah. Kirim pesan di topik yang diinginkan, lalu baca message.message_thread_id dari update. Untuk mengirim ke topik itu:
curl -X POST "https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": -1001234567890, "message_thread_id": 42, "text": "Halo, topik!"}'
Kenapa getUpdates kosong? Troubleshooting
"result": []. Belum ada update baru. Kirim pesan lagi ke bot (di grup, gunakan perintah/start@username_bot), lalu panggil ulang. Update yang sudah dikonfirmasi denganoffsetjuga tidak muncul lagi.- Pesan lama hilang. Telegram menyimpan update maksimal 24 jam. Kirim pesan baru.
409 Conflict. Webhook masih aktif, dangetUpdatestidak bisa dipakai bersamaan dengan webhook. PanggildeleteWebhook. Ingat, integrasi yang memakai webhook itu (misalnya n8n) berhenti menerima update sampai webhook dipasang lagi. Detailnya ada di panduan webhook Telegram bot.409 Conflictpadahal tanpa webhook. Ada proses lain yang memanggilgetUpdatesdengan token yang sama. Hentikan proses tersebut.Bad Request: chat not foundsaat kirim pesan. Chat id salah (tanda minus atau-100hilang), pengguna belum menekan Start, atau bot belum masuk ke grup atau channel.
Dipakai di mana: notifikasi, n8n, dan AI assistant
Pasangan token bot dan chat id adalah dua hal yang hampir selalu diminta saat menghubungkan sesuatu ke Telegram:
- skrip notifikasi server, monitoring, atau cron job yang mengirim laporan ke grup tim;
- workflow otomasi seperti n8n yang mengirim pesan ke Telegram;
- AI assistant yang terhubung ke Telegram (misalnya OpenClaw), yang biasanya meminta token bot dan chat id.
Setelah chat id didapat, uji langsung dengan sendMessage. Contoh kode lengkap ada di panduan kirim pesan bot Telegram, atau coba di sendMessage di Bot API Tester.
Pertanyaan umum
Chat id telegram dimana?
Aplikasi Telegram biasanya tidak menampilkan chat id. Kirim pesan ke bot kamu, panggil getUpdates, lalu baca nilai message.chat.id dari hasilnya.
Bagaimana cara mendapatkan chat id telegram group?
Tambahkan bot ke grup, kirim /start@username_bot di grup, lalu panggil getUpdates. Chat id grup berupa angka negatif; supergroup diawali -100.
Kenapa chat id grup diawali -100?
Itu format chat id supergroup dan channel, misalnya -1001234567890. Grup biasa memakai angka negatif tanpa -100. Jika grup biasa diupgrade menjadi supergroup, chat id-nya berubah.
Apakah username bisa dipakai sebagai chat_id?
Bisa untuk channel dan supergroup publik dengan format @username. Untuk chat pribadi dengan pengguna, gunakan chat id berupa angka.
Kenapa getUpdates mengembalikan result kosong?
Biasanya belum ada pesan baru ke bot, update sudah lebih dari 24 jam, atau update sudah dikonfirmasi lewat offset. Jika muncul 409 Conflict, bot masih memakai webhook; panggil deleteWebhook.
Panduan terkait
Cara Membuat Bot Telegram: dari BotFather sampai Pesan Pertama
Cara membuat bot telegram langkah demi langkah: daftar di @BotFather, simpan token, cek dengan getMe, lalu kirim pesan pertama lewat curl dan Python.
Kirim Pesan Bot Telegram dengan Telegram Bot API (sendMessage)
Kirim pesan bot telegram lewat Bot API: contoh sendMessage dengan curl, Python, dan JavaScript, format HTML/MarkdownV2, tombol inline, dan solusi error.
Telegram Bot Token: Cara Mendapatkan, Mengecek, dan Mencabut Token
Cara mendapatkan token bot telegram dari @BotFather, melihat token bot lama, mengecek dengan getMe, dan me-revoke token yang bocor. Lengkap dengan contoh.
Webhook Telegram Bot: Cara Setting setWebhook, Secret Token, dan Mengatasi Error
Panduan webhook telegram bot: syarat HTTPS dan port, setWebhook dengan secret_token, cek getWebhookInfo, deleteWebhook, serta solusi error 409 dan n8n.