Como descobrir o chat ID do Telegram de um usuário, grupo ou canal
Mande /start para o @userinfobot para ver seu próprio ID, encaminhe a ele um post de canal para ver o ID do canal ou adicione o @GetIDsBot a um grupo. IDs de usuário são positivos, os de supergrupos e canais começam com -100, e o chat ID não é segredo, ao contrário do token do bot.
Para descobrir seu próprio chat ID, mande /start para o User Info Bot (@userinfobot). Encaminhe a ele um post de canal para ver o ID do canal, e para o ID de um grupo adicione o GetIDs Bot (@GetIDsBot) ao grupo. Com o token do seu próprio bot, mande uma mensagem para ele, abra o endereço do getUpdates no navegador e leia o chat.id. IDs de usuário são positivos, e os de supergrupos e canais começam com -100. O chat ID não é segredo; o token do bot é.
Qual chat ID o serviço está pedindo?
O n8n, um script de monitoramento ou o seu próprio bot mandam mensagens pela Bot API do Telegram, e o método sendMessage pede um chat_id: o número do chat ou o @username de um canal, supergrupo ou bot públicos. O formato do número mostra que tipo de chat ele indica. A documentação do Telegram sobre os IDs de diálogo da Bot API define as faixas:
| Chat | Como é o chat_id | Exemplo |
|---|---|---|
| Uma pessoa (o chat privado dela com o bot) | Número positivo, igual ao ID de usuário | 123456789 |
| Grupo básico | Número negativo sem -100 | -987654321 |
| Supergrupo | -100 seguido do número do próprio grupo | -1001234567890 |
| Canal | -100 seguido do número do próprio canal | -1001987654321 |
| Tópico em grupo com tópicos | O ID do grupo mais um message_thread_id separado |
-1001234567890 e 42 |
| Canal ou supergrupo público | O número ou o @username | @channelname |
Três detalhes costumam dar dor de cabeça:
- O número é grande. O Telegram avisa que um chat ID pode passar de 32 bits e que algumas linguagens de programação o corrompem sem avisar. Um inteiro de 64 bits com sinal, um double ou uma string são seguros.
- Chat privado tem o ID da pessoa. Quando um serviço fala com você por um bot, o
chat_idé simplesmente o seu ID de usuário. - Um grupo pode mudar de ID. Quando um grupo básico vira supergrupo, ele ganha um ID novo com -100, e as mensagens para o antigo falham.
O -100 não é enfeite. O Telegram converte o número interno de um canal para o formato da Bot API somando 1.000.000.000.000 e deixando o resultado negativo. Por isso, um número copiado sem esse prefixo não funciona do jeito que está.
Como descobrir meu ID do Telegram?
Você precisa do seu próprio ID quando um serviço deve mandar mensagem no seu privado: um alerta do servidor, um pedido novo na loja, um backup que falhou.
- Abra o User Info Bot (@userinfobot) e toque em Iniciar.
- O bot responde com os dados da sua conta. Copie o número que aparece ao lado do seu ID.
- Abra o bot que o serviço vai usar e toque em Iniciar nele também.
Quase todo tutorial pula o terceiro passo. Bots não podem iniciar conversas com usuários: a pessoa precisa escrever para o bot primeiro, e enquanto você não fizer isso, o serviço não consegue falar com você nem com o ID certo.
O GetIDs Bot (@GetIDsBot) dá a mesma resposta ao /start. Os dois bots são gratuitos e não mostram anúncios.
O ID de outra pessoa, por exemplo de um colega que você quer na lista de permissões do seu bot, sai do mesmo jeito: encaminhe uma mensagem dele para o User Info Bot, e o bot mostra o ID do remetente. Se a pessoa escolheu Ninguém em Configurações > Privacidade e Segurança > Mensagens Encaminhadas, a mensagem encaminhada leva só o nome dela, e nenhum bot enxerga a conta. Peça para ela tocar em Iniciar no User Info Bot e mandar o número para você.
Como descobrir o ID de um grupo do Telegram?
Com um bot
- Adicione o GetIDs Bot (@GetIDsBot) ao grupo como qualquer membro. Se nunca fez isso, veja como adicionar um bot a um grupo do Telegram.
- Assim que entra, o bot informa o ID do grupo. Copie com o sinal de menos.
- Tire o bot do grupo se ele não tiver outra função lá.
O Telegram Bot Raw (@RawDataBot) é o caminho que a documentação do n8n sugere: convide o bot para o grupo, e ele responde com o JSON bruto da atualização, em que o id dentro de chat é o ID do grupo.
No Telegram Web
- Abra a versão WebA do Telegram em web.telegram.org/a/ e faça login.
- Abra o grupo.
- Olhe a barra de endereço. Tudo o que vem depois de
#é o chat ID, por exemploweb.telegram.org/a/#-1001234567890.
O WebA monta esse endereço com os mesmos IDs que a Bot API usa, então o sinal de menos e o -100 já estão lá. Se um tutorial mandar copiar os dígitos depois da letra "g" e colocar um menos na frente, ele descreve uma interface web antiga. Num grupo com tópicos, o endereço de um tópico aberto termina com um sublinhado e o ID do tópico: #-1001234567890_42.
No Telegram Desktop
O Telegram Desktop para Windows, macOS e Linux (não o app separado Telegram para macOS) consegue mostrar IDs nos perfis:
- Abra Configurações > Avançado > Configurações experimentais.
- Ative Show Peer IDs in Profile. Essa opção fica em inglês em qualquer idioma do app.
- Abra o perfil do grupo. Abaixo da descrição aparecem
id:e um número; clique no número para copiá-lo.
O Desktop mostra o número interno do Telegram, sem o sinal e sem o prefixo da Bot API: coloque -100 na frente se for supergrupo ou canal, ou um sinal de menos se for grupo básico. Se não souber que tipo de grupo é o seu, pegue o ID no WebA ou com um bot, onde ele já vem pronto. O próprio Telegram avisa que as configurações experimentais podem quebrar ou sumir numa versão futura.
Como descobrir o ID de um canal do Telegram?
Um canal público muitas vezes nem precisa de número, porque a Bot API aceita o @username dele como chat_id. Um canal privado não tem username, então você vai precisar do ID:
- Abra o canal e escolha Encaminhar em qualquer post.
- Envie o post para o User Info Bot (@userinfobot) ou para o GetIDs Bot (@GetIDsBot).
- A resposta traz o ID do canal.
O JsonBOT (@JsonBot) responde a uma mensagem encaminhada com todos os dados brutos que o Telegram anexa a ela, identificadores incluídos. Ajuda quando você quer ver a estrutura completa.
Se o canal estiver com Restringir salvar conteúdo ativado, os posts não podem ser encaminhados. Ainda sobram dois caminhos:
- O link do post. Toque em Copiar Link no post (Copiar Link do Post no Telegram Desktop). O link de um canal privado tem este formato:
t.me/c/1987654321/15. O primeiro número é o canal, e o segundo, o post. Coloque -100 na frente do número do canal e você terá-1001987654321. Supergrupos privados usam o mesmo tipo de link (Link para a Mensagem no Desktop). - WebA. Abra o canal em web.telegram.org/a/ e leia a barra de endereço, como no caso do grupo.
Saber o ID é só metade do trabalho. O bot que vai publicar também precisa estar no canal, e o Telegram só deixa adicionar bots a canais como administradores.
Como pegar o chat ID com o meu próprio bot?
Se você já tem o token (se não tem, veja como criar um bot e conseguir o token), o Telegram informa o ID de qualquer chat direto, sem bot de terceiros:
- Faça uma mensagem desse chat chegar ao seu bot. No chat privado, toque em Iniciar. Num grupo, adicione o bot e mande um comando direcionado a ele, como
/start@YourBot. Num canal, adicione o bot como administrador e publique um post. - No navegador, abra
https://api.telegram.org/bot<token>/getUpdates, trocando<token>pelo token do seu bot. - Procure
"chat"na resposta. Oiddele é o chat ID, já com sinal e prefixo, e otypediz se éprivate,group,supergroupouchannel.
"chat": {
"id": -1001234567890,
"title": "Alertas da loja",
"type": "supergroup"
}
Algumas regras da documentação do getUpdates explicam quase todas as respostas vazias ou com erro:
- Modo de privacidade. Por padrão, um bot num grupo vê principalmente os comandos direcionados a ele, as respostas às mensagens dele e as mensagens de serviço, como a que avisa que ele entrou. Um bot administrador vê tudo. A conversa comum não chega a um bot normal, por isso o passo 1 usa um comando.
- 24 horas. O Telegram guarda as atualizações não entregues por no máximo um dia. Se a lista vier vazia, mande outra mensagem para o bot e recarregue a página.
- Webhooks. O getUpdates não funciona enquanto o bot tiver um webhook, e o Telegram Trigger do n8n configura um. Nesse caso, o Telegram responde com um erro
Conflict. Pegue o chat ID na saída do trigger, que segundo a documentação do n8n traz esse dado, ou use um dos bots acima. - Tópicos. Uma mensagem enviada num tópico também traz
message_thread_id. Passe esse valor junto com ochat_idpara publicar naquele tópico.
O endereço do passo 2 contém o seu token, e o token é a chave do seu bot. Não cole esse link em chats, prints ou documentos compartilhados e, se ele vazar, gere um token novo no @BotFather.
E se o chat ID não funcionar?
Quando uma requisição falha, a Bot API responde com uma descrição curta do erro, em inglês. As mais comuns:
- "chat not found". Compare o formato com a tabela: supergrupo e canal precisam do -100, e grupo básico precisa do sinal de menos. Confira também se o token é do bot que realmente está naquele chat.
- "bot is not a member of the channel chat" (ou "supergroup chat"). Adicione o bot ao chat, e ao canal como administrador.
- "bot can't initiate conversation with a user". A pessoa ainda não tocou em Iniciar no seu bot.
- "group chat was upgraded to a supergroup chat". O grupo agora tem um ID novo com -100, e o Telegram manda esse ID no mesmo erro, em
migrate_to_chat_id. Troque o ID antigo nas suas configurações. Os apps do Telegram convertem um grupo básico sozinhos quando um administrador usa algo que só supergrupos têm, como link público ou tópicos. - O bot não mostra ID nenhum para a mensagem encaminhada. O remetente esconde a conta na configuração de privacidade Mensagens Encaminhadas. Peça para ele abrir o bot por conta própria.
- A mensagem cai no tópico geral em vez do tópico certo. Adicione
message_thread_idcom o ID do tópico. - O ID chega estragado no seu código. Um número negativo de 13 dígitos estoura um inteiro de 32 bits. Guarde como inteiro de 64 bits ou como texto.
Próximo passo
Se você está escolhendo outras ferramentas para trabalhar com bots, como formatadores de JSON ou codificadores Base64, compare as opções no ranking de ferramentas para desenvolvedores. E se o bot ainda está sendo configurado, BotFather vs User Info Bot mostra de qual dos dois você precisa em cada etapa.



