How people open a Mini App
What it is
A Mini App has several doors: the menu button in your bot's chat, links that work in any chat, a button on the bot's profile, buttons in messages and, for a few bots, the attachment menu. Links can carry a start parameter showing which post brought someone.
How to do it
- Menu button: /setmenubutton in @BotFather sets its text and address; `setChatMenuButton` changes it per person.
- Main Mini App (Bot Settings → Configure Mini App): a "Launch app" button on the… Main Mini App (Bot Settings → Configure Mini App): a "Launch app" button on the bot's profile and a place in the Apps tab of Search for people who have launched it.
- Links: `t.me/<bot>?startapp=<param>` opens the Main Mini App,… Links: `t.me/<bot>?startapp=<param>` opens the Main Mini App, `t.me/<bot>/<appname>?startapp=<param>` one of the bot's named apps, both in the chat where they were tapped. Add `&mode=compact` for half height or `&mode=fullscreen`.
- Buttons: an inline or keyboard button of type `web_app`.
- Join requests: since June 2026, a chat's guard bot can show applicants a Mini App.
- Attachment menu: `t.me/<bot>?startattach`, only for major advertisers on the… Attachment menu: `t.me/<bot>?startattach`, only for major advertisers on the Telegram Ad Platform; any bot can try it on the test server.
Watch out
- Inline and keyboard buttons with a Mini App work only in private chats with the bot.
- A keyboard-button app learns nothing about the person, and `sendData` closes it after sending up to 4096 bytes back.
- A named app opened from a link can't read or send messages in that chat; its `chat_instance` identifier is enough for shared games or boards in a group.
With Gem
Gem doesn't give you your own bot, menu button or attachment menu. Every project gets a link instead, `t.me/gembot?startapp=<name>`, that opens it inside Gem's Mini App with no Start needed.
Sources
- https://core.telegram.org/bots/webapps#implementing-mini-apps
- https://core.telegram.org/api/links#main-mini-app-links