Reddit Scraper
Pricing
from $0.70 / 1,000 results
Reddit Scraper
Crawl Reddit posts, comments, communities, and user profiles without requiring login. Pay only for the results you get, limit scraping by posts or items, and export complete datasets in multiple formats for easy analysis or integration.
Pricing
from $0.70 / 1,000 results
Rating
0.0
(0)
Developer
Scraping Dino
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Reddit Scraper | Extract Posts, Comments, Users & Communities
Collect Reddit posts, comments, user profiles, and communities in clean, structured JSON — ready for analysis, monitoring, and automation on Apify.
Paste a URL or enter a search keyword. Get consistent fields, media links, optional nested comment threads, and separate Output tabs for each data type.
- Scrape Reddit posts from subreddits, users, popular feeds, and search
- Scrape comments as flat rows or nested trees on each post
- Scrape communities with subscribers, descriptions, and metadata
- Scrape user profiles with karma and account details
- Search Reddit for posts, users, and communities
- Extract images & videos into
imageUrls,videoUrls, andmediaType - Export clean structured JSON built for Apify workflows and downstream tools
Features
| Capability | Included |
|---|---|
| Posts | ✓ |
| Comments | ✓ |
| User profiles | ✓ |
| Communities | ✓ |
| Keyword search | ✓ |
| Media extraction | ✓ |
Threaded comments (tree mode) | ✓ |
| NSFW filtering | ✓ |
| Date filtering | ✓ |
| Multiple sort orders | ✓ |
| Pagination & result caps | ✓ |
| Structured JSON output | ✓ |
| Apify dataset tabs (Posts / Comments / Users / Communities) | ✓ |
| Compatible with Apify Actors, Tasks, and Schedules | ✓ |
Supported inputs
Subreddit
https://www.reddit.com/r/AskReddit/https://www.reddit.com/r/python/new/https://www.reddit.com/r/technology/top/?t=week
User
https://www.reddit.com/user/spez/https://www.reddit.com/user/spez/submitted/https://www.reddit.com/user/spez/comments/
Post
https://www.reddit.com/r/AskReddit/comments/ablzuq/people_who_havent_pooped_in_2019_yet_why_are_you/
Popular & communities
https://www.reddit.com/r/popular/https://www.reddit.com/r/popular/rising/https://www.reddit.com/r/subreddits/
Search URL
https://www.reddit.com/search/?q=electric%20vehicles
You can also run keyword search without a URL via the searches input.
When startUrls are set, search keywords are ignored unless ignoreStartUrls is enabled.
Search support
| Mode | Input flag | What you get |
|---|---|---|
| Posts | searchPosts | Matching posts |
| Users | searchUsers | Matching profiles |
| Communities | searchCommunities | Matching subreddits |
Combine flags in one run. Sort and time filters apply where Reddit supports them.
Input options
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | string[] | — | Reddit URLs to scrape (subreddit, user, post, popular, search). |
searches | string[] | — | Keywords to search. Used when no start URLs are set, or when ignoreStartUrls is true. |
searchPosts | boolean | true | Include post results when searching. |
searchUsers | boolean | false | Include user results when searching. |
searchCommunities | boolean | false | Include community results when searching. |
includeComments | boolean | true | Fetch comments for posts. |
includeMediaLinks | boolean | true | Export imageUrls, videoUrls, and mediaType on posts. |
commentOutput | string | flat | flat = one dataset row per comment. tree = nest comments under each post. |
outputCompatibility | string | apify | apify = lean Store-friendly fields. extended = richer metadata. |
includeUserInfo | boolean | true | Fetch profile details for user URLs. |
includeCommunityInfo | boolean | true | Fetch community metadata for subreddit URLs. |
includeNSFW | boolean | true | Keep NSFW items. Set false to exclude them. |
sort | string | new | relevance, hot, top, new, rising, or comments. |
time | string | all | Time window for top/controversial: hour, day, week, month, year, all. |
maxItems | integer | 100 | Hard cap on all exported items combined. |
maxPosts | integer | 50 | Max posts per source (subreddit, user, search, popular). |
maxComments | integer | 50 | Max comments per post (0 skips comments). |
maxUsers | integer | 10 | Max users per search keyword. |
maxCommunities | integer | 10 | Max communities per search or community listing. |
postDateLimit | string | — | Keep posts on/after this date (YYYY-MM-DD). |
commentDateLimit | string | — | Keep comments on/after this date (YYYY-MM-DD). |
ignoreStartUrls | boolean | false | Process only searches, ignore startUrls. |
Output
Results land in separate Output tabs:
| Tab | Contents |
|---|---|
| Posts | Posts only |
| Comments | Comments only (flat mode) |
| Users | Profiles only |
| Communities | Subreddits only |
| All Fields | Everything in one combined dataset |
Every record includes dataType: post, comment, user, or community.
Post
{"dataType": "post","id": "ablzuq","parsedId": "ablzuq","title": "People who haven't pooped in 2019 yet, why are you still holding on to last years shit?","username": "ShoddySubstance","communityName": "r/AskReddit","parsedCommunityName": "AskReddit","upVotes": 221992,"upVoteRatio": 0.91,"numberOfComments": 7898,"over18": false,"isVideo": false,"mediaType": "text","imageUrls": [],"videoUrls": [],"createdAt": "2019-01-01T21:06:27.000Z","url": "https://www.reddit.com/r/AskReddit/comments/ablzuq/people_who_havent_pooped_in_2019_yet_why_are_you/"}
Comment
{"dataType": "comment","id": "ed1ap8n","parsedId": "ed1ap8n","body": "It's all I have","username": "example_user","communityName": "r/AskReddit","parentId": "t3_ablzuq","depth": 0,"upVotes": 46487,"createdAt": "2019-01-01T21:07:31.000Z","url": "https://www.reddit.com/r/AskReddit/comments/ablzuq/.../ed1ap8n/"}
User
{"dataType": "user","id": "1w72","username": "spez","karma": 940838,"linkKarma": 184381,"commentKarma": 756457,"createdAt": "2005-06-06T04:00:00.000Z","url": "https://www.reddit.com/user/spez/"}
Community
{"dataType": "community","id": "2qh1i","displayName": "AskReddit","communityName": "r/AskReddit","parsedCommunityName": "AskReddit","title": "Ask Reddit...","subscribers": 59336494,"over18": false,"createdAt": "2008-01-25T03:52:15.000Z","url": "https://www.reddit.com/r/AskReddit/"}
Media extraction
Set includeMediaLinks: true (default) to export media fields on posts.
| Field | Meaning |
|---|---|
imageUrls | Direct image URLs (including gallery images when available) |
videoUrls | Direct video URLs when Reddit exposes them |
mediaType | High-level type such as image, video, gallery, text, or link |
The actor detects galleries, hosted video, and common link thumbnails. When includeMediaLinks is false, those export fields are omitted for a leaner dataset.
Comment modes
Flat (default)
Each comment is its own dataset row — ideal for tables, CSV, and pipelines.
{ "dataType": "comment", "id": "abc", "parentId": "t3_post", "depth": 0, "body": "…" }{ "dataType": "comment", "id": "def", "parentId": "t1_abc", "depth": 1, "body": "…" }
Tree
Comments attach to each post as a nested comments array with replies. Scraping behavior is unchanged — only the export shape changes.
{"dataType": "post","id": "ablzuq","title": "…","comments": [{"id": "abc","parentId": "t3_ablzuq","depth": 0,"body": "Top-level reply","replies": [{ "id": "def", "parentId": "t1_abc", "depth": 1, "body": "Nested reply", "replies": [] }]}]}
Use tree only when includeComments is true.
Filtering
| Option | Behavior |
|---|---|
includeNSFW | false drops items flagged over18. |
postDateLimit | Keeps posts created on or after YYYY-MM-DD. |
commentDateLimit | Keeps comments created on or after YYYY-MM-DD. |
Combine with maxPosts, maxComments, and maxItems to control cost and run time.
Performance
- Uses optimized backend APIs instead of full browser crawling
- Paginates listings until your limits are reached, then stops
- Skips unnecessary follow-up requests when caps or filters are hit
- Suited to both small sample runs and larger monitoring jobs
Throughput depends on Reddit availability, selected limits, and whether comments/media are enabled.
Perfect for
- Market research — Track topics, questions, and engagement across communities
- Brand monitoring — Watch mentions, threads, and sentiment signals
- Sentiment analysis — Build labeled post and comment corpora
- Lead generation — Find active users and niche communities
- Academic research — Collect structured public Reddit data at scale
- Content discovery — Surface trending posts and discussions
- AI training — Export clean text and media metadata for models
- Competitive intelligence — Compare presence across subreddits and creators
Limitations
- Keyword search for comments is not supported
- Keyword search for media-only results is not supported
- Private or restricted communities return only what Reddit makes publicly available
- Deleted or suspended accounts may return partial or empty profiles
- Very large comment threads are bounded by
maxCommentsandmaxItems
FAQ
Can I scrape NSFW content?
Yes. Keep includeNSFW: true, or set it to false to exclude NSFW items.
Can I scrape multiple URLs in one run?
Yes. Add as many URLs as you need to startUrls.
Can I scrape a single post and its comments?
Yes. Paste the post URL, keep includeComments: true, and set maxComments as needed.
Can I scrape user profiles?
Yes. Use a /user/… URL or enable searchUsers with keywords.
Can I scrape communities / subreddits?
Yes. Use a /r/… URL or enable searchCommunities.
Does it support media?
Yes. With includeMediaLinks: true, posts include imageUrls, videoUrls, and mediaType.
Can I export nested comment threads?
Yes. Set commentOutput: "tree".
Can I export flat comments for CSV?
Yes. That is the default (commentOutput: "flat").
How many posts can I collect?
As many as your limits allow. Use maxPosts per source and maxItems as a global cap.
Can I filter by date?
Yes. Use postDateLimit and commentDateLimit (YYYY-MM-DD).
Can I sort by hot, top, or new?
Yes. Use sort and, for top/controversial windows, time.
Can I export JSON?
Yes. Download any Output tab or the combined All Fields dataset as JSON, CSV, Excel, and more.
What if a user is deleted?
You may get partial fields or empty profile data. The run continues.
Can I scrape private communities?
Only public data Reddit exposes. Private communities are not accessible.
Do start URLs override search?
Yes. When startUrls are present, searches are ignored unless ignoreStartUrls is true.
Where do communities appear in the Output tab?
In the Communities tab — not under Posts.
Why this actor?
Choose this scraper when you want Reddit data that is ready to use without cleanup gymnastics.
- Clean, consistent fields —
username,communityName,upVoteRatio,createdAt, and cleardataTypetags - Rich metadata — scores, flair, NSFW flags, permalinks, and community stats
- Media that ships — image, video, and gallery URLs when you need them
- Comments your way — flat rows for analytics, or trees for thread structure
- Separate Output tabs — Posts, Comments, Users, and Communities stay cleanly separated
- Built for Apify — schedules, tasks, webhooks, and dataset exports work out of the box
- Production-minded controls — limits, date filters, NSFW filters, and search modes that scale with you
Paste a URL. Hit Start. Get structured Reddit data.