# telegram.CallbackQuery

class telegram.CallbackQuery(id, from_user, chat_instance, message=None, data=None, inline_message_id=None, game_short_name=None, bot=None, **_kwargs)

  Bases: `telegram.base.TelegramObject`

  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.

  Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their `id` is equal.

  Note

  - In Python `from` is a reserved word, use `from_user` instead.

  - Exactly one of the fields `data` or `game_short_name` will be present.

  - After the user presses an inline button, Telegram clients will display a progress bar until you call `answer`. It is, therefore, necessary to react by calling `telegram.Bot.answer_callback_query` even if no notification to the user is needed (e.g., without specifying any of the optional parameters).

  - If you’re using `Bot.arbitrary_callback_data`, `data` may be an instance of `telegram.ext.InvalidCallbackData`. This will be the case, if the data associated with the button triggering the `telegram.CallbackQuery` was already deleted or if `data` was manipulated by a malicious client.

    New in version 13.6.

  Parameters

    - id (`str`) – Unique identifier for this query.

    - from_user (`telegram.User`) – Sender.

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

    - message (`telegram.Message`, optional) – Message with the callback button that originated the query. Note that message content and message date will not be available if the message is too old.

    - data (`str`, optional) – Data associated with the callback button. Be aware that a bad client can send arbitrary data in this field.

    - inline_message_id (`str`, optional) – Identifier of the message sent via the bot in inline mode, that originated the query.

    - game_short_name (`str`, optional) – Short name of a Game to be returned, serves as the unique identifier for the game

    - bot (`telegram.Bot`, optional) – The Bot to use for instance methods.

  id

    Unique identifier for this query.

    Type

      `str`

  from_user

    Sender.

    Type

      `telegram.User`

  chat_instance

    Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent.

    Type

      `str`

  message

    Optional. Message with the callback button that originated the query.

    Type

      `telegram.Message`

  data

    Optional. Data associated with the callback button.

    Type

      `str` | `object`

  inline_message_id

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

    Type

      `str`

  game_short_name

    Optional. Short name of a Game to be returned.

    Type

      `str`

  bot

    The Bot to use for instance methods.

    Type

      `telegram.Bot`, optional

  MAX_ANSWER_TEXT_LENGTH = 200

    `telegram.constants.MAX_ANSWER_CALLBACK_QUERY_TEXT_LENGTH`

    New in version 13.2.

  answer(text=None, show_alert=False, url=None, cache_time=None, timeout=None, api_kwargs=None)

    Shortcut for:

        bot.answer_callback_query(update.callback_query.id, *args, **kwargs)

    For the documentation of the arguments, please see `telegram.Bot.answer_callback_query()`.

    Returns

      On success, `True` is returned.

    Return type

      `bool`

  copy_message(chat_id, caption=None, parse_mode=None, caption_entities=None, disable_notification=None, reply_to_message_id=None, allow_sending_without_reply=None, reply_markup=None, timeout=None, api_kwargs=None, protect_content=None)

    Shortcut for:

        update.callback_query.message.copy(
            chat_id,
            from_chat_id=update.message.chat_id,
            message_id=update.message.message_id,
            *args,
            **kwargs)

    For the documentation of the arguments, please see `telegram.Message.copy()`.

    Returns

      On success, returns the MessageId of the sent message.

    Return type

      `telegram.MessageId`

  classmethod de_json(data, bot)

    See `telegram.TelegramObject.de_json()`.

  delete_message(timeout=None, api_kwargs=None)

    Shortcut for:

        update.callback_query.message.delete(*args, **kwargs)

    For the documentation of the arguments, please see `telegram.Message.delete()`.

    Returns

      On success, `True` is returned.

    Return type

      `bool`

  edit_message_caption(caption=None, reply_markup=None, timeout=None, parse_mode=None, api_kwargs=None, caption_entities=None)

    Shortcut for either:

        update.callback_query.message.edit_caption(caption, *args, **kwargs)

    or:

        bot.edit_message_caption(caption=caption
                                inline_message_id=update.callback_query.inline_message_id,
                               *args, **kwargs)

    For the documentation of the arguments, please see `telegram.Bot.edit_message_caption()` and `telegram.Message.edit_caption()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  edit_message_live_location(latitude=None, longitude=None, location=None, reply_markup=None, timeout=None, api_kwargs=None, horizontal_accuracy=None, heading=None, proximity_alert_radius=None)

    Shortcut for either:

        update.callback_query.message.edit_live_location(*args, **kwargs)

    or:

        bot.edit_message_live_location(
            inline_message_id=update.callback_query.inline_message_id,
            *args, **kwargs
        )

    For the documentation of the arguments, please see `telegram.Bot.edit_message_live_location()` and `telegram.Message.edit_live_location()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  edit_message_media(media=None, reply_markup=None, timeout=None, api_kwargs=None)

    Shortcut for either:

        update.callback_query.message.edit_media(*args, **kwargs)

    or:

        bot.edit_message_media(inline_message_id=update.callback_query.inline_message_id,
                               *args, **kwargs)

    For the documentation of the arguments, please see `telegram.Bot.edit_message_media()` and `telegram.Message.edit_media()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  edit_message_reply_markup(reply_markup=None, timeout=None, api_kwargs=None)

    Shortcut for either:

        update.callback_query.message.edit_reply_markup(
            reply_markup=reply_markup,
            *args,
            **kwargs
        )

    or:

        bot.edit_message_reply_markup
            inline_message_id=update.callback_query.inline_message_id,
            reply_markup=reply_markup,
            *args,
            **kwargs
        )

    For the documentation of the arguments, please see `telegram.Bot.edit_message_reply_markup()` and `telegram.Message.edit_reply_markup()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  edit_message_text(text, parse_mode=None, disable_web_page_preview=None, reply_markup=None, timeout=None, api_kwargs=None, entities=None)

    Shortcut for either:

        update.callback_query.message.edit_text(text, *args, **kwargs)

    or:

        bot.edit_message_text(text, inline_message_id=update.callback_query.inline_message_id,
                            *args, **kwargs)

    For the documentation of the arguments, please see `telegram.Bot.edit_message_text()` and `telegram.Message.edit_text()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  get_game_high_scores(user_id, timeout=None, api_kwargs=None)

    Shortcut for either:

        update.callback_query.message.get_game_high_score(*args, **kwargs)

    or:

        bot.get_game_high_scores(inline_message_id=update.callback_query.inline_message_id,
                                 *args, **kwargs)

    For the documentation of the arguments, please see `telegram.Bot.get_game_high_scores()` and `telegram.Message.get_game_high_score()`.

    Returns

      List[`telegram.GameHighScore`]

  pin_message(disable_notification=None, timeout=None, api_kwargs=None)

    Shortcut for:

        update.callback_query.message.pin(*args, **kwargs)

    For the documentation of the arguments, please see `telegram.Message.pin()`.

    Returns

      On success, `True` is returned.

    Return type

      `bool`

  set_game_score(user_id, score, force=None, disable_edit_message=None, timeout=None, api_kwargs=None)

    Shortcut for either:

        update.callback_query.message.set_game_score(*args, **kwargs)

    or:

        bot.set_game_score(inline_message_id=update.callback_query.inline_message_id,
                           *args, **kwargs)

    For the documentation of the arguments, please see `telegram.Bot.set_game_score()` and `telegram.Message.set_game_score()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  stop_message_live_location(reply_markup=None, timeout=None, api_kwargs=None)

    Shortcut for either:

        update.callback_query.message.stop_live_location(*args, **kwargs)

    or:

        bot.stop_message_live_location(
            inline_message_id=update.callback_query.inline_message_id,
            *args, **kwargs
        )

    For the documentation of the arguments, please see `telegram.Bot.stop_message_live_location()` and `telegram.Message.stop_live_location()`.

    Returns

      On success, if edited message is sent by the bot, the edited Message is returned, otherwise `True` is returned.

    Return type

      `telegram.Message`

  unpin_message(timeout=None, api_kwargs=None)

    Shortcut for:

        update.callback_query.message.unpin(*args, **kwargs)

    For the documentation of the arguments, please see `telegram.Message.unpin()`.

    Returns

      On success, `True` is returned.

    Return type

      `bool`