# KeyboardButton

Source: https://core.telegram.org/bots/api#keyboardbutton

[Documentation index](../llms.txt)

This object represents one button of the reply keyboard. At most one of the fields other than *text*, *icon\_custom\_emoji\_id*, and *style* must be used to specify the type of the button. For simple text buttons, *String* can be used instead of this object to specify the button text.

| Field | Type | Description |
| --- | --- | --- |
| text | String | Text of the button. If none of the fields other than *text*, *icon\_custom\_emoji\_id*, and *style* are used, it will be sent as a message when the button is pressed. |
| icon\_custom\_emoji\_id | String | *Optional*. Unique identifier of the custom emoji shown before the text of the button. Can only be used by bots that purchased additional usernames on [Fragment](https://fragment.com) or in the messages directly sent by the bot to private, group and supergroup chats if the owner of the bot has a Telegram Premium subscription. |
| style | String | *Optional*. Style of the button. Must be one of “danger” (red), “success” (green) or “primary” (blue). If omitted, then an app-specific style is used. |
| request\_users | [KeyboardButtonRequestUsers](keyboardbuttonrequestusers.md) | *Optional*. If specified, pressing the button will open a list of suitable users. Identifiers of selected users will be sent to the bot in a “users\_shared” service message. Available in private chats only. |
| request\_chat | [KeyboardButtonRequestChat](keyboardbuttonrequestchat.md) | *Optional*. If specified, pressing the button will open a list of suitable chats. Tapping on a chat will send its identifier to the bot in a “chat\_shared” service message. Available in private chats only. |
| request\_managed\_bot | [KeyboardButtonRequestManagedBot](keyboardbuttonrequestmanagedbot.md) | *Optional*. If specified, pressing the button will ask the user to create and share a bot that will be managed by the current bot. Available for bots that enabled management of other bots in the [@BotFather](https://t.me/BotFather) Mini App. Available in private chats only. |
| request\_contact | Boolean | *Optional*. If *True*, the user's phone number will be sent as a contact when the button is pressed. Available in private chats only. |
| request\_location | Boolean | *Optional*. If *True*, the user's current location will be sent when the button is pressed. Available in private chats only. |
| request\_poll | [KeyboardButtonPollType](keyboardbuttonpolltype.md) | *Optional*. If specified, the user will be asked to create a poll and send it to the bot when the button is pressed. Available in private chats only. |
| web\_app | [WebAppInfo](webappinfo.md) | *Optional*. If specified, the described [Web App](../external/bots/webapps.md) will be launched when the button is pressed. The Web App will be able to send a “web\_app\_data” service message. Available in private chats only. |
