Welcome to FTMGram
==================

.. image:: _static/logo.png
   :align: center
   :width: 170px
   :alt: FTMGram

.. raw:: html

   <p align="center">
       <b>Telegram MTProto API Framework for Python</b>
       <br>
       <a href="https://ftmgram.ftmbotzx.dev">Homepage</a> •
       <a href="https://github.com/ftmdevz/ftmgram">Development</a> •
       <a href="changelog.html">Releases</a> •
       <a href="https://t.me/ftmdeveloperz">News</a>
   </p>

.. note::

   **FTMGram v3.3.0** is an elegant, modern and asynchronous Telegram MTProto API framework
   delivering full **Bot API 10.3** support (In-Message Buttons, AI Draft Streaming, Ephemeral Overlays, Checklists, Stars) with zero breaking changes for existing FTMGram/Kurigram projects.

.. code-block:: python

   from ftmgram import Client, filters

   app = Client("my_account")

   @app.on_message(filters.private)
   async def hello(client, message):
       await message.reply("Hello from FTMGram!")

   app.run()

**FTMGram** is a modern, elegant and asynchronous MTProto API framework. It enables you to easily
interact with the main Telegram API through a user account (custom client) or a bot identity (bot
API alternative) using Python.

How the Documentation is Organized
-----------------------------------

* **Getting Started**

  * :doc:`intro/quickstart` — A quick overview showing the first steps to take.
  * :doc:`intro/install` — Detailed instructions on how to install FTMGram.
  * :doc:`intro/migration` — Migrating from FTMGram or Kurigram in under 1 minute.
  * :doc:`intro/client` — Configuring the Client and managing session storage.

* **API Reference**

  * :doc:`api/client` — Complete reference for all Client methods.
  * :doc:`api/types` — Detailed descriptions of all Telegram data types and models.
  * :doc:`api/bound-methods` — Methods directly bound to data types (e.g. ``Message.reply()``).
  * :doc:`api/enums` — All Enumeration types.
  * :doc:`api/handlers` — Update handler objects and decorators.
  * :doc:`api/filters` — Built-in and custom update filters.
  * :doc:`api/errors` — RPC and network error exceptions.

* **Topics & Guides**

  * :doc:`topics/rich-messages` — Structured Rich Messages (Bot API 10.3).
  * :doc:`topics/intext-buttons` — In-Message Buttons (``<tg-button-row>``).
  * :doc:`topics/streaming-drafts` — Live AI Response Token Streaming & Drafts.
  * :doc:`topics/ephemeral` — Ephemeral Messages & In-place user overlays.
  * :doc:`topics/checklists` — Interactive Checklists & Task Lists.
  * :doc:`topics/poll-media` — Link Poll Media.
  * :doc:`topics/storage-engines` — File, In-Memory, and Session Strings.
  * :doc:`topics/raw-mtproto` — Calling Telegram's Raw MTProto API directly.

* **Meta**

  * :doc:`changelog` — History of all releases and What's New in v3.3.0.
  * :doc:`faq` — Frequently Asked Questions.
  * :doc:`support` — Getting help and Telegram community.

.. toctree::
   :hidden:
   :maxdepth: 2
   :caption: Getting Started

   intro/quickstart
   intro/install
   intro/migration
   intro/client

.. toctree::
   :hidden:
   :maxdepth: 2
   :caption: API Reference

   api/client
   api/types
   api/bound-methods
   api/enums
   api/handlers
   api/filters
   api/errors

.. toctree::
   :hidden:
   :maxdepth: 2
   :caption: Topics & Guides

   topics/rich-messages
   topics/intext-buttons
   topics/streaming-drafts
   topics/ephemeral
   topics/checklists
   topics/poll-media
   topics/storage-engines
   topics/raw-mtproto

.. toctree::
   :hidden:
   :maxdepth: 2
   :caption: Meta

   changelog
   faq
   support
