{
  "name": "CallbackQuery",
  "anchor": "callbackquery",
  "description": [
    "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."
  ],
  "table": {
    "headers": [
      "Field",
      "Type",
      "Description"
    ],
    "rows": [
      {
        "field": "id",
        "type": "String",
        "description": "Unique identifier for this query"
      },
      {
        "field": "from",
        "type": "User",
        "description": "Sender"
      },
      {
        "field": "message",
        "type": "MaybeInaccessibleMessage",
        "description": "Optional . Message sent by the bot with the callback button that originated the query"
      },
      {
        "field": "inline_message_id",
        "type": "String",
        "description": "Optional . Identifier of the message sent via the bot in inline mode, that originated the query."
      },
      {
        "field": "chat_instance",
        "type": "String",
        "description": "Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games ."
      },
      {
        "field": "data",
        "type": "String",
        "description": "Optional . Data associated with the callback button. Be aware that the message originated the query can contain no callback buttons with this data."
      },
      {
        "field": "game_short_name",
        "type": "String",
        "description": "Optional . Short name of a Game to be returned, serves as the unique identifier for the game"
      }
    ]
  },
  "notes": [
    "NOTE: After the user presses a callback button, Telegram clients will display a progress bar until you call answerCallbackQuery . It is, therefore, necessary to react by calling answerCallbackQuery even if no notification to the user is needed (e.g., without specifying any of the optional parameters)."
  ]
}