telegram.ReplyKeyboardMarkup

class telegram.ReplyKeyboardMarkup(keyboard, resize_keyboard=False, one_time_keyboard=False, selective=False, **_kwargs)

Bases: telegram.replymarkup.ReplyMarkup

This object represents a custom keyboard with reply options.

Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their the size of keyboard and all the buttons are equal.

Example

A user requests to change the bot’s language, bot replies to the request with a keyboard to select the new language. Other users in the group don’t see the keyboard.

Parameters
  • keyboard (List[List[str | telegram.KeyboardButton]]) – Array of button rows, each represented by an Array of telegram.KeyboardButton objects.

  • resize_keyboard (bool, optional) – Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to False, in which case the custom keyboard is always of the same height as the app’s standard keyboard.

  • one_time_keyboard (bool, optional) – Requests clients to hide the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False.

  • selective (bool, optional) –

    Use this parameter if you want to show the keyboard to specific users only. Targets:

    1. Users that are @mentioned in the text of the Message object.

    2. If the bot’s message is a reply (has reply_to_message_id), sender of the original message.

    Defaults to False.

  • **kwargs (dict) – Arbitrary keyword arguments.

keyboard

Array of button rows.

Type

List[List[telegram.KeyboardButton | str]]

resize_keyboard

Optional. Requests clients to resize the keyboard.

Type

bool

one_time_keyboard

Optional. Requests clients to hide the keyboard as soon as it’s been used.

Type

bool

selective

Optional. Show the keyboard to specific users only.

Type

bool

classmethod from_button(button, resize_keyboard=False, one_time_keyboard=False, selective=False, **kwargs)

Shortcut for:

ReplyKeyboardMarkup([[button]], **kwargs)

Return a ReplyKeyboardMarkup from a single KeyboardButton.

Parameters
  • button (telegram.KeyboardButton | str) – The button to use in the markup.

  • resize_keyboard (bool, optional) – Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to False, in which case the custom keyboard is always of the same height as the app’s standard keyboard.

  • one_time_keyboard (bool, optional) – Requests clients to hide the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False.

  • selective (bool, optional) –

    Use this parameter if you want to show the keyboard to specific users only. Targets:

    1. Users that are @mentioned in the text of the Message object.

    2. If the bot’s message is a reply (has reply_to_message_id), sender of the

      original message.

    Defaults to False.

  • **kwargs (dict) – Arbitrary keyword arguments.

classmethod from_column(button_column, resize_keyboard=False, one_time_keyboard=False, selective=False, **kwargs)

Shortcut for:

ReplyKeyboardMarkup([[button] for button in button_column], **kwargs)

Return a ReplyKeyboardMarkup from a single column of KeyboardButtons.

Parameters
  • button_column (List[telegram.KeyboardButton | str]) – The button to use in the markup.

  • resize_keyboard (bool, optional) – Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to False, in which case the custom keyboard is always of the same height as the app’s standard keyboard.

  • one_time_keyboard (bool, optional) – Requests clients to hide the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False.

  • selective (bool, optional) –

    Use this parameter if you want to show the keyboard to specific users only. Targets:

    1. Users that are @mentioned in the text of the Message object.

    2. If the bot’s message is a reply (has reply_to_message_id), sender of the

      original message.

    Defaults to False.

  • **kwargs (dict) – Arbitrary keyword arguments.

classmethod from_row(button_row, resize_keyboard=False, one_time_keyboard=False, selective=False, **kwargs)

Shortcut for:

ReplyKeyboardMarkup([button_row], **kwargs)

Return a ReplyKeyboardMarkup from a single row of KeyboardButtons.

Parameters
  • button_row (List[telegram.KeyboardButton | str]) – The button to use in the markup.

  • resize_keyboard (bool, optional) – Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to False, in which case the custom keyboard is always of the same height as the app’s standard keyboard.

  • one_time_keyboard (bool, optional) – Requests clients to hide the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False.

  • selective (bool, optional) –

    Use this parameter if you want to show the keyboard to specific users only. Targets:

    1. Users that are @mentioned in the text of the Message object.

    2. If the bot’s message is a reply (has reply_to_message_id), sender of the

      original message.

    Defaults to False.

  • **kwargs (dict) – Arbitrary keyword arguments.

to_dict()

See telegram.TelegramObject.to_dict().