API de Envio de Mensagens do Telegram: sendMessage e Contas Conectadas
sendMessage endpoint em curl, Python e Node, o limite estrutural que impede um bot de iniciar uma conversa com alguém primeiro, e como enviar a partir de uma conta real conectada do Telegram com o Unipile Iniciar Bate-papo e sendMessage.API do bot #: sendMessage
curl -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d chat_id=123456789 \
-d texto="Olá da Bot API" \
-d parse_mode="Markdown"Três maneiras de enviar uma mensagem no Telegram e qual escolher
sendMessageapi_id e api_hash, usado para construir seu próprio cliente do Telegram do zero (Telethon, Pyrogram, TDLib). A opção mais difícil de implementar e manter.api_id / api_hash par é um tópico separado. Para esse passo a passo, veja nosso guia completo para obtendo acesso à API do Telegram. Este guia abrange apenas o envio da mensagem após você ter as credenciais.Construa sua integração com o Telegram
Envie uma mensagem com o endpoint sendMessage da API do Bot
POST https://api.telegram.org/bot/sendMessage. A partir da Bot API 10.2 (14 de julho de 2026), os parâmetros obrigatórios permanecem inalterados: a chat_id e um text corpo.| Parâmetro | Tipo | Descrição |
|---|---|---|
chat_id Obrigatório | Inteiro ou String | Identificador único do chat de destino, ou @username para um canal público. |
text Obrigatório | String | Texto da mensagem, 1 a 4096 caracteres após a análise de entidades. |
modo de análise Opcional | String | MarkdownV2, HTML ou legado Markdown, para renderizar negrito, links e formatação de código. |
desativar_notificação Opcional | Booleano | Envia a mensagem silenciosamente, sem som de notificação push. |
parâmetros_de_resposta Opcional | Objeto | Envia a mensagem como uma resposta a uma mensagem existente no chat. |
curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": 123456789,
""text": "Seu pedido #4821 já foi enviado.",
"parse_mode": "MarkdownV2"
}'import solicitações
TOKEN = "123456:ABC-your-bot-token"
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
carga útil = {
"chat_id": 123456789,
"texto": ""Seu pedido #4821 já foi enviado."",
"modo de análise": "MarkdownV2"
}
response = pedidos.postagem(url, json=payload)
print(resposta.json())const TOKEN = "123456:ABC-your-bot-token";
const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
const response = await fetch(url, {
method: "POST",
cabeçalhos: { "Tipo-de-Conteúdo": "application/json" },
body: JSON.stringify({
chat_id: 123456789,
text: ""Seu pedido #4821 já foi enviado."",
modo de análise "MarkdownV2"
})
});
const dados = await resposta.json();
console.log(dados);Por que os bots não podem iniciar conversas e o que isso significa para você
sendMessage para isso chat_id falha totalmente. Isso funciona bem para bots de suporte e bots de notificação voluntária onde o usuário entra em contato primeiro. Isso falha completamente para casos de uso de saída: abordagens de vendas, mensagens de recuperação de conta, pings transacionais para um contato que nunca abriu seu bot.Construa o fluxo de contasconectadas
Enviar de uma conta real do Telegram com o Unipile
provedores: "TELEGRAM". Como a mensagem vem de uma conta real, não há restrição de bot apenas de "envie-me uma mensagem primeiro" para contornar. Veja o API do Telegram página do produto para a lista completa de endpoints.POST /chats com IDs de usuário e text. O Telegram permite apenas uma conversa individual por par de usuários, portanto, se um chat já existir, esta mesma chamada simplesmente entrega a mensagem nele em vez de criar uma duplicata.import solicitações
url = ""https://api6.unipile.com/v2/${accountId}/chats/send""
cabeçalhos = {"X-API-KEY": api_key}
dados = {
"id_da_conta"id_da_conta,
"ids_de_usuario": [telegram_user_id],
"texto": "Olá, dando seguimento à sua solicitação."
}
response = pedidos.postagem(url, headers=headers, data=data)
chat = resposta.json()
print(chat["chat_id"]) ID do destinatário do # para conversas individuaischat_id existe, chamar POST /chats/{chat_id}/messages apenas com o text corpo. Esta é a chamada a ser usada para cada mensagem de acompanhamento em uma conversa em andamento.const ID do chat = "CHAT_ID_FROM_STARTCHAT";
const formulário = new FormData();
formulário.anexar("texto", "Sua atualização está pronta para ser revisada.");
const response = await fetch(
`https://api6.unipile.com/v2/${accountId}/chats/${chatId}/messages/send`,
{
method: "POST",
cabeçalhos: { "X-API-KEY": apiKey },
corpo: formulário
}
);
const enviado = await resposta.json();
console.log(sent.message_id);chat_id retornado por Iniciar Bate-papo é o próprio ID do destinatário: assim que você souber o identificador do Telegram de um usuário, poderá reutilizá-lo diretamente para sendMessage sem uma etapa de consulta.Comece a construir com o Unipile
Enviar uma mensagem em um grupo do Telegram
POST /chats/{chat_id}/messages com o grupo chat_id e um text corpo. O que muda é o gerenciamento de participantes, que utiliza seus próprios endpoints.| Operação | Ponto de extremidade | Anotações |
|---|---|---|
| OBTER Listar participantes | /v2/{account_id}/chats/{chat_id}/participants | Retorna a lista de membros atuais do grupo. |
| POST Adicionar participante | /v2/{account_id}/chats/{chat_id}/participants | Requer que a permissão "Adicionar outros membros" esteja ativada no grupo. |
| DELETE Remover participante | /v2/{account_id}/chats/{chat_id}/participants | A conta vinculada deve ser um administrador do grupo. |
Melhores práticas para evitar restrições no Telegram
Construir com limites de envio seguros
Pronto para enviar mensagens do Telegram a partir de contas reais vinculadas?
API do Telegram Enviar Mensagem - FAQ
Perguntas comuns sobre o envio de mensagens do Telegram com a API de Bot e com contas vinculadas.
Chame o POST https://api.telegram.org/bot/sendMessage com um parâmetro `chat_id` e um parâmetro `text`. O token é fornecido pelo BotFather. A API do Bot é gratuita, e a versão atual é a 10.2, publicada em 14 de julho de 2026..
O Telegram exige que o usuário abra a conversa com o bot antes que o bot possa enviar qualquer coisa. Não existe nenhum endpoint que permita que um bot inicie um chat com um usuário arbitrário. Se o seu produto precisa iniciar o contato, um bot é a ferramenta errada e você precisa de uma conta de usuário real.
startChat abre uma nova conversa e envia a primeira mensagem em uma única chamada. sendMessage posta em uma conversa que já existe. O Telegram permite apenas um chat individual por usuário, portanto, chamar startChat com alguém com quem você já tem um chat simplesmente posta nesse chat existente.
Com a API do Bot, adicione o bot ao grupo e use o chat_id do grupo. A partir de uma conta conectada, envie para o ID do chat do grupo como qualquer outro chat. O Unipile também expõe listagem de participantes, adição e remoção em grupos, mas não oferece suporte a canais, comunidades ou transmissões.
O Telegram é compatível com MarkdownV2 e HTML. O MarkdownV2 exige escapar de uma longa lista de caracteres reservados, portanto, o HTML costuma ser a escolha mais segura quando o texto da mensagem é gerado dinamicamente.
Não use uma conta totalmente nova apenas para automação, aumente o volume gradualmente e nunca envie mais rápido do que uma mensagem a cada 10 a 20 segundos. O Telegram bane permanentemente por envio excessivo, spam e inflação de contadores, e iniciar muitas conversas que ficam sem resposta é um forte sinal de spam.
Ainda tem dúvidas? Nossa equipe está aqui para ajudar.