Bot¶
moonlygram.Bot ¶
call
async
¶
Call any Bot API method directly.
An escape hatch for methods or parameters Moonlygram does not yet model.
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 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
¶
Fetch metadata for a file, including a file_path for downloading.
download_file
async
¶
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
¶
Remove the webhook and return to long polling.
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 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 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
¶
Change a chat's title.
set_chat_description
async
¶
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_member
async
¶
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
¶
Return the number of members in a chat.
export_chat_invite_link
async
¶
Generate a new primary invite link, revoking the previous one.
create_chat_invite_link
async
¶
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
async
¶
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
async
¶
Revoke an invite link created by the bot.
approve_chat_join_request
async
¶
Approve a request to join a chat.
decline_chat_join_request
async
¶
Decline a request to join a chat.
set_chat_photo
async
¶
Set a chat's photo. Pass an InputFile to upload the new photo.
set_chat_sticker_set
async
¶
Set the group sticker set for a supergroup.
delete_chat_sticker_set
async
¶
Delete the group sticker set from a supergroup.
ban_chat_sender_chat
async
¶
Ban a channel from posting on its own behalf in a chat.
unban_chat_sender_chat
async
¶
Unban a previously banned channel in a chat.
set_chat_administrator_custom_title
async
¶
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
¶
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 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 the bot's name, optionally for a specific language.
get_my_name
async
¶
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 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 the bot's short description for the given language.
get_forum_topic_icon_stickers
async
¶
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 an open forum topic.
reopen_forum_topic
async
¶
Reopen a closed forum topic.
delete_forum_topic
async
¶
Delete a forum topic along with all its messages.
unpin_all_forum_topic_messages
async
¶
Unpin all messages in a forum topic.
edit_general_forum_topic
async
¶
Rename the 'General' topic of a forum.
close_general_forum_topic
async
¶
Close the 'General' topic of a forum.
reopen_general_forum_topic
async
¶
Reopen the 'General' topic of a forum.
hide_general_forum_topic
async
¶
Hide the 'General' topic of a forum.
unhide_general_forum_topic
async
¶
Unhide the 'General' topic of a forum.
unpin_all_general_forum_topic_messages
async
¶
Unpin all messages in the 'General' topic of a forum.
get_custom_emoji_stickers
async
¶
Fetch the stickers for the given custom emoji ids.
upload_sticker_file
async
¶
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 a sticker to an existing set owned by the bot.
set_sticker_position_in_set
async
¶
Move a sticker to a new position within its set.
delete_sticker_from_set
async
¶
Remove a sticker from the set it belongs to.
replace_sticker_in_set
async
¶
Replace a sticker in a set with another one.
set_sticker_emoji_list
async
¶
Set the emoji associated with a bot-owned sticker.
set_sticker_keywords
async
¶
Set the search keywords for a bot-owned sticker.
set_sticker_mask_position
async
¶
Set the mask position of a bot-owned mask sticker.
set_sticker_set_title
async
¶
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 the thumbnail of a custom emoji sticker set.
delete_sticker_set
async
¶
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 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
async
¶
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
¶
Return the bot's current Telegram Stars balance.
refund_star_payment
async
¶
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.