Hide navigation sidebar
Hide table of contents sidebar
PTB has undergone significant changes in v20. Please read the documentation carefully and also check out the transition guide in the wiki.
Back to top
Toggle table of contents sidebar

# ReplyKeyboardMarkup

class telegram.ReplyKeyboardMarkup(keyboard, resize_keyboard=None, one_time_keyboard=None, selective=None, input_field_placeholder=None, is_persistent=None, *, api_kwargs=None)

  Bases: `telegram.TelegramObject`

  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 size of `keyboard` and all the buttons are equal.

  A reply keyboard with reply options.

  Use In

  - `telegram.Bot.copy_message()`

  - `telegram.Bot.send_animation()`

  - `telegram.Bot.send_audio()`

  - `telegram.Bot.send_contact()`

  - `telegram.Bot.send_dice()`

  - `telegram.Bot.send_document()`

  - `telegram.Bot.send_location()`

  - `telegram.Bot.send_message()`

  - `telegram.Bot.send_photo()`

  - `telegram.Bot.send_poll()`

  - `telegram.Bot.send_sticker()`

  - `telegram.Bot.send_venue()`

  - `telegram.Bot.send_video_note()`

  - `telegram.Bot.send_video()`

  - `telegram.Bot.send_voice()`

  See also

  An another kind of keyboard would be the `telegram.InlineKeyboardMarkup`.

  Examples

  - Example usage: 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.

  - Conversation Bot

  - Conversation Bot 2

  Parameters:

    - keyboard (Sequence[Sequence[`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 `telegram.Message` object.

      2. If the bot’s message is a reply to a message in the same chat and forum topic,

           sender of the original message.

      Defaults to `False`.

    - input_field_placeholder (`str`, optional) –

      The placeholder to be shown in the input field when the keyboard is active; `1`- `64` characters.

      New in version 13.7.

    - is_persistent (`bool`, optional) –

      Requests clients to always show the keyboard when the regular keyboard is hidden. Defaults to `False`, in which case the custom keyboard can be hidden and opened with a keyboard icon.

      New in version 20.0.

  keyboard

    Array of button rows, each represented by an Array of `telegram.KeyboardButton` objects.

    Type:

      Tuple[Tuple[`telegram.KeyboardButton`]]

  resize_keyboard

    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.

    Type:

      `bool`

  one_time_keyboard

    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`.

    Type:

      `bool`

  selective

    Optional. Show the keyboard to specific users only. Targets:

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

    2. If the bot’s message is a reply to a message in the same chat and forum topic,

         sender of the original message.

    Defaults to `False`.

    Type:

      `bool`

  input_field_placeholder

    Optional. The placeholder to be shown in the input field when the keyboard is active; `1`- `64` characters.

    New in version 13.7.

    Type:

      `str`

  is_persistent

    Optional. Requests clients to always show the keyboard when the regular keyboard is hidden. If `False`, the custom keyboard can be hidden and opened with a keyboard icon.

    New in version 20.0.

    Type:

      `bool`

  MAX_INPUT_FIELD_PLACEHOLDER = 64

    `telegram.constants.ReplyLimit.MAX_INPUT_FIELD_PLACEHOLDER`

    New in version 20.0.

  MIN_INPUT_FIELD_PLACEHOLDER = 1

    `telegram.constants.ReplyLimit.MIN_INPUT_FIELD_PLACEHOLDER`

    New in version 20.0.

  classmethod from_button(button, resize_keyboard=False, one_time_keyboard=False, selective=False, input_field_placeholder=None, is_persistent=None, **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 to a message in the same chat and forum topic,

             sender of the original message.

        Defaults to `False`.

      - input_field_placeholder (`str`) –

        Optional. The placeholder shown in the input field when the reply is active.

        New in version 13.7.

      - is_persistent (`bool`) –

        Optional. Requests clients to always show the keyboard when the regular keyboard is hidden. Defaults to `False`, in which case the custom keyboard can be hidden and opened with a keyboard icon.

        New in version 20.0.

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

    Shortcut for:

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

    Return a ReplyKeyboardMarkup from a single column of KeyboardButtons.

    Parameters:

      - button_column (Sequence[`telegram.KeyboardButton` | `str`]) –

        The button to use in the markup.

        Changed in version 20.0: Accepts any `collections.abc.Sequence` as input instead of just a list.

      - 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 to a message in the same chat and forum topic,

             sender of the original message.

        Defaults to `False`.

      - input_field_placeholder (`str`) –

        Optional. The placeholder shown in the input field when the reply is active.

        New in version 13.7.

      - is_persistent (`bool`) –

        Optional. Requests clients to always show the keyboard when the regular keyboard is hidden. Defaults to `False`, in which case the custom keyboard can be hidden and opened with a keyboard icon.

        New in version 20.0.

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

    Shortcut for:

        ReplyKeyboardMarkup([button_row], **kwargs)

    Return a ReplyKeyboardMarkup from a single row of KeyboardButtons.

    Parameters:

      - button_row (Sequence[`telegram.KeyboardButton` | `str`]) –

        The button to use in the markup.

        Changed in version 20.0: Accepts any `collections.abc.Sequence` as input instead of just a list.

      - 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 to a message in the same chat and forum topic,

             sender of the original message.

        Defaults to `False`.

      - input_field_placeholder (`str`) –

        Optional. The placeholder shown in the input field when the reply is active.

        New in version 13.7.

      - is_persistent (`bool`) –

        Optional. Requests clients to always show the keyboard when the regular keyboard is hidden. Defaults to `False`, in which case the custom keyboard can be hidden and opened with a keyboard icon.

        New in version 20.0.