Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.

Subscribe to updates I use praw

Statistics on praw

Number of watchers on Github 1496
Number of open issues 3
Average time to close an issue 7 days
Main language Python
Average time to merge a PR 1 day
Open pull requests 9+
Closed pull requests 23+
Last commit almost 2 years ago
Repo Created over 9 years ago
Repo Last Updated over 1 year ago
Size 39.8 MB
Homepage http://praw.readt...
Organization / Authorpraw-dev
Page Updated
Do you use praw? Leave a review!
View open issues (3)
View praw activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating praw for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

PRAW: The Python Reddit API Wrapper

.. image:: :alt: Latest PRAW Version :target: .. image:: :alt: Travis CI Status :target: .. image:: :alt: Coveralls Coverage :target: .. image:: :alt: Join the chat at :target:

PRAW, an acronym for Python Reddit API Wrapper, is a python package that allows for simple access to Reddit's API. PRAW aims to be easy to use and internally follows all of Reddit's API rules <>_. With PRAW there's no need to introduce sleep calls in your code. Give your client an appropriate user agent and you're set.

.. _installation:


PRAW is supported on python 2.7, 3.3, 3.4, 3.5 and 3.6. The recommended way to install PRAW is via pip <>_.

.. code-block:: bash

pip install praw

To install the latest development version of PRAW run the following instead:

.. code-block:: bash

pip install --upgrade

For instructions on installing python and pip see The Hitchhiker's Guide to Python Installation Guides <>_.


Assuming you already have a credentials for a script-type OAuth application you can instantiate an instance of PRAW like so:

.. code-block:: python

import praw reddit = praw.Reddit(client_id='CLIENT_ID', client_secret=CLIENT_SECRET, password='PASSWORD', user_agent='USERAGENT', username='USERNAME')

With the reddit instance you can then interact with Reddit:

.. code-block:: python

# Create a submission to /r/test reddit.subreddit('test').submit('Test Submission', url='')

# Comment on a known submission submission = reddit.submission(url='') submission.reply('Super rad!')

# Reply to the first comment of a weekly top thread of a moderated community submission = next(reddit.subreddit('mod').top('week')) submission.comments[0].reply('An automated reply')

# Output score for the first 256 items on the frontpage for submission in print(submission.score)

# Obtain the moderator listing for redditdev for moderator in reddit.subreddit('redditdev').moderator: print(moderator)

Please see PRAW's documentation <>_ for more examples of what you can do with PRAW.

PRAW Discussion and Support

For those new to python, or would otherwise consider themselves a python beginner, please consider asking questions on the r/learnpython <>_ subreddit. There are wonderful people there who can help with general python and simple PRAW related questions.

Otherwise, there are a few official places to ask questions about PRAW:

/r/redditdev <>_ is the best place on Reddit to ask PRAW related questions. This subreddit is for all Reddit API related discussion so please tag submissions with [PRAW]. Please perform a search on the subreddit first to see if anyone has similar questions.

Real-time chat can be conducted via the praw-dev/praw <>_ channel on gitter.

Please do not directly message any of the contributors via Reddit, email, or gitter unless they have indicated otherwise. We strongly encourage everyone to help others with their questions.

Please file bugs and feature requests as issues on GitHub <>_ after first searching to ensure a similar issue was not already filed. If such an issue already exists please give it a thumbs up reaction. Comments to issues containing additional information are certainly welcome.

.. note:: This project is released with a Contributor Code of Conduct <>_. By participating in this project you agree to abide by its terms.


PRAW's documentation is located at


August 2010 <>_: Timothy Mellor created a github project called reddit_api.

March 2011 <>_: The python package reddit was registered and uploaded to pypi.

December 2011 <>_: Bryce Boe took over as maintainer of the reddit package.

June 2012 <>_: Bryce renamed the project PRAW and the repository was relocated to the newly created praw-dev organization on GitHub.

February 2016 <>_: Bryce began work on PRAW4, a complete rewrite of PRAW.


PRAW's source (v4.0.0+) is provided under the Simplified BSD License <>_.

  • Copyright (c), 2016, Bryce Boe

Earlier versions of PRAW were released under GPLv3 <>_.

praw open issues Ask a question     (View All Issues)
  • about 3 years PRAW4: Duplicate entries from subreddit().stream.submissions()
  • over 3 years PRAW4 To Do List
  • over 3 years Provide analog of praw.objects.Submission.replace_more_comments for praw.objects.Comment
  • over 3 years Dependency ranges too small
  • almost 4 years Unhelpful exception raised from Celery task
  • almost 4 years Add support for /randomrising
  • almost 4 years Forbidden and Captcha errors with using update_settings [ver 3.3.0]
  • almost 4 years Forbidden errors are silenced on SubmitMixin.submit
  • almost 4 years Support for Reddit Live?
  • almost 4 years Stack overflow when invalid subreddit fetched with get_subreddit
  • almost 4 years Add version argument to get_wiki_page
  • about 4 years Allow sr quarantine optins and optouts
  • about 4 years "Edit on github" in readthedocs redirects to a 404
  • about 4 years Post.replace_more_comments() function does not work with oauth
  • about 4 years Voting should return a client exception if the given post / comment is archived
  • about 4 years More info on #519 + inconsistency with the refresh method on comments due to reddit behavior
  • about 4 years Add support for Subreddit-owned multireddits Multireddits
  • over 4 years Refresh method exception
  • over 4 years `comments` of the `submission` property does not give the full submission object
  • over 4 years Use `raw_json=1`
  • over 4 years submission_stream and comment_stream only get new data every second request
  • over 4 years An api for getting the parent comment's id, the body and the username of the commentor.
  • over 4 years Forbidden error when trying to retrieve content_md of a WikiPage object in a private subreddit
  • over 4 years Crashing on Non-Standard Characters When Getting a Submission
  • over 4 years Approving submissions from shadowbanned accounts doesn't work?
  • over 4 years Decoding a string using 'ascii' is dangerous
  • over 4 years Assertion Error while filling in a MoreComments object.
  • over 4 years MoreComments.comments() return value
  • over 4 years add_moderator() doesn't support non-full permissions
praw open pull requests (View All Pulls)
  • Patch rare refresh exception
  • PRAW - The TREES Update!
  • Add method for getting lazy instance of a comment.
  • Add method get_rules for a subreddit's rules
  • Add `LiveThreadContribution` class and `add_update()` method
  • Added the ability to delete comments from inbox
  • Comment by url
  • Add `store_json` property to keep json response from Reddit
  • Added Emoji Support to PRAW
praw questions on Stackoverflow (View All Questions)
  • How to look through post in Reddit with praw
  • subreddits of user using PRAW or R
  • Searching and Extracting Reddit data from Python using PRAW
  • How to return raw comment data in PRAW instead of memory address (Python 3.5)?
  • How can I make a list of the top comments in a subreddit with PRAW?
  • Reddit Praw Api usage to search submissions
  • Cx_Freezing a PySide, praw, requests application stops working when frozen
  • PRAW: Progress bar for replace_more_comments()?
  • PRAW: Authorizing with OAuth prevents me from getting submissions/comments
  • Pyinstaller binary not working with PRAW config
  • Detecting NSFW submissions with praw
  • How do you get the url from Submission object in PRAW?
  • Unicode Error when trying to process blank character text in PRAW
  • Help getting URL linked to by Reddit post With PRAW
  • recursion max error when when using futures.ProcessPoolExecutor but not futures.ThreadPoolExecutor with PRAW wrapper
  • How do I use PRAW and python to retrieve reddit post data from a certain user?
  • Pulling all posts from a single subreddit. Praw?
  • Python PRAW Converting Mobile Wikipedia Link to Non-Mobile
  • How to get a redditors most down voted comment using PRAW?
  • how do I install praw
  • Tkinter Reddit scraper (Tkinter and Praw) returns error "TypeError"
  • Praw script throws an error
  • Including the username of comment above in reply by bot with PRAW
  • PRAW: Grab All Root Level Comments for all of a User's Submissions...Quickly?
  • Cannot find PRAW config file when wrapping application with py2app
  • Problems using PRAW (searching and posting)
  • Can I obtain the most popular sub-reddits during a specified time frame using Reddit API PRAW?
  • Using PRAW to pull more than 1000 top entries
  • Submit Post with PRAW
  • 403 Client HTTPError when trying to connect to Reddit via praw
praw list of languages used
More projects by praw-dev View all
Other projects in Python