Respuesta corta
- Python: python-telegram-bot si quieres ayudantes incluidos y buena documentación; aiogram si te gustan los routers, middlewares y aiohttp.
- TypeScript / JavaScript: grammY. Tiene mantenimiento activo, adopta pronto las nuevas versiones de la Bot API y corre en Node.js, Deno y plataformas serverless como Cloudflare Workers.
- Telegraf sigue funcionando en proyectos existentes, pero su última versión en npm es de febrero de 2024, así que para proyectos nuevos conviene grammY.
Comparación
| Librería | Lenguaje | Última versión | Licencia | Notas |
|---|---|---|---|---|
| python-telegram-bot | Python 3.10+ | 22.8 (junio de 2026) | LGPL-3.0 | ConversationHandler, JobQueue, persistencia, servidor de webhooks integrado |
| aiogram | Python 3.10+ | 3.31.0 (ago. 2026), Bot API 10.3 | MIT | Routers, middlewares, máquina de estados, aiohttp |
| grammY | TypeScript / JS | 1.46.0 (ago. 2026), Bot API 10.3 | MIT | Node.js, Deno, adaptadores serverless, muchos plugins |
| Telegraf | TypeScript / JS | 4.16.3 (feb. 2024) | MIT | API madura; la v5 lleva mucho tiempo en desarrollo |
Versiones y licencias revisadas el 2026-10-22 en PyPI, npm y las páginas de GitHub de cada proyecto. Revisa el changelog antes de actualizar.
El mismo bot en cada una
# python-telegram-bot
from telegram.ext import Application, CommandHandler
async def start(update, context):
await update.message.reply_text("Hi")
app = Application.builder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
# aiogram 3
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message):
await message.answer("Hi")
asyncio.run(dp.start_polling(Bot(TOKEN)))
// grammY
import { Bot } from "grammy";
const bot = new Bot(TOKEN);
bot.command("start", (ctx) => ctx.reply("Hi"));
bot.start();
Cómo elegir
- Usa el lenguaje que tu equipo ya conoce; la Bot API es la misma por debajo.
- Webhook serverless en Workers o Deno Deploy: grammY.
- Formularios de varios pasos y recordatorios en Python con poco código: python-telegram-bot.
- Base de código Python grande con routers modulares y middlewares: aiogram.
- Comprueba que la librería soporte las funciones de la Bot API que necesitas (por ejemplo pagos o cuentas de empresa) antes de decidir.
El hosting es la misma decisión para todas: el polling necesita un proceso siempre encendido y los webhooks pueden correr en serverless. Mejor hosting para bots de Telegram · Railway · Vultr
Guías y herramientas relacionadas
- Guía: bot de Telegram en Python
- Tutorial: bot de Telegram con grammY
- Teclados inline de Telegram
- Hosting gratis para bots de Telegram
- Webhook vs polling: impacto en el hosting
- Mejor hosting para bots de Telegram
Preguntas frecuentes
¿Qué librería de Telegram es mejor para empezar?
python-telegram-bot en Python y grammY en JavaScript tienen documentación extensa para principiantes. Elige por lenguaje.
¿Telegraf está abandonado?
No está archivado y sigue funcionando, pero su última versión en npm fue la 4.16.3 en febrero de 2024. Para proyectos nuevos, grammY es la opción con mantenimiento activo.
¿Puedo usar la Bot API sin librería?
Sí. Es HTTPS con JSON. Las librerías agregan tipos, enrutamiento de updates, reintentos y ayudantes para webhooks.