Preview
reply_markup
Inline versus reply keyboards
Inline keyboards are attached to one message. Their buttons open URLs, launch Mini Apps or send a callback_query to your bot without posting anything in the chat; always answer it with answerCallbackQuery. Reply keyboards replace the user's keyboard and simply send the button text as a normal message, which is handy for menus and for requesting a contact or location.
- callback_data is limited to 64 bytes (UTF-8). Store a short key such as "vote:yes" and keep the details server-side.
- Never trust callback_data as authorization: re-check the user on every press.
- Remove a reply keyboard with {"remove_keyboard": true}.
Related: Telegram API builder, Telegram bot guide.