search_messages()

Client.search_messages()

Search for text and media messages inside a specific chat.

If you want to get the messages count only, see search_messages_count().

Usable by Users Bots

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).

  • query (str, optional) – Text query string. Required for text-only messages, optional for media messages (see the filter argument). When passed while searching for media messages, the query will be applied to captions. Defaults to “” (empty string).

  • offset (int, optional) – Sequential number of the first message to be returned. Defaults to 0.

  • offset_id (int, optional) – Identifier of the message starting from which the search should be done. Defaults to 0.

  • min_date (datetime, optional) – Pass a date to retrieve messages sent after this date only. Defaults to epoch (lowest possible date).

  • max_date (datetime, optional) – Pass a date to retrieve messages sent before this date only. Defaults to epoch (lowest possible date).

  • min_id (int, optional) – Identifier of the message starting from which the search should be done. Defaults to 0.

  • max_id (int, optional) – Identifier of the message ending at which the search should be done. Defaults to 0.

  • filter (MessagesFilter, optional) – Pass a filter in order to search for specific kind of messages only. Defaults to any message (no filter).

  • limit (int, optional) – Limits the number of messages to be retrieved. By default, no limit is applied and all messages are returned.

  • from_user (int | str, optional) – Unique identifier (int) or username (str) of the target user you want to search for messages from.

  • message_thread_id (int, optional) – Unique identifier of the thread (Message.message_thread_id or Message.reply_top_message_id) to search in.

Returns:

Generator – A generator yielding Message objects.

Example

from pyrogram import enums


async for message in app.search_messages(chat_id, query="hello", limit=120):
    print(message.text)


async for message in app.search_messages(chat_id, filter=enums.MessagesFilter.PINNED):
    print(message.text)


async for message in app.search_messages(chat, "hello", from_user="me"):
    print(message.text)