delete_messages()#

Client.delete_messages()#

Delete messages, including service messages, with the following limitations:

  • For BOTS Only: A message can only be deleted if it was sent less than 48 hours ago.

  • Service messages about a supergroup, channel, or forum topic creation can’t be deleted.

  • A dice message in a private chat can only be deleted if it was sent more than 24 hours ago.

  • Client can delete outgoing messages in private chats, groups, and supergroups.

  • Client can delete incoming messages in private chats.

  • Client granted can_post_messages permissions can delete outgoing messages in channels.

  • If the Client is an administrator of a group, it can delete any message there.

  • If the Client has can_delete_messages permission in a supergroup or a channel, it can delete any message there.

Use this method to delete multiple messages simultaneously. If some of the specified messages can’t be found, they are skipped.

Usable by Users Bots

Please be aware about using the correct Message Identifiers, specifically when using the is_scheduled parameter.

Parameters:
  • chat_id (int | str) – Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use “me” or “self”. For a contact that exists in your Telegram address book you can use his phone number (str).

  • message_ids (int | Iterable of int) – An iterable of message identifiers to delete (integers) or a single message id.

  • revoke (bool, optional) – Deletes messages on both parts. This is only for private cloud chats and normal groups, messages on channels and supergroups are always revoked (i.e.: deleted for everyone). Defaults to True.

  • is_scheduled (bool, optional) – True, if the specified message_ids refers to a scheduled message. Defaults to False.

Returns:

int – Amount of affected messages

Example

# Delete one message
await app.delete_messages(chat_id, message_id)

# Delete multiple messages at once
await app.delete_messages(chat_id, list_of_message_ids)

# Delete messages only on your side (without revoking)
await app.delete_messages(chat_id, message_id, revoke=False)