Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# reddit.inbox

class praw.models.Inbox(reddit: praw.Reddit, _data: Optional[Dict[str, Any]])

  Inbox is a Listing class that represents the inbox.

  __init__(reddit: praw.Reddit, _data: Optional[Dict[str, Any]])

    Initialize a `PRAWBase` instance.

    Parameters:

      reddit – An instance of `Reddit`.

  all(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Union[praw.models.Message, praw.models.Comment]]

    Return a `ListingGenerator` for all inbox comments and messages.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    To output the type and ID of all items available via this listing do:

        for item in reddit.inbox.all(limit=None):
            print(repr(item))

  collapse(items: List[praw.models.Message])

    Mark an inbox message as collapsed.

    Parameters:

      items – A list containing instances of `Message`.

    Requests are batched at 25 items (reddit limit).

    For example, to collapse all unread Messages, try:

        from praw.models import Message

        unread_messages = []
        for item in reddit.inbox.unread(limit=None):
            if isinstance(item, Message):
                unread_messages.append(item)
        reddit.inbox.collapse(unread_messages)

    See also

    `Message.uncollapse()`

  comment_replies(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[praw.models.Comment]

    Return a `ListingGenerator` for comment replies.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    To output the author of one request worth of comment replies try:

        for reply in reddit.inbox.comment_replies():
            print(reply.author)

  mark_all_read()

    Mark all messages as read with just one API call.

    Example usage:

        reddit.inbox.mark_all_read()

    Note

    This method returns after Reddit acknowledges your request, instead of after the request has been fulfilled.

  mark_read(items: List[Union[praw.models.Comment, praw.models.Message]])

    Mark Comments or Messages as read.

    Parameters:

      items – A list containing instances of `Comment` and/or `Message` to be marked as read relative to the authorized user’s inbox.

    Requests are batched at 25 items (reddit limit).

    For example, to mark all unread Messages as read, try:

        from praw.models import Message

        unread_messages = []
        for item in reddit.inbox.unread(limit=None):
            if isinstance(item, Message):
                unread_messages.append(item)
        reddit.inbox.mark_read(unread_messages)

    See also

    - `Comment.mark_read()`

    - `Message.mark_read()`

  mark_unread(items: List[Union[praw.models.Comment, praw.models.Message]])

    Unmark Comments or Messages as read.

    Parameters:

      items – A list containing instances of `Comment` and/or `Message` to be marked as unread relative to the authorized user’s inbox.

    Requests are batched at 25 items (Reddit limit).

    For example, to mark the first 10 items as unread try:

        to_unread = list(reddit.inbox.all(limit=10))
        reddit.inbox.mark_unread(to_unread)

    See also

    - `Comment.mark_unread()`

    - `Message.mark_unread()`

  mentions(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[praw.models.Comment]

    Return a `ListingGenerator` for mentions.

    A mention is `Comment` in which the authorized redditor is named in its body like u/spez.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    For example, to output the author and body of the first 25 mentions try:

        for mention in reddit.inbox.mentions(limit=25):
            print(f"{mention.author}\\n{mention.body}\\n")

  message(message_id: str) → praw.models.Message

    Return a `Message` corresponding to `message_id`.

    Parameters:

      message_id – The base36 ID of a message.

    For example:

        message = reddit.inbox.message("7bnlgu")

  messages(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[praw.models.Message]

    Return a `ListingGenerator` for inbox messages.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    For example, to output the subject of the most recent 5 messages try:

        for message in reddit.inbox.messages(limit=5):
            print(message.subject)

  classmethod parse(data: Dict[str, Any], reddit: praw.Reddit) → Any

    Return an instance of `cls` from `data`.

    Parameters:

      - data – The structured data.

      - reddit – An instance of `Reddit`.

  sent(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[praw.models.Message]

    Return a `ListingGenerator` for sent messages.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    For example, to output the recipient of the most recent 15 messages try:

        for message in reddit.inbox.sent(limit=15):
            print(message.dest)

  stream(**stream_options: Union[str, int, Dict[str, str]]) → Iterator[Union[praw.models.Message, praw.models.Comment]]

    Yield new inbox items as they become available.

    Items are yielded oldest first. Up to 100 historical items will initially be returned.

    Keyword arguments are passed to `stream_generator()`.

    For example, to retrieve all new inbox items, try:

        for item in reddit.inbox.stream():
            print(item)

  submission_replies(**generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[praw.models.Comment]

    Return a `ListingGenerator` for submission replies.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    To output the author of one request worth of submission replies try:

        for reply in reddit.inbox.submission_replies():
            print(reply.author)

  uncollapse(items: List[praw.models.Message])

    Mark an inbox message as uncollapsed.

    Parameters:

      items – A list containing instances of `Message`.

    Requests are batched at 25 items (reddit limit).

    For example, to uncollapse all unread Messages, try:

        from praw.models import Message

        unread_messages = []
        for item in reddit.inbox.unread(limit=None):
            if isinstance(item, Message):
                unread_messages.append(item)
        reddit.inbox.uncollapse(unread_messages)

    See also

    `Message.collapse()`

  unread(*, mark_read: bool = False, **generator_kwargs: Union[str, int, Dict[str, str]]) → Iterator[Union[praw.models.Message, praw.models.Comment]]

    Return a `ListingGenerator` for unread comments and messages.

    Parameters:

      mark_read – Marks the inbox as read (default: `False`).

    Note

    This only marks the inbox as read not the messages. Use `Inbox.mark_read()` to mark the messages.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    For example, to output the author of unread comments try:

        from praw.models import Comment

        for item in reddit.inbox.unread(limit=None):
            if isinstance(item, Comment):
                print(item.author)