class aiogram.types.callback_query.CallbackQuery(*, id: str, from_user: User, chat_instance: str, message: Message | InaccessibleMessage | None = None, inline_message_id: str | None = None, data: str | None = None, game_short_name: str | None = None, **extra_data: Any)[source]#

This object represents an incoming callback query from a callback button in an inline keyboard. If the button that originated the query was attached to a message sent by the bot, the field message will be present. If the button was attached to a message sent via the bot (in inline mode), the field inline_message_id will be present. Exactly one of the fields data or game_short_name will be present.

NOTE: After the user presses a callback button, Telegram clients will display a progress bar until you call aiogram.methods.answer_callback_query.AnswerCallbackQuery. It is, therefore, necessary to react by calling aiogram.methods.answer_callback_query.AnswerCallbackQuery even if no notification to the user is needed (e.g., without specifying any of the optional parameters).


id: str#

Unique identifier for this query

from_user: User#


chat_instance: str#

Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in

message: Message | InaccessibleMessage | None#

Optional. Message sent by the bot with the callback button that originated the query

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_post_init(_ModelMetaclass__context: Any) None#

We need to both initialize private attributes and call the user-defined model_post_init method.

inline_message_id: str | None#

Optional. Identifier of the message sent via the bot in inline mode, that originated the query.

data: str | None#

Optional. Data associated with the callback button. Be aware that the message originated the query can contain no callback buttons with this data.

game_short_name: str | None#

Optional. Short name of a Game to be returned, serves as the unique identifier for the game

answer(text: str | None = None, show_alert: bool | None = None, url: str | None = None, cache_time: int | None = None, **kwargs: Any) AnswerCallbackQuery[source]#

Shortcut for method aiogram.methods.answer_callback_query.AnswerCallbackQuery will automatically fill method attributes:

  • callback_query_id

Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned.

Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like that open your bot with a parameter.


  • text – Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters

  • show_alert – If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false.

  • url

    URL that will be opened by the user’s client. If you have created a and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button.

  • cache_time – The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0.


instance of method aiogram.methods.answer_callback_query.AnswerCallbackQuery