Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
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. Not supported in channels and for messages sent on behalf of a Telegram Business account.

  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_paid_media()`

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

  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.

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

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

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

    Added in version 20.0.

    Type:

      `bool`

  MAX_INPUT_FIELD_PLACEHOLDER = 64

    `telegram.constants.ReplyLimit.MAX_INPUT_FIELD_PLACEHOLDER`

    Added in version 20.0.

  MIN_INPUT_FIELD_PLACEHOLDER = 1

    `telegram.constants.ReplyLimit.MIN_INPUT_FIELD_PLACEHOLDER`

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

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

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

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

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

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

        Added in version 20.0.