
4.2k stars · BSD-2-Clause · v8.0.3 (2026-08-12) · Track this in Rising ↗
The mature Python client for Reddit's official API — search the archive where buyers describe the problem in their own words.
Radar check
What we found when we opened it. Every bar is one fact, with its date.
Last code pushed 26 Oct 2026, one day before this check.
Latest release v8.0.3 on 12 Aug 2026.
Public since August 2010, a little over 16 years.
4,289 stars and 504 forks.
120 commits and 1 new issues in the last 90 days.
237 contributors. 59 pull requests merged in 90 days.
A security policy says how to report a problem. No published security advisories.
How the bars are scored
- Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
- Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
- Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
- Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
- Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
- Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
- Security. A published security policy 80, none 40; published advisories are listed, not scored.
Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 7.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You register an application with Reddit, which gives you a client id and a secret, and the library handles authentication from there. It exposes subreddits, posts, comments and search results as ordinary Python objects, so a post's comment tree is something you walk rather than something you parse. It respects Reddit's own request rules internally, which means no waiting code of your own. A streaming mode yields new posts and comments as they appear. It can also write — post, comment, vote and moderate — and the moderation support is substantial. What it does not do is work around the official limits: there is no access to deleted content, no bulk historical export, and Reddit's own search is as weak through the library as it is on the site. It needs Python 3.10 or newer.
Why it matters
Who it suits. Anyone doing research on what people say about a subject in public: a writer looking for the words real readers use, a researcher collecting posts, a maintainer watching for questions about their project. It also suits moderators, who are a large part of why the library is as complete as it is. Skip it if the need is historical bulk data, because that is a different problem with a different answer.
Verdict. Worth the setup if the reading is going to be regular rather than once. The archive and the search are the valuable half early on, because the need is usually to read the last two years of questions rather than to be told about the next one. Three cautions. Registering the application is genuinely tedious, Reddit's terms for automated access have changed more than once, and the site's own search is poor enough that the practical approach is to pull broadly and filter locally. Using it to post links is the trap: an account that only ever drops links gets banned, correctly. Edition 4 covered DIYgod/RSSHub, which turns a subreddit into a feed of new items and cannot search the past at all; the two are complementary. Version 8.0.3 of 12 August 2026 is current and code landed in October, so the project is quiet and tended rather than slowing down.
Summary (Key Points)from the README
Key features
- Reddit API access: Gives simple Python access to Reddit's API.
- Built-in API rule compliance: Internally follows all of Reddit's API rules.
- No manual rate-limit handling: You don't need to add sleep calls to your code.
- Quick setup: Give the client an appropriate user agent and it is ready to use.
- Script-type OAuth quickstart: Create a PRAW instance with credentials for a script-type OAuth application, then interact with Reddit through that instance.
- Async option: Async PRAW is the official asynchronous version, with similar usage and the same features, for use with discord.py or asyncio.
- Full documentation: Hosted PRAW documentation includes more examples.
Ways to install
| Platform or method | What it needs | Effort |
|---|---|---|
| uv (recommended) | Python 3.10+ | Not stated |
| pip (stable release) | Python 3.10+ and pip | Not stated |
| pip (latest development version) | Python 3.10+ and pip | Not stated |
Important
- Python version: PRAW supports Python 3.10 and newer only.
- Credentials required: The quickstart assumes you already have credentials for a script-type OAuth application.
- Async environments: For asynchronous use such as discord.py or asyncio, the README recommends Async PRAW instead of PRAW.
- Development version: The README gives a command for the latest development version but does not describe its stability.
- Licensing change: Source from v4.0.0 onward uses the Simplified BSD License, while earlier versions were released under GPLv3.
- Support etiquette: Search existing questions first, and do not directly message contributors unless they have said they are open to it.
Written by an AI model from the project’s README; not part of the review, and it can be wrong.
- BSD-2-Clause, the official interface, and mature enough that example code is almost always correct.
- Request limits are handled inside the library, so an overnight script is safe to leave running.
- Historical search and full comment trees, which a feed cannot give.
- Registering an application for a client id and secret is a tedious first half hour.
- Reddit's rules for automated access have changed sharply in recent years; read the current ones before building a habit.
- Reddit's own search is weak, so expect to pull broadly and filter locally.
RSSHub gets you a feed of new items.
python3 -m venv venv source venv/bin/activate pip install praw
