Reddit Community Scraper ๐พ
Pricing
Pay per usage
Reddit Community Scraper ๐พ
Efficiently extract detailed data from Reddit communities and subreddits. This lightweight actor is designed for speed and simplicity. For optimal performance and to minimize the risk of rate limiting or blocking, the use of residential proxies is highly recommended.
Pricing
Pay per usage
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
4
Bookmarked
41
Total users
9
Monthly active users
11 days ago
Last modified
Categories
Share
What does Reddit Community Scraper do?
Reddit Community Scraper collects structured posts and comments from public Reddit communities. Enter subreddit, user profile, or direct post URLs and receive fast records containing text, authors, communities, links, media, engagement, moderation flags, and timestamps.
Use the Actor for community research, content analysis, competitor monitoring, creator research, moderation studies, and reporting datasets. Control post and comment counts, sorting, time range, NSFW handling, post age, and proxy configuration.
Why use Reddit Community Scraper?
- Collect posts and discussions together - Save the original post and its comments as separate, structured dataset records.
- Support several Reddit source types - Process communities, public user profiles, direct post threads, or mixed URL lists in one run.
- Keep useful context - Comment records include parent post information, while post records include community, author, media, link, and engagement details when available.
- Focus the dataset - Set post and comment limits, request newest-first activity, restrict posts by age, skip comments, or exclude NSFW content.
- Prepare data for analysis - Export the dataset as JSON, CSV, Excel, XML, or connect it to another workflow through Apify integrations and APIs.
What data can you extract from Reddit?
The dataset includes post and comment records. Fields appear when Reddit provides the corresponding information, so metadata can vary by item.
| Data area | Important fields | Description |
|---|---|---|
| Record identity | dataType, id, parsedId | Identifies whether the item is a post or comment and provides its Reddit identifiers. |
| Source links | url, permalink, sourceUrl | Direct item URL, relative permalink, and URL used as the run source. |
| Text | title, body, html | Post title and post or comment content, including formatted content when available. |
| Author | username, userId, postAuthor | Author information for the item and, on comments, the parent post author. |
| Community | communityName, parsedCommunityName, subredditId | Community name and Reddit community identifier. |
| Thread context | postId, parsedPostId, postTitle, postUrl, parentId, depth | Parent post and nesting information. |
| Engagement | numberOfComments, upVotes, ups, downs, upVoteRatio, controversiality | Scores, vote counts, ratios, and comment counts when available. |
| Links and media | domain, link, thumbnailUrl, imageUrls, mediaType | External links, domains, thumbnails, image URLs, and derived media type. |
| Community metadata | flair, authorFlairText, authorFlairRichtext, category, discussionType | Flair and other metadata when exposed by Reddit. |
| Status flags | isVideo, isAd, isSelf, isPinned, isStickied, isLocked, isSpoiler, isArchived, over18 | Content, moderation, and visibility flags. |
| Dates and provenance | createdAt, editedAt, scrapedAt, retrievalSource | Creation and edit times, collection time, and source category for the record. |
How to use Reddit Community Scraper
- Open the Actor in Apify Console.
- Add one or more public Reddit URLs to
startUrls. - Set the number of posts and comments you want to collect.
- Choose sorting, time, age, NSFW, and comment options as needed.
- Run the Actor and review the dataset preview.
- Export the results or connect the dataset to a workflow.
A subreddit URL is the simplest starting point. Use a direct post URL for one discussion, or a user profile URL for recent public activity from one account.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | Yes | Actor example URL | Reddit URLs to process. Supports subreddit URLs, public user profile URLs, and direct post URLs. |
maxPostCount | Integer | No | 4 | Maximum number of posts to save across all supplied sources. Set to 0 to skip posts. |
maxCommentsPerPost | Integer | No | 2 | Maximum number of comments to save for each post. Set to 0 to skip comments. |
skipComments | Boolean | No | false | Skip comment collection entirely when set to true. |
sort | String | No | "new" | Accepted sort preference. The selected public data source returns newest-first results; unsupported ranking preferences are reported in the run log. |
time | String | No | "all" | Optional date window for supported time-based requests: hour, day, week, month, year, or all. |
includeNSFW | Boolean | No | false | Include posts marked as NSFW. |
maxPostAgeDays | Integer | No | Not set | Save only posts created within the last specified number of days. |
proxy | Object | No | Apify Proxy prefill | Proxy configuration for repeated or higher-volume runs. |
These are runtime limits. Availability depends on the supplied URLs, public visibility, thread contents, and the current coverage of the public data source. Engagement values may lag behind live Reddit values.
Output Data
Each dataset item is a JSON object. Key output fields are listed below.
| Field | Type | Description |
|---|---|---|
dataType | String | Either post or comment. |
id | String | Full Reddit identifier, such as t3_... for a post or t1_... for a comment. |
parsedId | String | Short Reddit item identifier. |
url | String | Absolute URL for the post or comment. |
title | String | Post title. Usually absent from comment records. |
body | String | Post or comment text. |
username | String | Author username when available. |
communityName | String | Community name, such as r/GrowthHacking. |
postId | String | Parent post identifier for comment records. |
postTitle | String | Parent post title for comment records. |
parentId | String | Immediate parent identifier for comments. |
depth | Integer | Comment nesting depth. |
upVotes | Integer | Score shown for the item. |
numberOfComments | Integer | Comment count associated with a post. |
link | String | External link for link posts, when available. |
imageUrls | Array | Preview or gallery image URLs, when available. |
mediaType | String | Content type such as text, image, video, or link. |
createdAt | String | Creation time in ISO 8601 format. |
scrapedAt | String | Collection time in ISO 8601 format. |
sourceUrl | String | Reddit URL that produced the record. |
retrievalSource | String | Source category used for the record, such as a comment thread. |
Additional fields can include ups, downs, upVoteRatio, flair, awards, author flags, moderation flags, archive status, and edit time. Missing values are omitted.
Usage Examples
Scrape a subreddit
Collect new posts and a small number of comments from one community:
{"startUrls": [{"url": "https://www.reddit.com/r/GrowthHacking/"}],"maxPostCount": 20,"maxCommentsPerPost": 10,"sort": "new"}
Scrape multiple communities
Compare recent activity from several communities in one dataset:
{"startUrls": [{"url": "https://www.reddit.com/r/technology/"},{"url": "https://www.reddit.com/r/startups/"}],"maxPostCount": 30,"maxCommentsPerPost": 5,"sort": "top","time": "week","maxPostAgeDays": 30}
Scrape a direct post thread
Collect one discussion and its comments. A direct post URL is useful for focused research or monitoring a known thread:
{"startUrls": [{"url": "https://www.reddit.com/r/GrowthHacking/comments/1tuorhf/best_inbound_ai_sdr_tools_in_2026_or_are_we_all/"}],"maxPostCount": 1,"maxCommentsPerPost": 50}
Scrape a Reddit user profile
Collect public posts from a user profile without downloading comments:
{"startUrls": [{"url": "https://www.reddit.com/user/example_user/"}],"maxPostCount": 15,"skipComments": true}
Sample Output
This comment shows a typical item. Fields vary because Reddit does not expose the same metadata on every record.
{"dataType": "comment","id": "t1_opaxdor","parsedId": "opaxdor","url": "https://www.reddit.com/r/GrowthHacking/comments/1tuorhf/best_inbound_ai_sdr_tools_in_2026_or_are_we_all/opaxdor/","permalink": "/r/GrowthHacking/comments/1tuorhf/best_inbound_ai_sdr_tools_in_2026_or_are_we_all/opaxdor/","parentId": "t3_1tuorhf","postId": "t3_1tuorhf","parsedPostId": "1tuorhf","postTitle": "Best inbound ai sdr tools in 2026 or are we all just paying for better dashboards?","postAuthor": "GoldTap9957","postUrl": "https://www.reddit.com/r/GrowthHacking/comments/1tuorhf/best_inbound_ai_sdr_tools_in_2026_or_are_we_all/","username": "LeaderAtLeading","userId": "t2_2c0mv5otpl","communityName": "r/GrowthHacking","parsedCommunityName": "GrowthHacking","subredditId": "t5_2vpgj","body": "Most are dashboards with LLMs glued on. Real signal is still manual to verify.","html": "<div class=\"md\"><p>Most are dashboards with LLMs glued on. Real signal is still manual to verify.</p></div>","depth": 0,"upVotes": 1,"ups": 1,"downs": 0,"controversiality": 0,"totalAwardsReceived": 0,"isSubmitter": false,"isStickied": false,"isLocked": false,"isArchived": false,"isCollapsed": false,"authorIsBlocked": false,"authorPremium": true,"createdAt": "2026-06-02T12:06:29.000Z","scrapedAt": "2026-06-02T13:43:02.535Z","sourceUrl": "https://www.reddit.com/r/GrowthHacking","retrievalSource": "comment_thread"}
Tips for Best Results
- Start with a small run - Test one subreddit or post with a low
maxPostCountbefore collecting a larger dataset. - Use direct URLs for focused work - A direct post URL avoids collecting unrelated community posts when you only need one discussion.
- Choose sorting deliberately - Use
newfor newest activity. Other accepted sort values are preserved for input compatibility, but results are returned newest-first rather than ranked by live Reddit score. - Limit comments for speed and size - Use
skipComments: truefor post-only monitoring, or setmaxCommentsPerPostfor the depth you need. - Use
maxPostAgeDaysfor recent research - This helps with trend monitoring and recurring runs. - Review content settings - Keep
includeNSFWdisabled unless your use case requires it. - Use proxy settings when needed - Apify Proxy is optional for the selected source, but can help stabilize larger or repeated runs.
- Expect sparse metadata - Deleted authors, private profiles, removed content, and unavailable media can result in missing fields.
Integrations and Export Formats
- Apify API - Read dataset items programmatically after a run.
- Google Sheets - Review posts and comments in a spreadsheet.
- Webhooks - Notify another service when a run or dataset is ready.
- Make or Zapier - Send Reddit records into reporting, alerts, or enrichment workflows.
- JSON - Use structured records in applications, analysis pipelines, and AI data workflows.
- CSV and Excel - Open the dataset in spreadsheet tools for filtering and reporting.
- XML - Export records for systems that require XML input.
Schedule recurring runs in Apify Console for community monitoring and fresh content collection.
Frequently Asked Questions
What Reddit URLs can I use?
You can use subreddit URLs, public Reddit user profile URLs, and direct post URLs. The startUrls array can contain mixed source types in the same run.
Does the Actor collect comments?
Yes. Comments are collected for saved posts unless skipComments is true or maxCommentsPerPost is set to 0.
Can I collect only recent posts?
Yes. Set maxPostAgeDays to the number of days to include. The actor applies this filter locally after the source returns available records.
Why are some fields missing?
Public Reddit records are not uniform. Deleted users, removed posts, private content, and unavailable engagement details can produce sparse records. Engagement values may also be delayed in the source archive.
Can I collect posts without comments?
Yes. Set skipComments to true or set maxCommentsPerPost to 0.
Can I export the dataset to CSV or Excel?
Yes. Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats. They can also be accessed through the Apify API or connected to integrations.
Can I schedule recurring Reddit collection?
Yes. Create an Apify schedule and choose the frequency that fits your monitoring workflow. Use maxPostAgeDays when each run should focus on fresh posts.
Is scraping Reddit data legal?
Public data collection can involve legal, privacy, and platform-policy requirements. You are responsible for complying with Reddit's terms, applicable laws, and any restrictions that apply to your use of the data.
Related Actors
- Reddit Comments Scraper - Collect Reddit comment data when your workflow is focused specifically on comment threads.
Support
For issues or feature requests, use the Issues tab on the Actor page or contact the developer through Apify. Include the source URL type, input settings, run ID, and a short description of the problem.
Legal Notice
This Actor is intended for responsible collection of publicly available Reddit data. Users are responsible for complying with Reddit's terms, Apify policies, privacy requirements, copyright rules, and applicable laws. Do not use collected data for harassment, unauthorized profiling, spam, or other harmful activity. Respect content removal requests, platform limits, and Reddit users' rights.
