Telegram Bot API
🌐 Português

Como criar um bot no Telegram grátis: do BotFather à primeira mensagem

· 7 min de leitura

Para criar bot no Telegram, abra o @BotFather, envie /newbot e escolha um nome e um username terminado em bot. Em menos de um minuto você recebe o token de acesso à Bot API — e é tudo grátis. Neste passo a passo você cria o bot, testa o token com getMe e envia a primeira mensagem com curl e Python.

O que você precisa

Não é preciso ter servidor para começar: com long polling, o bot roda no seu próprio computador.

Passo 1: criar o bot no @BotFather com /newbot

  1. No Telegram, procure @BotFather (o oficial tem o selo de verificado) e toque em Iniciar.
  2. Envie /newbot.
  3. Digite o nome de exibição, por exemplo Loja do João. Ele pode ter espaços e ser alterado depois com /setname.
  4. Digite o username: de 5 a 32 caracteres, só letras latinas, números e underline, terminando em bot — como loja_joao_bot ou LojaJoaoBot. Se já estiver em uso, o BotFather pede outro.
  5. Pronto: a resposta traz o link t.me/loja_joao_bot e, logo depois de Use this token to access the HTTP API, o token do bot.

Escolha o username com calma: diferente do nome, ele não pode ser trocado depois.

Passo 2: copie e guarde o token

O token tem o formato 123456789:AAEexampleTokenReplaceWithYours e funciona como a senha do bot: quem tiver o token controla o bot por completo. Não publique no GitHub, não coloque em código de front-end e não mande em prints. Guarde-o numa variável de ambiente:

export TELEGRAM_BOT_TOKEN="123456789:AAEexampleTokenReplaceWithYours"

Perdeu ou vazou o token? Veja como encontrar, testar e revogar o token do bot.

Passo 3: teste o token com getMe

Toda chamada segue o formato https://api.telegram.org/bot<token>/NOME_DO_METODO — repare no prefixo bot colado ao token. O método getMe é o teste mais simples:

curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe"

Com o token certo, a resposta traz os dados do bot (versão resumida):

{
  "ok": true,
  "result": {
    "id": 123456789,
    "is_bot": true,
    "first_name": "Loja do João",
    "username": "loja_joao_bot"
  }
}

Sem terminal? Abra o Bot API Tester no método getMe, cole o token e execute: a requisição sai do seu navegador direto para api.telegram.org.

Passo 4: envie a primeira mensagem (curl e Python)

Bots não podem iniciar conversas. Então abra o link do seu bot e toque em Iniciar — isso envia /start. Depois, busque os updates:

curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates"

Na resposta, procure "chat":{"id":123456789,...}: esse número é o seu chat id. Em grupos e canais o caminho é outro; veja como pegar o chat id no Telegram. Agora envie a mensagem com sendMessage:

curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{"chat_id": 123456789, "text": "Olá! Meu primeiro bot está funcionando."}'

O mesmo em Python, com requests:

import os
import requests

token = os.environ["TELEGRAM_BOT_TOKEN"]
resp = requests.post(
    f"https://api.telegram.org/bot{token}/sendMessage",
    json={"chat_id": 123456789, "text": "Olá do Python!"},
    timeout=10,
)
print(resp.json())  # {"ok": true, "result": {...}}

Passo 5: um bot em Python que responde

Para o bot reagir às mensagens, um programa precisa ficar rodando. Este eco usa long polling: timeout=30 mantém a conexão aberta até chegar algo, e offset confirma os updates já processados.

import os
import requests

API = f"https://api.telegram.org/bot{os.environ['TELEGRAM_BOT_TOKEN']}"
offset = None

while True:
    resp = requests.get(f"{API}/getUpdates",
                        params={"offset": offset, "timeout": 30}, timeout=40)
    for update in resp.json()["result"]:
        offset = update["update_id"] + 1
        msg = update.get("message")
        if msg and "text" in msg:
            requests.post(f"{API}/sendMessage", json={
                "chat_id": msg["chat"]["id"],
                "text": "Você disse: " + msg["text"],
            }, timeout=10)

Rode com python bot.py, escreva para o bot e pare com Ctrl+C.

Passo 6 (opcional): descrição e comandos

Os comandos também podem ser definidos pela API, com setMyCommands:

curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setMyCommands" \
  -H "Content-Type: application/json" \
  -d '{"commands": [{"command": "start", "description": "Começar"}, {"command": "ajuda", "description": "Como usar o bot"}]}'

Próximos passos: webhook, bibliotecas e Mini Apps

Problemas comuns

Perguntas frequentes

Criar bot no Telegram é grátis?

Sim. Registrar o bot no @BotFather e usar a Bot API não custa nada, nem para usuários nem para desenvolvedores. O único custo possível é a hospedagem do seu código, quando o bot precisar ficar online 24 horas.

Preciso saber programar para criar um bot no Telegram?

Para registrar o bot e pegar o token, não: basta conversar com o @BotFather. Para o bot responder, alguém precisa escrever a lógica — em Python, JavaScript ou outra linguagem — ou usar uma ferramenta de automação que se conecte à Bot API com o token.

Quais são as regras do username do bot?

De 5 a 32 caracteres, só letras latinas, números e underline, terminando em bot — por exemplo loja_joao_bot ou LojaJoaoBot. O nome de exibição pode ser trocado depois com /setname; o username, não.

Qual biblioteca usar para criar bot Telegram em Python?

As mais usadas são python-telegram-bot e aiogram (assíncrona); pyTelegramBotAPI é uma alternativa simples. Todas chamam por baixo os mesmos métodos da Bot API, como getUpdates e sendMessage.

Por que meu bot do Telegram não responde?

Criar o bot no BotFather não basta: um programa seu precisa estar rodando para receber os updates (via getUpdates ou webhook) e responder com sendMessage. Confira também o token com getMe e se não há um webhook ativo bloqueando o getUpdates.

Como enviar mensagens pela API do Telegram com sendMessage (curl, Python e JavaScript)

Use a API do Telegram para enviar mensagens com sendMessage: exemplos em curl, Python e JavaScript, HTML e MarkdownV2, botões inline e erros comuns.

Telegram bot token: como pegar o token do bot, verificar e revogar

Veja como pegar o token do bot do Telegram no @BotFather, achar o token de um bot existente, testar com getMe e revogar um token vazado.

Como configurar o webhook do bot do Telegram: setWebhook, secret_token e n8n

Configure o webhook do bot do Telegram: requisitos de HTTPS e portas, setWebhook com secret_token, getWebhookInfo, deleteWebhook e erros comuns no n8n.

Chat id do Telegram: como pegar o ID de usuário, grupo, canal e tópico com o seu bot

Descubra o chat id do Telegram para o seu bot: getUpdates em chat privado, grupos, supergrupos (-100), canais e tópicos, e o que fazer se vier vazio.