API de Telegram Enviar Mensaje: sendMessage y Cuentas Conectadas
sendMessage endpoint en curl, Python y Node, el límite estructural que impide que un bot le escriba a alguien primero, y cómo enviar desde una cuenta de Telegram real conectada con Unipile Iniciar chat y sendMessage.API del bot #: sendMessage
curl -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d chat_id=123456789 \
-d texto="Hola desde la API de Bot" \
-d parse_mode="Markdown"Tres formas de enviar un mensaje de Telegram y cuál elegir
sendMessageapi_id y api_hash, utilizado para construir tu propio cliente de Telegram desde cero (Telethon, Pyrogram, TDLib). La opción más pesada de implementar y mantener.api_id / api_hash el emparejamiento es un tema aparte. Para ver ese paso a paso, consulta nuestra guía completa sobre obtener acceso a la API de Telegram. Esta guía solo cubre el envío del mensaje una vez que tengas las credenciales.Crea tu integración de Telegram
Enviar un mensaje con el endpoint sendMessage de la Bot API
PUBLICACIÓN https://api.telegram.org/bot/sendMessage. A partir de la Bot API 10.2 (14 de julio de 2026), los parámetros requeridos no han cambiado: a chat_id y un text cuerpo.| Parámetro | Tipo | Descripción |
|---|---|---|
chat_id Requerido | Entero o Cadena | Identificador único del chat de destino, o @username para un canal público. |
text Requerido | Cadena | Texto del mensaje, de 1 a 4096 caracteres después del análisis de entidades. |
modo de análisis Opcional | Cadena | MarkdownV2, HTML o legado Markdown, para aplicar formato de negrita, enlaces y código. |
desactivar_notificación Opcional | Booleano | Envía el mensaje en silencio, sin sonido de notificación push. |
parámetros_de_respuesta Opcional | Objeto | Envía el mensaje como respuesta a un mensaje existente en el chat. |
curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": 123456789,
""text": "Tu pedido #4821 ya se ha enviado.",
"parse_mode": "MarkdownV2"
}'import solicita
TOKEN = "123456:ABC-your-bot-token"
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
carga útil = {
"chat_id": 123456789,
"texto": "Tu pedido #4821 ya se ha enviado".",
"modo_analisis": "MarkdownV2"
}
response = solicitudes.Correo electrónico:(url, json=payload)
print(respuesta.json())const TOKEN = "123456:ABC-your-bot-token";
const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
const response = await fetch(url, {
method: "PUBLICAR",
cabeceras: { "Tipo-Contenido": "application/json" },
body: JSON.stringify({
chat_id: 123456789,
text: "Tu pedido #4821 ya se ha enviado".",
modo de análisis "MarkdownV2"
})
});
const datos = await respuesta.json();
consola.log(datos);Por qué los bots no pueden enviar mensajes primero y qué significa eso para ti
sendMessage a eso chat_id falla por completo. Esto está bien para bots de asistencia y de notificación voluntaria en los que el usuario se pone en contacto primero. Falla por completo en los casos de uso salientes: prospección comercial, mensajes de recuperación de cuentas, pings transaccionales a un contacto que nunca ha abierto tu bot.Construye el flujo de cuenta conectada
Enviar desde una cuenta real de Telegram con Unipile
proveedores: "TELEGRAM". Debido a que el mensaje proviene de una cuenta real, no hay ninguna restricción de "escríbeme primero" exclusiva de bots que sortear. Ve el API de Telegram página de producto para la lista completa de puntos de conexión.POST /chats con ids_de_usuario y text. Telegram solo permite una conversación individual por cada par de usuarios, por lo que si ya existe un chat, esta misma llamada simplemente entrega el mensaje en él en lugar de crear un duplicado.import solicita
url = "https://api6.unipile.com/v2/${accountId}/chats/send"
cabeceras = {"Clave API X": api_key}
datos = {
"account_id": id_cuenta,
"IDs de usuario": [telegram_user_id],
"texto": "Hola, dando seguimiento a su solicitud."
}
response = solicitudes.Correo electrónico:(url, headers=headers, data=data)
chat = respuesta.json()
print(chat["chat_id"]) ID del destinatario de # para chats 1:1chat_id existe, llamada POST /chats/{chat_id}/mensajes con solo el text cuerpo. Esta es la llamada que debe utilizarse para cada mensaje de seguimiento en una conversación en curso.const ID de chat = "CHAT_ID_FROM_STARTCHAT";
const formulario = new DatosDeFormulario();
formulario.añadir("texto", "Tu actualización está lista para revisar.");
const response = await fetch(
`https://api6.unipile.com/v2/${accountId}/chats/${chatId}/messages/send`,
{
method: "PUBLICAR",
cabeceras: { "Clave API X": apiKey },
cuerpo: formulario
}
);
const enviado = await respuesta.json();
consola.log(sent.message_id);chat_id devuelto por Iniciar chat es el propio identificador del destinatario: una vez que conoces el identificador de Telegram de un usuario, puedes reutilizarlo directamente para sendMessage sin un paso de búsqueda.Empieza a construir con Unipile
Enviar un mensaje dentro de un grupo de Telegram
POST /chats/{chat_id}/mensajes con el del grupo chat_id y un text cuerpo. Lo que cambia es la gestión de participantes, que utiliza sus propios puntos de conexión.| Operación | Punto final | Notas |
|---|---|---|
| GET Lista de participantes | /v2/{account_id}/chats/{chat_id}/participants | Devuelve la lista actual de miembros del grupo. |
| POST Añadir participante | /v2/{account_id}/chats/{chat_id}/participants | Se requiere que el permiso "Añadir otros miembros" esté habilitado en el grupo. |
| BORRAR Eliminar participante | /v2/{account_id}/chats/{chat_id}/participants | La cuenta vinculada debe ser un administrador del grupo. |
Mejores prácticas para evitar restricciones en Telegram
Construir con límites de envío seguros
¿Listo para enviar mensajes de Telegram desde cuentas reales vinculadas?
Crea tu integración de Telegram
Leer la documentación de la API
Consulta la página de la API de Telegram
Comience con nuestra guía de acceso
•
Explora la página de la API de Telegram
API de Telegram: Enviar mensaje - Preguntas frecuentes
Preguntas frecuentes sobre el envío de mensajes de Telegram con la Bot API y con cuentas vinculadas.
Realiza una llamada POST a https://api.telegram.org/bot/sendMessage con un parámetro «chat_id» y otro «text». El token lo proporciona BotFather. La API de Bot es gratuita y la versión actual es la 10.2, publicada el 14 de julio de 2026..
Telegram requiere que el usuario abra la conversación con el bot antes de que el bot pueda enviar nada. No hay ningún punto de conexión que permita a un bot iniciar un chat con un usuario arbitrario. Si su producto necesita iniciar el contacto, un bot es la herramienta incorrecta y necesita una cuenta de usuario real.
startChat abre una nueva conversación y envía el primer mensaje en una sola llamada. sendMessage publica en una conversación que ya existe. Telegram solo permite un chat individual por usuario, por lo que llamar a startChat con alguien con quien ya tienes un chat simplemente publica en ese chat existente.
Con la API de Bot, añade el bot al grupo y utiliza el chat_id del grupo. Desde una cuenta conectada, envía al ID de chat del grupo como cualquier otro chat. Unipile también expone la lista de participantes, la adición y la eliminación en grupos, pero no admite canales, comunidades ni difusiones.
Telegram es compatible con MarkdownV2 y HTML. MarkdownV2 requiere escapar una larga lista de caracteres reservados, por lo que HTML suele ser la opción más segura cuando el texto del mensaje se genera dinámicamente.
No utilices una cuenta completamente nueva exclusivamente para la automatización, aumenta el volumen gradualmente y nunca envíes más rápido de un mensaje cada 10 o 20 segundos. Telegram prohíbe permanentemente por inundación, envío de correo no deseado e inflación de contadores, y iniciar muchas conversaciones que se quedan sin respuesta es una fuerte señal de correo no deseado.
¿Aún tiene preguntas? Nuestro equipo está aquí para ayudarle.