Skip to content

Bot

moonlygram.Bot

close async

close() -> None

Close the underlying HTTP session.

call async

call(method: str, /, **params: Any) -> Any

Call any Bot API method directly.

An escape hatch for methods or parameters Moonlygram does not yet model.

get_me async

get_me() -> User

Return the bot's own user account.

send_message async

send_message(chat_id: int | str, text: str, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, parse_mode: Optional[str] = None, entities: Optional[list[MessageEntity]] = None, link_preview_options: Optional[LinkPreviewOptions] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_to_message_id: Optional[int] = None, reply_markup: Optional[ReplyMarkup] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a text message to a chat.

message_thread_id targets a topic in a forum supergroup. Pass entities instead of parse_mode to supply formatting directly, and link_preview_options to change or suppress the link preview.

send_rich_message async

send_rich_message(chat_id: int | str, *, html: 'Optional[str | RichMessage]' = None, markdown: Optional[str] = None, blocks: 'Optional[list[InputRichBlock]]' = None, media: 'Optional[list[InputRichMessageMedia]]' = None, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_parameters: 'Optional[ReplyParameters]' = None, reply_markup: Optional[ReplyMarkup] = None) -> Message

Send a rich message.

Pass exactly one of html, markdown, or blocks. html may be a rich-message HTML string or a RichMessage builder; blocks is a list of structured block objects (Bot API 10.2). media optionally supplies the files that html or markdown text references through tg://…?id= links.

send_rich_message_draft async

send_rich_message_draft(chat_id: int | str, draft_id: int, *, html: 'Optional[str | RichMessage]' = None, markdown: Optional[str] = None, blocks: 'Optional[list[InputRichBlock]]' = None, media: 'Optional[list[InputRichMessageMedia]]' = None, message_thread_id: Optional[int] = None) -> bool

Send an ephemeral rich-message draft (about a 30s TTL).

Use this to stream a response by repeatedly updating the same draft_id; send the final version with send_rich_message. Pass exactly one of html, markdown, or blocks.

send_photo async

send_photo(chat_id: int | str, photo: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, show_caption_above_media: Optional[bool] = None, has_spoiler: Optional[bool] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a photo. Pass an InputFile to upload, or a file_id / URL string.

send_document async

send_document(chat_id: int | str, document: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, thumbnail: Optional[FileInput] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, disable_content_type_detection: Optional[bool] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a general file. Pass an InputFile to upload, or a file_id / URL.

send_audio async

send_audio(chat_id: int | str, audio: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, duration: Optional[int] = None, performer: Optional[str] = None, title: Optional[str] = None, thumbnail: Optional[FileInput] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send an audio file shown in the music player.

send_video async

send_video(chat_id: int | str, video: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, duration: Optional[int] = None, width: Optional[int] = None, height: Optional[int] = None, thumbnail: Optional[FileInput] = None, cover: Optional[FileInput] = None, start_timestamp: Optional[int] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, show_caption_above_media: Optional[bool] = None, has_spoiler: Optional[bool] = None, supports_streaming: Optional[bool] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a video file.

cover sets the thumbnail shown before playback starts, and start_timestamp the second the video should open at.

send_animation async

send_animation(chat_id: int | str, animation: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, duration: Optional[int] = None, width: Optional[int] = None, height: Optional[int] = None, thumbnail: Optional[FileInput] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, show_caption_above_media: Optional[bool] = None, has_spoiler: Optional[bool] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send an animation (GIF or soundless H.264/MPEG-4).

send_voice async

send_voice(chat_id: int | str, voice: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, duration: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a voice note.

send_video_note async

send_video_note(chat_id: int | str, video_note: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, duration: Optional[int] = None, length: Optional[int] = None, thumbnail: Optional[FileInput] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a rounded square video note.

send_sticker async

send_sticker(chat_id: int | str, sticker: FileInput, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, emoji: Optional[str] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a sticker.

send_location async

send_location(chat_id: int | str, latitude: float, longitude: float, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, horizontal_accuracy: Optional[float] = None, live_period: Optional[int] = None, heading: Optional[int] = None, proximity_alert_radius: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a point on the map.

Pass live_period to send a live location that updates for that many seconds; edit_message_live_location then moves it.

send_contact async

send_contact(chat_id: int | str, phone_number: str, first_name: str, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, last_name: Optional[str] = None, vcard: Optional[str] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a phone contact.

send_poll async

send_poll(chat_id: int | str, question: str, options: Sequence[PollOptionInput], *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, question_parse_mode: Optional[str] = None, question_entities: Optional[list[MessageEntity]] = None, is_anonymous: Optional[bool] = None, type: Optional[str] = None, allows_multiple_answers: Optional[bool] = None, allows_revoting: Optional[bool] = None, shuffle_options: Optional[bool] = None, allow_adding_options: Optional[bool] = None, hide_results_until_closes: Optional[bool] = None, members_only: Optional[bool] = None, country_codes: Optional[list[str]] = None, correct_option_ids: Optional[list[int]] = None, explanation: Optional[str] = None, explanation_parse_mode: Optional[str] = None, explanation_entities: Optional[list[MessageEntity]] = None, explanation_media: Optional[InputPollMedia] = None, open_period: Optional[int] = None, close_date: Optional[int] = None, is_closed: Optional[bool] = None, description: Optional[str] = None, description_parse_mode: Optional[str] = None, description_entities: Optional[list[MessageEntity]] = None, media: Optional[InputPollMedia] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send a native poll.

Each option is either plain text or an InputPollOption when it needs its own formatting. For a quiz, set type to "quiz" and name the right answers with correct_option_ids.

send_dice async

send_dice(chat_id: int | str, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, emoji: Optional[str] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send an animated dice (or other emoji) with a random value.

stop_poll async

stop_poll(chat_id: int | str, message_id: int, *, business_connection_id: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> Poll

Stop an active poll and return its final state.

send_venue async

send_venue(chat_id: int | str, latitude: float, longitude: float, title: str, address: str, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, foursquare_id: Optional[str] = None, foursquare_type: Optional[str] = None, google_place_id: Optional[str] = None, google_place_type: Optional[str] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_markup: Optional[ReplyMarkup] = None, reply_to_message_id: Optional[int] = None, receiver_user_id: Optional[int] = None, callback_query_id: Optional[str] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> Message

Send information about a venue.

send_media_group async

send_media_group(chat_id: int | str, media: list[InputMedia], *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, reply_to_message_id: Optional[int] = None, reply_parameters: 'Optional[ReplyParameters]' = None) -> list[Message]

Send a group of photos, videos, documents, or audios as an album.

edit_message_media async

edit_message_media(media: InputMedia, *, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Replace the media of a message; True for inline messages.

edit_message_live_location async

edit_message_live_location(latitude: float, longitude: float, *, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, live_period: Optional[int] = None, horizontal_accuracy: Optional[float] = None, heading: Optional[int] = None, proximity_alert_radius: Optional[int] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Update a live location message; True for inline messages.

stop_message_live_location async

stop_message_live_location(*, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Stop updating a live location message; True for inline messages.

forward_messages async

forward_messages(chat_id: int | str, from_chat_id: int | str, message_ids: list[int], *, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None) -> list[MessageId]

Forward several messages at once.

copy_messages async

copy_messages(chat_id: int | str, from_chat_id: int | str, message_ids: list[int], *, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, remove_caption: Optional[bool] = None) -> list[MessageId]

Copy several messages at once without a forward header.

delete_messages async

delete_messages(chat_id: int | str, message_ids: list[int]) -> bool

Delete several messages at once.

set_message_reaction async

set_message_reaction(chat_id: int | str, message_id: int, *, reaction: Optional[list[ReactionType]] = None, is_big: Optional[bool] = None) -> bool

Set the bot's reaction(s) on a message; pass no reaction to clear.

get_file async

get_file(file_id: str) -> File

Fetch metadata for a file, including a file_path for downloading.

download_file async

download_file(file_path: str) -> bytes

Download a file's bytes given a file_path from get_file.

set_webhook async

set_webhook(url: str, *, certificate: Optional[FileInput] = None, ip_address: Optional[str] = None, secret_token: Optional[str] = None, allowed_updates: Optional[list[str]] = None, drop_pending_updates: Optional[bool] = None, max_connections: Optional[int] = None) -> bool

Register a webhook URL for Telegram to deliver updates to.

certificate uploads a self-signed public key so Telegram will trust the endpoint, and ip_address pins delivery to a fixed address.

delete_webhook async

delete_webhook(*, drop_pending_updates: Optional[bool] = None) -> bool

Remove the webhook and return to long polling.

get_webhook_info async

get_webhook_info() -> WebhookInfo

Return the current webhook status.

forward_message async

forward_message(chat_id: int | str, from_chat_id: int | str, message_id: int, *, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, video_start_timestamp: Optional[int] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None) -> Message

Forward a message from one chat to another.

copy_message async

copy_message(chat_id: int | str, from_chat_id: int | str, message_id: int, *, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, video_start_timestamp: Optional[int] = None, caption: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, show_caption_above_media: Optional[bool] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_parameters: 'Optional[ReplyParameters]' = None, reply_markup: Optional[ReplyMarkup] = None) -> MessageId

Copy a message without a forward header, returning the new id.

edit_message_text async

edit_message_text(text: str, *, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, parse_mode: Optional[str] = None, entities: Optional[list[MessageEntity]] = None, link_preview_options: Optional[LinkPreviewOptions] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Edit the text of a message; returns True for inline messages.

To replace the text with rich content instead, use edit_rich_message_text.

edit_rich_message_text async

edit_rich_message_text(*, html: 'Optional[str | RichMessage]' = None, markdown: Optional[str] = None, blocks: 'Optional[list[InputRichBlock]]' = None, media: 'Optional[list[InputRichMessageMedia]]' = None, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Replace a message's text with rich content; True for inline messages.

Takes the same html / markdown / blocks forms as send_rich_message: pass exactly one of them.

edit_message_caption async

edit_message_caption(*, caption: Optional[str] = None, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, parse_mode: Optional[str] = None, caption_entities: Optional[list[MessageEntity]] = None, show_caption_above_media: Optional[bool] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Edit a message's caption; returns True for inline messages.

edit_message_reply_markup async

edit_message_reply_markup(*, business_connection_id: Optional[str] = None, chat_id: Optional[int | str] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> Message | bool

Edit only a message's inline keyboard; True for inline messages.

delete_message async

delete_message(chat_id: int | str, message_id: int) -> bool

Delete a message.

edit_ephemeral_message_text async

edit_ephemeral_message_text(chat_id: int | str, receiver_user_id: int, ephemeral_message_id: int, text: str, *, parse_mode: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> bool

Edit the text of an ephemeral message. Returns True on success.

The user may not receive the edit if they are offline.

edit_ephemeral_message_media async

edit_ephemeral_message_media(chat_id: int | str, receiver_user_id: int, ephemeral_message_id: int, media: InputMedia, *, reply_markup: Optional[ReplyMarkup] = None) -> bool

Replace the media of an ephemeral message. Returns True on success.

A new file cannot be uploaded; reference one by file_id or URL.

edit_ephemeral_message_caption async

edit_ephemeral_message_caption(chat_id: int | str, receiver_user_id: int, ephemeral_message_id: int, *, caption: Optional[str] = None, parse_mode: Optional[str] = None, reply_markup: Optional[ReplyMarkup] = None) -> bool

Edit the caption of an ephemeral message. Returns True on success.

edit_ephemeral_message_reply_markup async

edit_ephemeral_message_reply_markup(chat_id: int | str, receiver_user_id: int, ephemeral_message_id: int, *, reply_markup: Optional[ReplyMarkup] = None) -> bool

Edit only an ephemeral message's inline keyboard. Returns True.

delete_ephemeral_message async

delete_ephemeral_message(chat_id: int | str, receiver_user_id: int, ephemeral_message_id: int) -> bool

Delete an ephemeral message. Returns True on success.

pin_chat_message async

pin_chat_message(chat_id: int | str, message_id: int, *, business_connection_id: Optional[str] = None, disable_notification: Optional[bool] = None) -> bool

Pin a message in a chat.

unpin_chat_message async

unpin_chat_message(chat_id: int | str, *, business_connection_id: Optional[str] = None, message_id: Optional[int] = None) -> bool

Unpin a message, or the most recent pinned one if id is omitted.

unpin_all_chat_messages async

unpin_all_chat_messages(chat_id: int | str) -> bool

Unpin every pinned message in a chat.

send_chat_action async

send_chat_action(chat_id: int | str, action: str, *, business_connection_id: Optional[str] = None, message_thread_id: Optional[int] = None) -> bool

Show a status such as "typing" or "upload_photo" in a chat.

answer_callback_query async

answer_callback_query(callback_query_id: str, *, text: Optional[str] = None, show_alert: Optional[bool] = None, url: Optional[str] = None, cache_time: Optional[int] = None) -> bool

Acknowledge a callback query, optionally showing a toast or alert.

ban_chat_member async

ban_chat_member(chat_id: int | str, user_id: int, *, until_date: Optional[int] = None, revoke_messages: Optional[bool] = None) -> bool

Ban a user from a chat.

unban_chat_member async

unban_chat_member(chat_id: int | str, user_id: int, *, only_if_banned: Optional[bool] = None) -> bool

Unban a previously banned user.

restrict_chat_member async

restrict_chat_member(chat_id: int | str, user_id: int, permissions: ChatPermissions, *, use_independent_chat_permissions: Optional[bool] = None, until_date: Optional[int] = None) -> bool

Restrict what a member may do in a supergroup.

promote_chat_member async

promote_chat_member(chat_id: int | str, user_id: int, *, can_manage_chat: Optional[bool] = None, can_delete_messages: Optional[bool] = None, can_restrict_members: Optional[bool] = None, can_promote_members: Optional[bool] = None, can_change_info: Optional[bool] = None, can_invite_users: Optional[bool] = None, can_pin_messages: Optional[bool] = None, can_manage_topics: Optional[bool] = None, is_anonymous: Optional[bool] = None, can_manage_video_chats: Optional[bool] = None, can_post_messages: Optional[bool] = None, can_edit_messages: Optional[bool] = None, can_post_stories: Optional[bool] = None, can_edit_stories: Optional[bool] = None, can_delete_stories: Optional[bool] = None, can_manage_direct_messages: Optional[bool] = None, can_manage_tags: Optional[bool] = None) -> bool

Promote or demote a member by toggling administrator rights.

Every right left as None is unchanged. can_post_messages, can_edit_messages, and the story rights apply to channels only.

set_chat_title async

set_chat_title(chat_id: int | str, title: str) -> bool

Change a chat's title.

set_chat_description async

set_chat_description(chat_id: int | str, description: Optional[str] = None) -> bool

Change a chat's description.

set_chat_permissions async

set_chat_permissions(chat_id: int | str, permissions: ChatPermissions, *, use_independent_chat_permissions: Optional[bool] = None) -> bool

Set the default permissions for all members of a supergroup.

get_chat async

get_chat(chat_id: int | str) -> Chat

Fetch up-to-date information about a chat.

get_chat_member async

get_chat_member(chat_id: int | str, user_id: int) -> ChatMember

Fetch one member of a chat.

get_chat_administrators async

get_chat_administrators(chat_id: int | str, *, return_bots: Optional[bool] = None) -> list[ChatMember]

List the administrators of a chat.

Bot administrators are left out unless return_bots is True.

get_chat_member_count async

get_chat_member_count(chat_id: int | str) -> int

Return the number of members in a chat.

leave_chat async

leave_chat(chat_id: int | str) -> bool

Leave a group, supergroup, or channel.

export_chat_invite_link(chat_id: int | str) -> str

Generate a new primary invite link, revoking the previous one.

create_chat_invite_link(chat_id: int | str, *, name: Optional[str] = None, expire_date: Optional[int] = None, member_limit: Optional[int] = None, creates_join_request: Optional[bool] = None) -> ChatInviteLink

Create an additional invite link for a chat.

edit_chat_invite_link(chat_id: int | str, invite_link: str, *, name: Optional[str] = None, expire_date: Optional[int] = None, member_limit: Optional[int] = None, creates_join_request: Optional[bool] = None) -> ChatInviteLink

Edit a non-primary invite link created by the bot.

revoke_chat_invite_link(chat_id: int | str, invite_link: str) -> ChatInviteLink

Revoke an invite link created by the bot.

approve_chat_join_request async

approve_chat_join_request(chat_id: int | str, user_id: int) -> bool

Approve a request to join a chat.

decline_chat_join_request async

decline_chat_join_request(chat_id: int | str, user_id: int) -> bool

Decline a request to join a chat.

set_chat_photo async

set_chat_photo(chat_id: int | str, photo: FileInput) -> bool

Set a chat's photo. Pass an InputFile to upload the new photo.

delete_chat_photo async

delete_chat_photo(chat_id: int | str) -> bool

Delete a chat's photo.

set_chat_sticker_set async

set_chat_sticker_set(chat_id: int | str, sticker_set_name: str) -> bool

Set the group sticker set for a supergroup.

delete_chat_sticker_set async

delete_chat_sticker_set(chat_id: int | str) -> bool

Delete the group sticker set from a supergroup.

ban_chat_sender_chat async

ban_chat_sender_chat(chat_id: int | str, sender_chat_id: int) -> bool

Ban a channel from posting on its own behalf in a chat.

unban_chat_sender_chat async

unban_chat_sender_chat(chat_id: int | str, sender_chat_id: int) -> bool

Unban a previously banned channel in a chat.

set_chat_administrator_custom_title async

set_chat_administrator_custom_title(chat_id: int | str, user_id: int, custom_title: str) -> bool

Set a custom title for an administrator promoted by the bot.

get_user_profile_photos async

get_user_profile_photos(user_id: int, *, offset: Optional[int] = None, limit: Optional[int] = None) -> UserProfilePhotos

Fetch a user's profile photos.

get_user_chat_boosts async

get_user_chat_boosts(chat_id: int | str, user_id: int) -> UserChatBoosts

Fetch the boosts a user has added to a chat.

set_chat_menu_button async

set_chat_menu_button(*, chat_id: Optional[int] = None, menu_button: Optional[dict[str, Any]] = None) -> bool

Set the bot's menu button, for one chat or (with no chat) globally.

get_chat_menu_button async

get_chat_menu_button(*, chat_id: Optional[int] = None) -> dict[str, Any]

Get the bot's menu button as a raw MenuButton dict.

set_my_default_administrator_rights async

set_my_default_administrator_rights(*, rights: Optional[ChatAdministratorRights] = None, for_channels: Optional[bool] = None) -> bool

Set the bot's default administrator rights for new groups or channels.

get_my_default_administrator_rights async

get_my_default_administrator_rights(*, for_channels: Optional[bool] = None) -> ChatAdministratorRights

Get the bot's default administrator rights for new groups or channels.

set_my_commands async

set_my_commands(commands: list[BotCommand], *, scope: Optional[dict[str, Any]] = None, language_code: Optional[str] = None) -> bool

Set the bot's command menu.

get_my_commands async

get_my_commands(*, scope: Optional[dict[str, Any]] = None, language_code: Optional[str] = None) -> list[BotCommand]

Get the bot's current command menu.

delete_my_commands async

delete_my_commands(*, scope: Optional[dict[str, Any]] = None, language_code: Optional[str] = None) -> bool

Delete the bot's command menu for the given scope and language.

set_my_name async

set_my_name(*, name: Optional[str] = None, language_code: Optional[str] = None) -> bool

Set the bot's name, optionally for a specific language.

get_my_name async

get_my_name(*, language_code: Optional[str] = None) -> BotName

Get the bot's name for the given language.

set_my_description async

set_my_description(*, description: Optional[str] = None, language_code: Optional[str] = None) -> bool

Set the bot's description, shown in an empty chat with the bot.

get_my_description async

get_my_description(*, language_code: Optional[str] = None) -> BotDescription

Get the bot's description for the given language.

set_my_short_description async

set_my_short_description(*, short_description: Optional[str] = None, language_code: Optional[str] = None) -> bool

Set the bot's short description, shown on the bot's profile page.

get_my_short_description async

get_my_short_description(*, language_code: Optional[str] = None) -> BotShortDescription

Get the bot's short description for the given language.

get_forum_topic_icon_stickers async

get_forum_topic_icon_stickers() -> list[Sticker]

List the custom emoji stickers allowed as forum topic icons.

create_forum_topic async

create_forum_topic(chat_id: int | str, name: str, *, icon_color: Optional[int] = None, icon_custom_emoji_id: Optional[str] = None) -> ForumTopic

Create a topic in a forum supergroup.

edit_forum_topic async

edit_forum_topic(chat_id: int | str, message_thread_id: int, *, name: Optional[str] = None, icon_custom_emoji_id: Optional[str] = None) -> bool

Edit a forum topic's name or icon.

close_forum_topic async

close_forum_topic(chat_id: int | str, message_thread_id: int) -> bool

Close an open forum topic.

reopen_forum_topic async

reopen_forum_topic(chat_id: int | str, message_thread_id: int) -> bool

Reopen a closed forum topic.

delete_forum_topic async

delete_forum_topic(chat_id: int | str, message_thread_id: int) -> bool

Delete a forum topic along with all its messages.

unpin_all_forum_topic_messages async

unpin_all_forum_topic_messages(chat_id: int | str, message_thread_id: int) -> bool

Unpin all messages in a forum topic.

edit_general_forum_topic async

edit_general_forum_topic(chat_id: int | str, name: str) -> bool

Rename the 'General' topic of a forum.

close_general_forum_topic async

close_general_forum_topic(chat_id: int | str) -> bool

Close the 'General' topic of a forum.

reopen_general_forum_topic async

reopen_general_forum_topic(chat_id: int | str) -> bool

Reopen the 'General' topic of a forum.

hide_general_forum_topic async

hide_general_forum_topic(chat_id: int | str) -> bool

Hide the 'General' topic of a forum.

unhide_general_forum_topic async

unhide_general_forum_topic(chat_id: int | str) -> bool

Unhide the 'General' topic of a forum.

unpin_all_general_forum_topic_messages async

unpin_all_general_forum_topic_messages(chat_id: int | str) -> bool

Unpin all messages in the 'General' topic of a forum.

get_sticker_set async

get_sticker_set(name: str) -> StickerSet

Fetch a sticker set by name.

get_custom_emoji_stickers async

get_custom_emoji_stickers(custom_emoji_ids: list[str]) -> list[Sticker]

Fetch the stickers for the given custom emoji ids.

upload_sticker_file async

upload_sticker_file(user_id: int, sticker: FileInput, sticker_format: str) -> File

Upload a sticker file for later use in a sticker set.

create_new_sticker_set async

create_new_sticker_set(user_id: int, name: str, title: str, stickers: list[InputSticker], *, sticker_type: Optional[str] = None, needs_repainting: Optional[bool] = None) -> bool

Create a new sticker set owned by a user.

add_sticker_to_set async

add_sticker_to_set(user_id: int, name: str, sticker: InputSticker) -> bool

Add a sticker to an existing set owned by the bot.

set_sticker_position_in_set async

set_sticker_position_in_set(sticker: str, position: int) -> bool

Move a sticker to a new position within its set.

delete_sticker_from_set async

delete_sticker_from_set(sticker: str) -> bool

Remove a sticker from the set it belongs to.

replace_sticker_in_set async

replace_sticker_in_set(user_id: int, name: str, old_sticker: str, sticker: InputSticker) -> bool

Replace a sticker in a set with another one.

set_sticker_emoji_list async

set_sticker_emoji_list(sticker: str, emoji_list: list[str]) -> bool

Set the emoji associated with a bot-owned sticker.

set_sticker_keywords async

set_sticker_keywords(sticker: str, *, keywords: Optional[list[str]] = None) -> bool

Set the search keywords for a bot-owned sticker.

set_sticker_mask_position async

set_sticker_mask_position(sticker: str, *, mask_position: Optional[MaskPosition] = None) -> bool

Set the mask position of a bot-owned mask sticker.

set_sticker_set_title async

set_sticker_set_title(name: str, title: str) -> bool

Set the title of a sticker set.

set_sticker_set_thumbnail async

set_sticker_set_thumbnail(name: str, user_id: int, format: str, *, thumbnail: Optional[FileInput] = None) -> bool

Set the thumbnail of a sticker set; pass an InputFile to upload one.

set_custom_emoji_sticker_set_thumbnail async

set_custom_emoji_sticker_set_thumbnail(name: str, *, custom_emoji_id: Optional[str] = None) -> bool

Set the thumbnail of a custom emoji sticker set.

delete_sticker_set async

delete_sticker_set(name: str) -> bool

Delete a sticker set owned by the bot.

answer_inline_query async

answer_inline_query(inline_query_id: str, results: list[InlineQueryResult], *, cache_time: Optional[int] = None, is_personal: Optional[bool] = None, next_offset: Optional[str] = None, button: Optional[dict[str, Any]] = None) -> bool

Answer an inline query with a list of results.

answer_web_app_query async

answer_web_app_query(web_app_query_id: str, result: InlineQueryResult) -> SentWebAppMessage

Answer a Web App query with a single inline result.

send_invoice async

send_invoice(chat_id: int | str, title: str, description: str, payload: str, currency: str, prices: list[LabeledPrice], *, message_thread_id: Optional[int] = None, direct_messages_topic_id: Optional[int] = None, provider_token: Optional[str] = None, max_tip_amount: Optional[int] = None, suggested_tip_amounts: Optional[list[int]] = None, start_parameter: Optional[str] = None, provider_data: Optional[str] = None, photo_url: Optional[str] = None, photo_size: Optional[int] = None, photo_width: Optional[int] = None, photo_height: Optional[int] = None, need_name: Optional[bool] = None, need_phone_number: Optional[bool] = None, need_email: Optional[bool] = None, need_shipping_address: Optional[bool] = None, send_phone_number_to_provider: Optional[bool] = None, send_email_to_provider: Optional[bool] = None, is_flexible: Optional[bool] = None, disable_notification: Optional[bool] = None, protect_content: Optional[bool] = None, allow_paid_broadcast: Optional[bool] = None, message_effect_id: Optional[str] = None, suggested_post_parameters: Optional[SuggestedPostParameters] = None, reply_to_message_id: Optional[int] = None, reply_parameters: 'Optional[ReplyParameters]' = None, reply_markup: Optional[ReplyMarkup] = None) -> Message

Send an invoice. payload is your internal id, echoed back on payment.

Set need_shipping_address with is_flexible to receive shipping_query updates. Star invoices (currency "XTR") take no provider_token.

create_invoice_link(title: str, description: str, payload: str, currency: str, prices: list[LabeledPrice], *, business_connection_id: Optional[str] = None, provider_token: Optional[str] = None, subscription_period: Optional[int] = None, max_tip_amount: Optional[int] = None, suggested_tip_amounts: Optional[list[int]] = None, provider_data: Optional[str] = None, photo_url: Optional[str] = None, photo_size: Optional[int] = None, photo_width: Optional[int] = None, photo_height: Optional[int] = None, need_name: Optional[bool] = None, need_phone_number: Optional[bool] = None, need_email: Optional[bool] = None, need_shipping_address: Optional[bool] = None, send_phone_number_to_provider: Optional[bool] = None, send_email_to_provider: Optional[bool] = None, is_flexible: Optional[bool] = None) -> str

Create a shareable invoice link and return the URL as a string.

answer_shipping_query async

answer_shipping_query(shipping_query_id: str, ok: bool, *, shipping_options: Optional[list[ShippingOption]] = None, error_message: Optional[str] = None) -> bool

Reply to a shipping query. Pass shipping_options when ok is True, or error_message explaining why delivery is impossible when ok is False.

answer_pre_checkout_query async

answer_pre_checkout_query(pre_checkout_query_id: str, ok: bool, *, error_message: Optional[str] = None) -> bool

Respond to a pre-checkout query within 10 seconds. Pass ok=False with an error_message to abort the checkout.

get_star_transactions async

get_star_transactions(*, offset: Optional[int] = None, limit: Optional[int] = None) -> StarTransactions

Return the bot's Telegram Stars transactions, newest first.

get_my_star_balance async

get_my_star_balance() -> StarAmount

Return the bot's current Telegram Stars balance.

refund_star_payment async

refund_star_payment(user_id: int, telegram_payment_charge_id: str) -> bool

Refund a successful Telegram Stars payment back to the user.

edit_user_star_subscription async

edit_user_star_subscription(user_id: int, telegram_payment_charge_id: str, is_canceled: bool) -> bool

Cancel or re-enable a user's Stars subscription. is_canceled=True stops the next renewal; False reactivates a subscription cancelled this way.