aiogram

Danger

This version still in development!

MIT License Supported python versions Telegram Bot API Tests PyPi Package Version PyPi status Downloads [Telegram] aiogram live Codecov

aiogram modern and fully asynchronous framework for Telegram Bot API written in Python 3.7 with asyncio and aiohttp.

It helps you to make your bots faster and simpler.

Danger

Breaking News:

aiogram 3.0 has breaking changes.

It breaks backwards compatibility by introducing new breaking changes!

Features

Warning

Before start using aiogram is highly recommend to know how to work with asyncio.

Also if you has questions you can go to our community chats in Telegram:

Simple usage

from typing import Any

from aiogram import Bot, Dispatcher, types
from aiogram.dispatcher.handler import MessageHandler

TOKEN = "42:TOKEN"
dp = Dispatcher()


@dp.message(commands=["start"])
class MyHandler(MessageHandler):
    """
    This handler receive messages with `/start` command

    Usage of Class-based handlers
    """

    async def handle(self) -> Any:
        await self.event.answer(f"<b>Hello, {self.from_user.full_name}!</b>")


@dp.message(content_types=[types.ContentType.ANY])
async def echo_handler(message: types.Message, bot: Bot) -> Any:
    """
    Handler will forward received message back to the sender

    Usage of Function-based handlers
    """

    await bot.forward_message(
        from_chat_id=message.chat.id, chat_id=message.chat.id, message_id=message.message_id
    )


def main() -> None:
    bot = Bot(TOKEN, parse_mode="HTML")
    dp.run_polling(bot)


if __name__ == "__main__":
    main()