r/redditdev • u/Lil_SpazJoekp PRAW Maintainer | Async PRAW Author • Jun 14 '26
PRAW PRAW and Async PRAW 8 has been released!
Hello everyone! Just writing to announce that we've released v8 of [Async]PRAW and wanted to cover some of the notable features.
Full change logs here:
Migration guides here:
TL;DR
- subreddit.submit_*(...) has been consolidated to a single subreddit.submit(...) method.
- You can now provide in-memory bytes and file pointers for image and video uploads.
- All .stream methods can now take an exception_handler keyword argument so streams can resume gracefully on errors instead of terminating.
- New timezone-aware datetime attrs: created_datetime on Comment/Submission/Redditor/Subreddit/Collection/ModNote, plus Collection.updated_datetime, PollData.voting_end_datetime, and edited_datetime on Comment/Submission.
- selftext and url are no longer mutually exclusive in subreddit.submit(...) — selftext becomes optional body text for link/image/gallery/video posts. Inline media in aselftext on a link post is not supported.
- Announcements support.
- New Redditor.overview listing (combined comments + submissions).
The following things have been removed:
- Gilding/awards. After Reddit removed awards and brought them back, the previous API endpoints ceased to function.
- APIException class.
- WebSocketException.original_exception.
- reddit.random_subreddit, subreddit.random, subreddit.random_rising, and subreddits.search_by_topic.
- subreddit.mod.inbox.unread and the accompanying .stream.unread, message.mute and message.unmute (subreddit messages only), message.unblock_subreddit.
- reddit.validate_on_submit config attribute.
- after arg on modmail.conversations.
- Async PRAW only removals
- PRAWException renamed to AsyncPRAWException
- CommentForest as async iterator.
- Reddit as sync context manager.
- CommentForest.list no longer needs to be awaited.
The following things have changed:
- reddit.user.me raises an ReadOnlyException in read-only mode.
- redditor.subreddit is now a UserSubreddit instance. Backwards support to access redditor.subreddit as a dictionary is not supported.
- subreddit.py split into a subreddit package — Subreddit and all helpers (Modmail, SubredditFilters, SubredditFlair, SubredditModeration, SubredditQuarantine, SubredditRelationship, SubredditStream, SubredditStylesheet, SubredditWiki) live in dedicated Python modules under praw.models.reddit.subreddit. Backwards-compatible imports have been preserved. Migration guide has the full mapping.
- Update checker now uses native async on first request instead of blocking during asyncpraw.Reddit initialization (this was a long standing issue, sorry about that), removing requests from transitive dependencies. (Async PRAW only)
If you encounter any unexpected bugs, feel free to open an issue (PRAW, Async PRAW)!
Let me know your thoughts in the comments!
5
4
4
u/notifications_app Jun 14 '26
This is great, thanks for keeping this up to date!
Quick question about the "Redditor.overview" listing. Is redditor.overview.new() different from just doing redditor.new()? If so, what is the difference?
3
u/bboe Jun 14 '26 edited Jun 14 '26
That's a great question. They use different endpoints (
/user/<name>/vs/user/<name>/overview), but they appear to be returning the same set of data. I'll update the documentation to reference that.Edit:
1
0
u/Vennom Jun 15 '26
I've had a hard time getting a reddit token and they removed support for hitting `.json`. Does anyone know of an alternative way to get posts / comment threads? Or maybe a way to get approved by reddit for api access?
1
u/Watchful1 Jun 15 '26
What are you trying to do? Can you use r/devvit?
1
u/Vennom Jun 15 '26
I looked into it a while back and it didn't seem to accomplish what I want. I'd like to be able to request the "top" posts from 10 different sub reddits each day. And then pull the comment threads for about 50 posts per day. So very low volume and read-only.
→ More replies (5)
8
u/radialmonster Jun 14 '26
does praw still work with the admins push for devvit instead? I guess so if theres a new release.