MTProto vs Bot API: la verdad que te ocultan los SaaS
Diferencias técnicas, comerciales y prácticas entre MTProto y Bot API: por qué casi todos los SaaS de Telegram usan Bot API y por qué eso te limita.
Hay una frase que se repite en casi todas las páginas de "automatización para Telegram": "powered by the official Telegram API". Suena bien hasta que entiendes que "oficial" puede significar dos cosas completamente distintas y que la decisión entre una y otra define lo que tu negocio puede y no puede hacer.
Esta guía es la conversación técnica honesta que ningún SaaS quiere tener contigo. Después de mover +12 millones de mensajes en producción con cuentas reales de creadores LatAm, vamos a desarmar las dos opciones —MTProto y Bot API— sin marketingspeak.
La diferencia en una frase
- Bot API es un servidor HTTP que Telegram expone para que crees bots. Un bot es una entidad nueva, identificada por
@usuario_bot, que actúa con su propio identificador. - MTProto es el protocolo binario de bajo nivel que usa la app oficial de Telegram para comunicarse con los servidores. Conectarse por MTProto significa usar Telegram como si fueras un usuario real.
Esto suena pequeño. No lo es. Es la diferencia entre vender postres desde un food truck y vender postres desde tu propia panadería con dirección y dueño.
Bot API: rápido, simple, limitado
La Bot API es la entrada favorita del 90% de los desarrolladores. Y por buenas razones:
- HTTP plano: pegas a
https://api.telegram.org/bot<TOKEN>/sendMessagey listo - Sin login real: registras un bot con
@BotFather, te da un token, ese token es tu identidad - Webhooks: Telegram te avisa de mensajes nuevos en tu URL
- Documentación limpia: core.telegram.org/bots/api
Si solo necesitas un bot que responde dentro de un canal o grupo que ya te invitó, Bot API es perfecto. El problema empieza cuando quieres hacer marketing masivo.
Lo que la Bot API NO puede hacer
Esta es la lista que ningún SaaS publica en su landing:
- Iniciar una conversación con un usuario que no te haya escrito primero. Cero. Imposible. Es la primera regla del bot.
- Leer mensajes de otros chats. Tu bot solo ve mensajes donde lo mencionan (
/comando @tu_bot) o donde está activado el modo privacy. - Publicar Stories. Las Stories existen solo para usuarios humanos. Bot API no expone los métodos.
- Acceder a Saved Messages ni al historial de chats personales.
- Enviar a más de 30 mensajes por segundo total por bot (no por chat). Para mass messaging serio es ridículo.
- Resolver usernames de canales/grupos que el bot no haya tocado antes.
Si tu plan es "vamos a contactar a 50.000 usuarios de Telegram con una promoción de Navidad", Bot API simplemente no es una opción. Punto.
MTProto: la API que usa la app oficial
MTProto es lo que tu Telegram en el celular usa. Es binario, está cifrado, y expone todas las capacidades del protocolo. Hablar MTProto significa hablar el mismo idioma que la app: puedes loguearte con un número, leer todos tus chats, publicar Stories, conectar canales como administrador y enviar mensajes a desconocidos dentro de los límites de privacidad.
La librería más madura para Node.js es GramJS (lee Qué es GramJS y por qué importa). En Python existe Telethon, y en Go hay implementaciones más experimentales.
Lo que MTProto SÍ puede hacer
- Login con número de teléfono + código SMS, idéntico a un usuario real
- Enviar mensajes a cualquier persona o canal que tu cuenta pueda alcanzar según las reglas de privacidad
- Publicar Stories vía
stories.SendStorycon todas las opciones de privacidad - Acceder a Saved Messages, archivos, grupos secretos, todo
- Crear y administrar canales/grupos programáticamente
- Usar Telegram Business (greeting, away, quick replies, chat links)
- Procesar miles de mensajes por segundo distribuyendo entre cuentas
La contrapartida es que MTProto es complejo. Negociar auth_key, manejar DC (data centers), implementar reconexión con seq_no, mantener el cliente vivo: no es API REST.
La trampa comercial del "usamos la API oficial"
Aquí viene la parte que decide tu negocio.
Casi todos los SaaS de Telegram LatAm publican páginas que dicen "marketing masivo en Telegram" pero bajo el capó usan Bot API. Hacen esto porque es 50 veces más barato de implementar. El usuario nuevo no lo nota hasta que pasan dos cosas:
- Pide enviar a una base de leads y el SaaS le dice "el destinatario debe escribirle al bot primero"
- Pide publicar Stories en su canal y el SaaS le dice "esa función no está disponible"
En ese momento ya pagó tres meses. El SaaS cobró. El cliente se va.
Comparativa lado a lado
| ✗ Bot API | ✓ MTProto (Vega Punk) |
|---|
Por qué tu app de Telegram falla cuando llegas a 50 cuentas
El problema técnico real con MTProto es que cada cuenta es una conexión persistente al data center de Telegram. Si quieres tener 200 cuentas activas a la vez, necesitas 200 conexiones TCP/TLS abiertas, cada una manejando seq_no, salt, session_id, retransmisiones, etc.
Si usas un proceso por cuenta, te quedas sin memoria a las 50 cuentas (cada cliente GramJS pesa 30-80 MB). Si usas un solo proceso, los workers se pisan los auth_key (lee AUTH_KEY_DUPLICATED) y Telegram empieza a desconectarte cuentas en cascada.
La solución es arquitectura por pool de cuentas + locks distribuidos + workers separados (cómo se hace de verdad). Es ingeniería de varios meses, no un script de fin de semana.
¿Cuándo SÍ tiene sentido usar Bot API?
Bot API no es maligna. Hay casos donde es la decisión correcta:
- Bots de servicio dentro de un canal/grupo: moderación, respuestas a comandos, mini juegos. Aquí Bot API es ideal.
- Notificaciones a usuarios que ya activaron el bot: alertas de pedido, recordatorios, soporte. Los usuarios opt-in.
- Mini Apps de Telegram: las TMA viven dentro de un bot.
- Pagos con Stars: Bot API tiene métodos nativos para Telegram Stars.
Lo que NO debes esperar de Bot API es marketing masivo a desconocidos, Stories o cualquier flujo que requiera actuar como un humano.
El error de empezar con Bot API y "migrar después"
Algunos equipos arrancan con Bot API "porque es más rápido" pensando en migrar a MTProto cuando crezcan. Es trampa. La razón es que la base de usuarios que reuniste con Bot API son personas que escribieron al bot. Cuando migras a MTProto necesitas su número de teléfono o que tu cuenta personal los pueda alcanzar, y nadie te lo da.
Si tu producto requiere alcanzar usuarios fríos, empezar en Bot API es perder 12 meses construyendo encima de cimientos que no soportan tu producto. Mejor invertir desde el día 1 en MTProto, o usar una plataforma que ya lo construyó.
La señal del badge
Esto suena tonto pero es importante: las cuentas Bot API tienen un badge gris "BOT" debajo del nombre en la app. Las cuentas MTProto se ven como cualquier usuario humano. Para una marca personal en LatAm, ese detalle visual decide si la persona contesta o ignora el mensaje.
Vega Punk usa MTProto precisamente para que tus cuentas se vean iguales a las de un humano que te está escribiendo. No es un truco: es el comportamiento normal del protocolo cuando te conectas con tu propio número.
Lo que dice la documentación oficial (y lo que no dice)
Telegram tiene dos sitios de docs distintos que casi nadie cruza:
- core.telegram.org/bots/api — Bot API
- core.telegram.org/api — MTProto (TL schema, layer actual, métodos)
Lee el segundo. Vas a encontrar métodos como stories.SendStory, account.UpdateBusinessGreetingMessageSettings, channels.JoinChannel, messages.SendMultiMedia que no existen en Bot API. Esa es la lista de cosas que solo MTProto puede hacer.
Seguridad: ¿es peligroso usar MTProto?
Pregunta legítima. La respuesta corta: MTProto es seguro si las sesiones se cifran al guardar y se manejan con cuidado. La respuesta larga vive en GramJS sessions y seguridad real.
En Vega Punk las sesiones se cifran con AES-256-GCM antes de tocar la base de datos. La clave nunca está en el código: vive en una variable de entorno (ENCRYPTION_KEY) que solo el servidor de producción conoce.
El veredicto
Si tu producto es un bot que vive dentro de un canal o grupo y los usuarios opt-in, usa Bot API. Es más simple, más estable, y suficiente.
Si tu producto necesita alcanzar usuarios que no te han escrito, publicar Stories, manejar múltiples cuentas o cualquier flujo de marketing masivo, necesitas MTProto. Y necesitas implementarlo bien, o usar una plataforma que ya lo hizo.
Tu próximo paso depende del lugar donde estés:
- ¿No sabes qué cliente Telegram conviene a tu stack? Compara Telethon vs GramJS.
- ¿Vas a implementarlo tú? Empieza por MTProto explicado para no-técnicos.
- ¿Solo quieres resultados sin pelear con el protocolo? Prueba Vega Punk gratis y te ahorras los 12 meses.