Reddit Posts Scraper — Comments, Replies & Subreddits avatar

Reddit Posts Scraper — Comments, Replies & Subreddits

Pricing

from $2.00 / 1,000 post scrapeds

Go to Apify Store
Reddit Posts Scraper — Comments, Replies & Subreddits

Reddit Posts Scraper — Comments, Replies & Subreddits

Extract Reddit posts, comments & subreddit data with no login required. Returns title, score, author, flair, body text, and dates MCP-ready. $2.00/1K.

Pricing

from $2.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

2 days ago

Last modified

Share

Reddit Scraper – Posts, Comments & Subreddits

Reddit Scraper - Posts, Comments & Subreddits is an Apify Actor for extracting Reddit posts, comments, and subreddit data from a subreddit name, search query, or direct Reddit URL. It accepts one or more input sources, and each saved record represents a single post or comment in the dataset. The output includes fields such as title, author, subreddit, score, comment count, flair, body text, URLs, timestamps, and metadata flags, so you can use the result for analysis, automation, or AI workflows through Apify or Apify MCP.

Best fit and connected workflows

This Actor fits workflows that start with Reddit communities, Reddit search results, or a specific Reddit page URL and end with structured records for downstream processing. It works well when you want to:

  • collect posts from one or more subreddits with sort and time controls,
  • search Reddit across communities by keyword or phrase,
  • pull data from a Reddit post page, subreddit page, search page, or user profile page,
  • include top comments for each scraped post,
  • filter records by score, comments, flair, author, date, or NSFW status,
  • connect Reddit content to analysis pipelines, dashboards, or AI agent tools.

Practical scenario

A community researcher starts with the subreddit learnpython, wants recent high-engagement posts, and needs the author, flair, score, comment count, and created date for each result. They set sort to top, time to week, and minScore to focus on posts with stronger engagement. After the run, they review the dataset fields and use the url and permalink values to open the original Reddit discussion for follow-up reading and note-taking.

Input fields

FieldTypePurpose
subredditsarraySubreddit names, with or without r/, used as the input source for subreddit-based scraping.
searchQueriesarraySearch terms for Reddit-wide search across communities.
startUrlsarrayDirect Reddit URLs, including subreddit, post, search, or user profile pages.
redditClientIdstringReddit app client_id for cloud runs.
sortstringSorting mode: hot, new, top, rising, controversial, or relevance.
timestringTime filter for top, controversial, and search results.
maxResultsintegerTotal maximum number of posts saved across all sources.
includeCommentsbooleanSaves top comments for each scraped post as separate dataset records.
maxCommentsPerPostintegerMaximum comments to scrape per post when comments are enabled.
includeNSFWbooleanIncludes records marked as NSFW.
minScoreintegerKeeps only posts with at least this score.
maxScoreintegerKeeps only posts with at most this score.
minCommentsintegerKeeps only posts with at least this many comments.
flairFilterstringKeeps only posts with an exact flair text.
authorFilterstringKeeps only posts from one Reddit username.
postDateLimitstringKeeps only posts created after the given date.
proxyConfigurationobjectProxy settings for Reddit scraping.

Focused JSON input example

{
"subreddits": ["programming", "learnpython"],
"sort": "top",
"time": "week",
"maxResults": 50,
"includeComments": true,
"maxCommentsPerPost": 20,
"minScore": 100,
"includeNSFW": false
}

Output fields

FieldTypeMeaning
post_idstringReddit post identifier.
titlestringPost title.
authorstringReddit username associated with the record.
subredditstringSubreddit name.
urlstringCanonical post URL.
permalinkstringReddit permalink path.
body_textstringPost body text.
scoreintegerNet score.
upvote_rationumberUpvote ratio.
num_commentsintegerComment count.
flairstringFlair text.
domainstringDomain associated with the post.
external_urlstringOutbound URL for link posts.
thumbnail_urlstringThumbnail URL.
is_nsfwbooleanNSFW flag.
is_videobooleanVideo flag.
is_selfbooleanSelf-post flag.
created_atstringOriginal creation timestamp.
scraped_atstringTime the record was saved.
source_urlstringInput URL that led to the record.
data_typestringRecord type, such as post or comment.

Illustrative dataset record

{
"post_id": "t3_1abc23",
"title": "What's the practical way to learn Python in 2025?",
"author": "curious_dev",
"subreddit": "learnprogramming",
"url": "https://www.reddit.com/r/learnprogramming/comments/abc123/",
"permalink": "/r/learnprogramming/comments/abc123/whats_the_best_way/",
"body_text": "I've been coding JavaScript for 2 years and want to branch out...",
"score": 482,
"upvote_ratio": 0.97,
"num_comments": 84,
"flair": "Question",
"domain": "self.learnprogramming",
"external_url": null,
"thumbnail_url": null,
"is_nsfw": false,
"is_video": false,
"is_self": true,
"created_at": "2025-11-15T14:32:00.000Z",
"scraped_at": "2026-04-09T10:00:00.000Z",
"source_url": "https://www.reddit.com/r/learnprogramming/comments/abc123/",
"data_type": "post"
}

How it works

This Actor accepts subreddit names, search queries, or direct Reddit URLs as input. It supports sorting and time filtering for posts, and it can save top comments as separate dataset records when comment scraping is enabled. The input schema also includes score, comment count, flair, author, date, NSFW, and proxy controls. The dataset schema exposes a table view with title, author, subreddit, score, comments, flair, created date, URL, and record type.

Pricing

This Actor uses pay per event pricing on Apify. The pricing model includes an Actor start event and a primary event for each successfully scraped post saved to the dataset. Apify platform usage is billed separately according to your account and execution settings, so the full cost depends on both event volume and platform usage. For current details, see the live Pricing tab in the Apify Console.

For an example, a run that saves one hundred posts charges one hundred Post scraped events, plus the Actor start event and the Apify platform usage for the run.

Use with AI agents (MCP)

This Actor is an Apify Actor that can be used through Apify MCP. It is suited for agent workflows that need structured Reddit posts and comments from a subreddit, query, or URL.

The exact Actor identity is khadinakbar/reddit-posts-scraper.

Scrape recent posts from learnpython, include comments, and return the title, author, score, flair, comment count, created date, and source URL for each record.

When you review the output, use data_type to separate posts from comments, source_url to trace each record back to the input, and scraped_at to understand when the dataset was collected. Comment records are saved as separate dataset items when includeComments is enabled. Pagination can expand the dataset across multiple pages, and maxResults controls the total number of saved posts across all sources. Event-based pricing means each successfully scraped post contributes to the billable event count, while filtered-out posts are excluded from Post scraped charges.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/reddit-posts-scraper').call({
subreddits: ['programming', 'learnpython'],
sort: 'top',
time: 'week',
maxResults: 20,
includeComments: true,
maxCommentsPerPost: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use a single source type per run when possible: subreddit names for community monitoring, search queries for topic discovery, and direct URLs for targeted page extraction. Pair sort: top with time: week or month when you want high-engagement posts, and use sort: new with postDateLimit for recency-based collection. If you need comment context, enable includeComments and set maxCommentsPerPost to a focused number that matches the depth you need. For cloud runs, provide redditClientId when Reddit access through Apify cloud IPs is part of your setup, and use the proxy configuration that fits your workload.

Focused standalone workflow

Reddit Scraper – Posts, Comments & Subreddits is designed as a focused standalone workflow for the public input and structured output contract described above.

Design note

I found that the dataset schema includes a clear data_type field, which makes it straightforward to distinguish posts from comments in downstream processing.

FAQ

Which input should I use if I already have a subreddit name?
Use subreddits. That source is designed for subreddit-based scraping and uses the selected sort and time settings.

Which input should I use if I have a Reddit search phrase?
Use searchQueries. Each query runs a Reddit-wide search and can be combined with sorting and time filtering.

Which input should I use if I have a full Reddit link?
Use startUrls. It accepts subreddit pages, post pages, search pages, and user profile pages.

How do I get comments alongside posts?
Set includeComments to true, then set maxCommentsPerPost to the number of comments you want per post.

How can I focus on higher-engagement posts?
Use minScore, minComments, or both. You can also combine sort: top with a time filter.

How can I route this Actor into an MCP workflow?
Use the Actor through Apify MCP and refer to khadinakbar/reddit-posts-scraper as the tool identity when configuring your agent.

Responsible use

This Actor is intended for publicly available Reddit content and structured analysis workflows. Keep usage aligned with Reddit's terms, applicable privacy rules, and the policies of the environment where you process the data. Review the fields you collect, especially when combining usernames, timestamps, comments, and external URLs in downstream systems.