<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span><spanclass="token punctuation">(</span><span>with<spanclass="token operator"> = </span><ahref="-keyboard-button-serializer/index.html">KeyboardButtonSerializer::class</a></span><wbr></wbr><spanclass="token punctuation">)</span></div></div><spanclass="token keyword">interface </span><ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Representation union of https://core.telegram.org/bots/api#keyboardbutton . See inheritors for more info</p></div></div></div>
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span><spanclass="token punctuation">(</span><span>with<spanclass="token operator"> = </span><ahref="-keyboard-button-poll-type-serializer/index.html">KeyboardButtonPollTypeSerializer::class</a></span><wbr></wbr><spanclass="token punctuation">)</span></div></div><spanclass="token keyword">interface </span><ahref="-keyboard-button-poll-type/index.html">KeyboardButtonPollType</a></div><divclass="brief "><pclass="paragraph">Poll type for <ahref="-request-poll-keyboard-button/index.html">RequestPollKeyboardButton</a>. Visit https://core.telegram.org/bots/api#keyboardbuttonpolltype for more info and see inheritors.</p></div></div></div>
<divclass="copy-popup-wrapper "><spanclass="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
</span></span></div>
<div>
<divclass="title">
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-request-chat-keyboard-button/index.html">RequestChatKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a><spanclass="token punctuation">, </span></span><spanclass="parameter "><spanclass="token keyword">val </span>requestChat<spanclass="token operator">: </span><ahref="-keyboard-button-request-chat/index.html">KeyboardButtonRequestChat</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Private chats only. When user will tap on this button, he will be asked for the chat with <ahref="-request-chat-keyboard-button/request-chat.html">requestChat</a> options. You will be able to catch this <ahref="../dev.inmo.tgbotapi.types/-chat-id/index.html">ChatId</a> in updates and data using <ahref="../dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling/on-chat-shared.html">dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChatShared</a> in case you are using Behaviour Builder OR with <ahref="../dev.inmo.tgbotapi.updateshandlers/-flows-updates-filter/messages-flow.html">dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter.messagesFlow</a> and <spandata-unresolved-link="kotlinx.coroutines.flow//filterIsInstance/kotlinx.coroutines.flow.Flow[*]#/PointingToDeclaration/">kotlinx.coroutines.flow.filterIsInstance</span>.</p></div></div></div>
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-request-contact-keyboard-button/index.html">RequestContactKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Private chats only. When user will tap on this button, his contact (with his number and name) will be sent to the bot. You will be able to catch this contact in updates and data using <ahref="../dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling/on-contact.html">dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onContact</a> in case you are using Behaviour Builder OR with <ahref="../dev.inmo.tgbotapi.updateshandlers/-flows-updates-filter/messages-flow.html">dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter.messagesFlow</a> and <spandata-unresolved-link="kotlinx.coroutines.flow//filterIsInstance/kotlinx.coroutines.flow.Flow[*]#/PointingToDeclaration/">kotlinx.coroutines.flow.filterIsInstance</span> and filtering by type <ahref="../dev.inmo.tgbotapi.types.message.abstracts/-common-message/index.html">dev.inmo.tgbotapi.types.message.abstracts.CommonMessage</a> and <ahref="../dev.inmo.tgbotapi.extensions.utils/only-contact-content-messages.html">dev.inmo.tgbotapi.extensions.utils.onlyContactContentMessages</a></p></div></div></div>
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-request-location-keyboard-button/index.html">RequestLocationKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Private chats only. When user will tap on this button, his location will be sent to the bot. You will be able to catch this location in updates and data using <ahref="../dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling/on-location.html">dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onLocation</a> in case you are using Behaviour Builder OR with <ahref="../dev.inmo.tgbotapi.updateshandlers/-flows-updates-filter/messages-flow.html">dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter.messagesFlow</a> and <spandata-unresolved-link="kotlinx.coroutines.flow//filterIsInstance/kotlinx.coroutines.flow.Flow[*]#/PointingToDeclaration/">kotlinx.coroutines.flow.filterIsInstance</span> and filtering by type <ahref="../dev.inmo.tgbotapi.types.message.abstracts/-common-message/index.html">dev.inmo.tgbotapi.types.message.abstracts.CommonMessage</a> and <ahref="../dev.inmo.tgbotapi.extensions.utils/only-location-content-messages.html">dev.inmo.tgbotapi.extensions.utils.onlyLocationContentMessages</a></p></div></div></div>
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-request-poll-keyboard-button/index.html">RequestPollKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a><spanclass="token punctuation">, </span></span><spanclass="parameter "><spanclass="token keyword">val </span>requestPoll<spanclass="token operator">: </span><ahref="-keyboard-button-poll-type/index.html">KeyboardButtonPollType</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Private chats only. When user will tap on this button, he will be asked for the poll with <ahref="-request-poll-keyboard-button/request-poll.html">requestPoll</a> options. You will be able to catch this poll in updates and data using <ahref="../dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling/on-poll.html">dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onPoll</a> in case you are using Behaviour Builder OR with <ahref="../dev.inmo.tgbotapi.updateshandlers/-flows-updates-filter/messages-flow.html">dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter.messagesFlow</a> and <spandata-unresolved-link="kotlinx.coroutines.flow//filterIsInstance/kotlinx.coroutines.flow.Flow[*]#/PointingToDeclaration/">kotlinx.coroutines.flow.filterIsInstance</span> and filtering by type <ahref="../dev.inmo.tgbotapi.types.message.abstracts/-common-message/index.html">dev.inmo.tgbotapi.types.message.abstracts.CommonMessage</a> and <ahref="../dev.inmo.tgbotapi.extensions.utils/only-poll-content-messages.html">dev.inmo.tgbotapi.extensions.utils.onlyPollContentMessages</a></p></div></div></div>
<divclass="copy-popup-wrapper "><spanclass="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
</span></span></div>
<div>
<divclass="title">
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-request-user-keyboard-button/index.html">RequestUserKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a><spanclass="token punctuation">, </span></span><spanclass="parameter "><spanclass="token keyword">val </span>requestUser<spanclass="token operator">: </span><ahref="-keyboard-button-request-user/index.html">KeyboardButtonRequestUser</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Private chats only. When user will tap on this button, he will be asked for the chat with requestChat options. You will be able to catch this <ahref="../dev.inmo.tgbotapi.types/-chat-id/index.html">ChatId</a> in updates and data using <ahref="../dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling/on-user-shared.html">dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onUserShared</a> in case you are using Behaviour Builder OR with <ahref="../dev.inmo.tgbotapi.updateshandlers/-flows-updates-filter/messages-flow.html">dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter.messagesFlow</a> and <spandata-unresolved-link="kotlinx.coroutines.flow//filterIsInstance/kotlinx.coroutines.flow.Flow[*]#/PointingToDeclaration/">kotlinx.coroutines.flow.filterIsInstance</span>.</p></div></div></div>
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-simple-keyboard-button/index.html">SimpleKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Simple button. user will send text of this button. You will be able to catch this text in updates and data using <ahref="../dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling/on-text.html">dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onText</a> in case you are using Behaviour Builder OR with <ahref="../dev.inmo.tgbotapi.updateshandlers/-flows-updates-filter/messages-flow.html">dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter.messagesFlow</a> and <spandata-unresolved-link="kotlinx.coroutines.flow//filterIsInstance/kotlinx.coroutines.flow.Flow[*]#/PointingToDeclaration/">kotlinx.coroutines.flow.filterIsInstance</span> and filtering by type <ahref="../dev.inmo.tgbotapi.types.message.abstracts/-common-message/index.html">dev.inmo.tgbotapi.types.message.abstracts.CommonMessage</a> and <ahref="../dev.inmo.tgbotapi.extensions.utils/only-text-content-messages.html">dev.inmo.tgbotapi.extensions.utils.onlyTextContentMessages</a></p></div></div></div>
<divclass="platform-hinted "data-platform-hinted="data-platform-hinted"><divclass="content sourceset-dependent-content"data-active=""data-togglable=":docs:dokkaHtml/commonMain"><divclass="symbol monospace"><divclass="block"><divclass="block"><spanclass="token annotation builtin">@</span><spandata-unresolved-link="kotlinx.serialization/Serializable///PointingToDeclaration/"><spanclass="token annotation builtin">Serializable</span></span></div></div><spanclass="token keyword">data </span><spanclass="token keyword">class </span><ahref="-web-app-keyboard-button/index.html">WebAppKeyboardButton</a><spanclass="token punctuation">(</span><spanclass="parameters "><spanclass="parameter "><spanclass="token keyword">val </span>text<spanclass="token operator">: </span><ahref="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a><spanclass="token punctuation">, </span></span><spanclass="parameter "><spanclass="token keyword">val </span>webApp<spanclass="token operator">: </span><ahref="../dev.inmo.tgbotapi.types.webapps/-web-app-info/index.html">WebAppInfo</a></span></span><spanclass="token punctuation">)</span> : <ahref="-keyboard-button/index.html">KeyboardButton</a></div><divclass="brief "><pclass="paragraph">Private chats only. Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method <codeclass="lang-kotlin">answerWebAppQuery</code>. Available only in private chats between a user and the bot.</p></div></div></div>