Reddit Community Scraper ๐Ÿ‘พ avatar

Reddit Community Scraper ๐Ÿ‘พ

Pricing

Pay per usage

Go to Apify Store
Reddit Community Scraper ๐Ÿ‘พ

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

Shahid Irfan

Maintained by Community

Actor stats

4

Bookmarked

41

Total users

9

Monthly active users

11 days ago

Last modified

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 areaImportant fieldsDescription
Record identitydataType, id, parsedIdIdentifies whether the item is a post or comment and provides its Reddit identifiers.
Source linksurl, permalink, sourceUrlDirect item URL, relative permalink, and URL used as the run source.
Texttitle, body, htmlPost title and post or comment content, including formatted content when available.
Authorusername, userId, postAuthorAuthor information for the item and, on comments, the parent post author.
CommunitycommunityName, parsedCommunityName, subredditIdCommunity name and Reddit community identifier.
Thread contextpostId, parsedPostId, postTitle, postUrl, parentId, depthParent post and nesting information.
EngagementnumberOfComments, upVotes, ups, downs, upVoteRatio, controversialityScores, vote counts, ratios, and comment counts when available.
Links and mediadomain, link, thumbnailUrl, imageUrls, mediaTypeExternal links, domains, thumbnails, image URLs, and derived media type.
Community metadataflair, authorFlairText, authorFlairRichtext, category, discussionTypeFlair and other metadata when exposed by Reddit.
Status flagsisVideo, isAd, isSelf, isPinned, isStickied, isLocked, isSpoiler, isArchived, over18Content, moderation, and visibility flags.
Dates and provenancecreatedAt, editedAt, scrapedAt, retrievalSourceCreation and edit times, collection time, and source category for the record.

How to use Reddit Community Scraper

  1. Open the Actor in Apify Console.
  2. Add one or more public Reddit URLs to startUrls.
  3. Set the number of posts and comments you want to collect.
  4. Choose sorting, time, age, NSFW, and comment options as needed.
  5. Run the Actor and review the dataset preview.
  6. 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

ParameterTypeRequiredDefaultDescription
startUrlsArrayYesActor example URLReddit URLs to process. Supports subreddit URLs, public user profile URLs, and direct post URLs.
maxPostCountIntegerNo4Maximum number of posts to save across all supplied sources. Set to 0 to skip posts.
maxCommentsPerPostIntegerNo2Maximum number of comments to save for each post. Set to 0 to skip comments.
skipCommentsBooleanNofalseSkip comment collection entirely when set to true.
sortStringNo"new"Accepted sort preference. The selected public data source returns newest-first results; unsupported ranking preferences are reported in the run log.
timeStringNo"all"Optional date window for supported time-based requests: hour, day, week, month, year, or all.
includeNSFWBooleanNofalseInclude posts marked as NSFW.
maxPostAgeDaysIntegerNoNot setSave only posts created within the last specified number of days.
proxyObjectNoApify Proxy prefillProxy 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.

FieldTypeDescription
dataTypeStringEither post or comment.
idStringFull Reddit identifier, such as t3_... for a post or t1_... for a comment.
parsedIdStringShort Reddit item identifier.
urlStringAbsolute URL for the post or comment.
titleStringPost title. Usually absent from comment records.
bodyStringPost or comment text.
usernameStringAuthor username when available.
communityNameStringCommunity name, such as r/GrowthHacking.
postIdStringParent post identifier for comment records.
postTitleStringParent post title for comment records.
parentIdStringImmediate parent identifier for comments.
depthIntegerComment nesting depth.
upVotesIntegerScore shown for the item.
numberOfCommentsIntegerComment count associated with a post.
linkStringExternal link for link posts, when available.
imageUrlsArrayPreview or gallery image URLs, when available.
mediaTypeStringContent type such as text, image, video, or link.
createdAtStringCreation time in ISO 8601 format.
scrapedAtStringCollection time in ISO 8601 format.
sourceUrlStringReddit URL that produced the record.
retrievalSourceStringSource 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 maxPostCount before 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 new for 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: true for post-only monitoring, or set maxCommentsPerPost for the depth you need.
  • Use maxPostAgeDays for recent research - This helps with trend monitoring and recurring runs.
  • Review content settings - Keep includeNSFW disabled 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.

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.

  • 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.

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.