Returns: List[MessageId]

class aiogram.methods.copy_messages.CopyMessages(*, chat_id: int | str, from_chat_id: int | str, message_ids: List[int], message_thread_id: int | None = None, disable_notification: bool | None = None, protect_content: bool | None = None, remove_caption: bool | None = None, **extra_data: Any)[source]#

Use this method to copy messages of any kind. If some of the specified messages can’t be found or copied, they are skipped. Service messages, giveaway messages, giveaway winners messages, and invoice messages can’t be copied. A quiz aiogram.methods.poll.Poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method aiogram.methods.forward_messages.ForwardMessages, but the copied messages don’t have a link to the original message. Album grouping is kept for copied messages. On success, an array of aiogram.types.message_id.MessageId of the sent messages is returned.


chat_id: int | str#

Unique identifier for the target chat or username of the target channel (in the format @channelusername)

from_chat_id: int | str#

Unique identifier for the chat where the original messages were sent (or channel username in the format @channelusername)

message_ids: List[int]#

A JSON-serialized list of 1-100 identifiers of messages in the chat from_chat_id to copy. The identifiers must be specified in a strictly increasing order.

message_thread_id: int | None#

Unique identifier for the target message thread (topic) of the forum; for forum supergroups only

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_post_init(_ModelMetaclass__context: Any) None#

We need to both initialize private attributes and call the user-defined model_post_init method.

disable_notification: bool | None#

Sends the messages silently. Users will receive a notification with no sound.

protect_content: bool | None#

Protects the contents of the sent messages from forwarding and saving

remove_caption: bool | None#

Pass True to copy the messages without their captions


As bot method#

result: List[MessageId] = await bot.copy_messages(...)

Method as object#


  • from aiogram.methods.copy_messages import CopyMessages

  • alias: from aiogram.methods import CopyMessages

With specific bot#

result: List[MessageId] = await bot(CopyMessages(...))

As reply into Webhook in handler#

return CopyMessages(...)