class praw.models.User(reddit: praw.Reddit)

The user class provides methods for the currently authenticated user.

__init__(reddit: praw.Reddit)

Initialize a User instance.

This class is intended to be interfaced with through reddit.user.


Return a RedditorList of blocked Redditors.

contributor_subreddits(**generator_kwargs: Union[str, int, Dict[str, str]])Iterator[praw.models.Subreddit]

Return a ListingGenerator of contributor subreddits.

These are subreddits that the user is a contributor of.

Additional keyword arguments are passed in the initialization of ListingGenerator.

friends(user: Optional[Union[praw.models.Redditor, str]] = None)Union[List[praw.models.Redditor], praw.models.Redditor]

Return a RedditorList of friends or a Redditor in the friends list.


user – Checks to see if you are friends with the Redditor. Either an instance of Redditor or a string can be given.


A list of Redditors, or a Redditor if you are friends with the given Redditor. The Redditor also has friend attributes.


An instance of RedditAPIException if you are not friends with the specified Redditor.

karma()Dict[praw.models.Subreddit, Dict[str, int]]

Return a dictionary mapping subreddits to their karma.

The returned dict contains subreddits as keys. Each subreddit key contains a sub-dict that have keys for comment_karma and link_karma. The dict is sorted in descending karma order.


Each key of the main dict is an instance of Subreddit. It is recommended to iterate over the dict in order to retrieve the values, preferably through dict.items().

me(use_cache: bool = True)Optional[praw.models.Redditor]

Return a Redditor instance for the authenticated user.


use_cache – When true, and if this function has been previously called, returned the cached version (default: True).


If you change the Reddit instance’s authorization, you might want to refresh the cached value. Prefer using separate Reddit instances, however, for distinct authorizations.

Deprecated since version 7.2: In read_only mode this method returns None. In PRAW 8 this method will raise ReadOnlyException when called in read_only mode. To operate in PRAW 8 mode, set the config variable praw8_raise_exception_on_me to True.


Return a list of multireddits belonging to the user.

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

Return an instance of cls from data.

  • data – The structured data.

  • reddit – An instance of Reddit.


Get an instance of Preferences.

The preferences can be accessed as a dict like so:

preferences = reddit.user.preferences()

Preferences can be updated via:


The Preferences.update() method returns the new state of the preferences as a dict, which can be used to check whether a change went through. Changes with invalid types or parameter names fail silently.

original_preferences = reddit.user.preferences()
new_preferences = reddit.user.preferences.update(invalid_param=123)
print(original_preferences == new_preferences)  # True, no change
subreddits(**generator_kwargs: Union[str, int, Dict[str, str]])Iterator[praw.models.Subreddit]

Return a ListingGenerator of subreddits the user is subscribed to.

Additional keyword arguments are passed in the initialization of ListingGenerator.