praw
Python Reddit API Wrapper.
What it is and what it does
PRAW is a Python library that wraps Reddit's API, eliminating the need to write raw HTTP requests or manage rate-limiting logic yourself. It handles OAuth authentication, request formatting, and Reddit's rate limits transparently, so you can focus on the Reddit operations themselves—fetching submissions, comments, user data, or posting content. The library is built on top of prawcore and includes defusedxml for safe XML parsing, typing-extensions for type hints, and websocket-client for real-time features.
The package is designed for developers building Reddit bots, data analysis tools, or automation scripts. It supports Python 3.10 through 3.14 and is actively maintained. For asynchronous use cases (e.g., Discord bots or asyncio-based applications), the documentation recommends using Async PRAW instead, which mirrors PRAW's API but works in async contexts.
Use it for:
- Build Reddit bots that monitor subreddits, reply to posts, or perform moderation tasks automatically.
- Scrape Reddit data for research, sentiment analysis, or content aggregation without managing HTTP requests.
- Post submissions or comments programmatically to manage communities or distribute content.
- Retrieve user profiles, comment history, or subreddit metadata for analytics or reporting.
- Automate moderation workflows such as filtering, archiving, or responding to reports.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PRAW provides a Python interface to Reddit's API, handling authentication, rate limiting, and request formatting so you can read and write Reddit content without managing HTTP calls directly.
Yes. PRAW is a mature, actively maintained library with no known vulnerabilities, low install friction, and a permissive license. It is the standard choice for Reddit API access in Python. Install it if you need to interact with Reddit programmatically; use Async PRAW instead only if you're working in an asynchronous environment.
Install
praw on PyPI
pip
pip install prawuv
uv add prawpoetry
poetry add prawInstalling praw
Before you install
Installation is straightforward with low friction—a pure-Python wheel with five runtime dependencies. The project is actively maintained with a recent release (2 days old) and 4226 repository stars, indicating stable, well-supported code.
License in practice
PRAW is released under the Simplified BSD License (v4.0.0+), a permissive license that allows commercial and private use with minimal restrictions—only requiring retention of copyright and license notices.
Quickstart
pip install praw
import praw
reddit = praw.Reddit(
client_id="CLIENT_ID",
client_secret="CLIENT_SECRET",
user_agent="USERAGENT",
username="USERNAME",
password="PASSWORD"
)
submission = reddit.submission(url="https://www.reddit.com/comments/5e1az9")
submission.reply("Comment text")
Requires Python 3.10 or later and valid Reddit OAuth credentials (client_id, client_secret, username, password for script-type applications).
Verify before relying
- Whether rate limiting is fully automatic or requires configuration for different use cases.
- Performance characteristics when handling large-scale data retrieval or high-frequency posting.
- Specific Reddit API endpoint coverage and any known gaps relative to the full Reddit API.
Package facts
| License | Copyright (c) 2016, Bryce Boe All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1.… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — defusedxml, prawcore, typing-extensions, update-checker, websocket-client |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,804,965/month — #3,539 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: praw-8.0.3-py3-none-any.whl
Keywords: api, reddit, wrapper
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
asyncprawAsync PRAW provides asynchronous access to…
permissive · top 15,000 on PyPI
prawcoreprawcore provides low-level HTTP communication…
permissive · top 5,000 on PyPI
redditwarpRedditWarp is a Python wrapper for the Reddit…
permissive · top 15,000 on PyPI
asyncprawcoreasyncprawcore provides a low-level async HTTP…
permissive · top 15,000 on PyPI
discordA Python API wrapper for Discord that provides…
unclear · top 15,000 on PyPI
discord.pydiscord.py is an async-ready Python wrapper for…
permissive · top 5,000 on PyPI
django-ratelimitProvides a Django decorator to rate-limit views…
permissive · top 5,000 on PyPI
pyroforkPyrofork is an asynchronous Python framework…
copyleft · top 15,000 on PyPI
pipedreamProvides a Python client library for accessing…
unclear · top 15,000 on PyPI
pr-commenterA CLI tool that creates, updates, and manages…
permissive · top 15,000 on PyPI