Search for text and media messages inside a specific chat.

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

  • filter (str, optional) – Pass a filter in order to search for specific kind of messages only:

    • "empty": Search for all kind of messages (default).

    • "photo": Search for photos.

    • "video": Search for video.

    • "photo_video": Search for either photo or video.

    • "document": Search for documents (generic files).

    • "url": Search for messages containing URLs (web links).

    • "animation": Search for animations (GIFs).

    • "voice_note": Search for voice notes.

    • "audio": Search for audio files (music).

    • "chat_photo": Search for chat photos.

    • "phone_call": Search for phone calls.

    • "audio_video_note": Search for either audio or video notes.

    • "video_note": Search for video notes.

    • "mention": Search for messages containing mentions to yourself.

    • "location": Search for location messages.

    • "contact": Search for contact messages.

    • "pinned": Search for pinned messages.

  • 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) – Unique identifier (int) or username (str) of the target user you want to search for messages from.


Generator – A generator yielding Message objects.


# Search for text messages in @pyrogramchat. Get the last 333 results
for message in app.search_messages("pyrogramchat", query="dan", limit=333):

# Search for pinned messages in @pyrogramchat
for message in app.search_messages("pyrogramchat", filter="pinned"):

# Search for messages containing "hi" sent by @haskell in @pyrogramchat
for message in app.search_messages("pyrogramchat", "hi", from_user="haskell"):