Reddit Scraper - Posts, Comments, Search & Subreddits avatar

Reddit Scraper - Posts, Comments, Search & Subreddits

Pricing

from $0.07 / 1,000 post extracteds

Go to Apify Store
Reddit Scraper - Posts, Comments, Search & Subreddits

Reddit Scraper - Posts, Comments, Search & Subreddits

Export public Reddit posts and comments from subreddit, user, search, post, comment, and short-link URLs for social listening, lead research, AI datasets, and alerts.

Pricing

from $0.07 / 1,000 post extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

4

Monthly active users

2 days ago

Last modified

Share

Reddit Scraper

Scrape public Reddit posts, subreddit feeds, keyword search results, user feeds, URLs, and optional comments.

Use this Actor to export public Reddit discussion data for social listening, market research, community monitoring, AI summaries, lead research, content analysis, and alerts. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.

At a glance

  • Reddit source coverage: Scrape subreddit listings, user pages, search results, direct post URLs, and comment threads where publicly available.
  • Posts and comments: Save post rows and optionally collect public comments for each post.
  • Search workflows: Search all Reddit or search inside one subreddit with sort and time filters.
  • Monitoring ready: Schedule recurring subreddit, keyword, or URL checks for social listening and alerts.
  • API export: Send Reddit rows to spreadsheets, BI tools, databases, summaries, or AI agents.

Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

What can it do?

Reddit Scraper extracts public Reddit listing, search, post, and comment data and saves structured dataset rows.

  • Scrape subreddits and URLs: Add subreddit pages, user pages, search pages, or direct post URLs.
  • Run keyword searches: Use searchQuery, searchSubreddit, sort, and timeFilter.
  • Collect comments: Enable comments and cap them with maxCommentsPerPost.
  • Control reliability: Use retry, pacing, and proxy settings for larger runs.
  • Export repeatable datasets: Use Apify downloads, API calls, schedules, webhooks, and integrations.

Common workflows

  • Social listening: Track mentions of brands, products, competitors, issues, and topics.
  • Market research: Export public discussions for pain-point analysis, category research, and trend reports.
  • Community monitoring: Watch subreddits and search terms on a recurring schedule.
  • AI training and RAG datasets: Collect public posts and comments with available score, upvote ratio, timestamps, and thread structure for downstream filtering, labeling, embedding, fine-tuning, or retrieval workflows.
  • AI summaries: Feed posts and comments into summarization, classification, or sentiment workflows.
  • Content research: Find questions, objections, stories, and language for content planning.
  • Support and alerting: Trigger downstream workflows when new posts match a query.

Build a Reddit dataset for AI training or RAG

Use Reddit Scraper as the collection layer for a public-discussion dataset. It extracts post and comment text plus available engagement and thread fields; your downstream pipeline controls quality thresholds, labels, embeddings, storage, and model use.

  1. Choose focused subreddits, keyword searches, or post URLs.
  2. Set sort and timeFilter; enable includeComments when replies matter.
  3. Keep score, upvoteRatio, numComments, parentId, and depth alongside the text so downstream jobs can rank or reconstruct context.
  4. Export JSON or use the Dataset API to filter, deduplicate, classify, embed, and load records into your vector store or training pipeline.
  5. For continuously refreshed post candidates, use Reddit Post Monitor Lite with scheduled runs and cross-run deduplication, then send selected post URLs back to Reddit Scraper when comments are needed.

Important: this Actor does not score training quality, label reactions, generate embeddings, fine-tune models, or write to a vector database by itself. Reddit scores can change, and popularity is not a substitute for relevance, consent, safety, or bias review. Process public content only where your use is lawful and consistent with applicable terms.

Example: collect high-signal posts and comments

{
"urls": ["https://www.reddit.com/r/MachineLearning/top/?t=year"],
"sort": "top",
"timeFilter": "year",
"maxPostsPerSource": 100,
"includeComments": true,
"maxCommentsPerPost": 50,
"commentContextDepth": 2
}

This preserves available Reddit engagement metadata for downstream ranking; it does not guarantee that every item has a score or that the resulting data is suitable for training.

What data can you collect?

The Actor returns public Reddit post rows and, when enabled, comment rows.

FieldDescription
typeRow type, such as post or comment
idReddit item identifier
subredditSubreddit name
authorPublic Reddit username when available
titlePost title
textPost or comment text
urlExternal URL or Reddit URL
permalinkReddit permalink
createdAtPublic creation timestamp
scorePublic score when available
numCommentsPublic comment count for posts
upvoteRatioUpvote ratio when available
flairPost flair when available
parentIdParent post or comment ID for comments
depthComment depth when available
sourceUrlInput or resolved Reddit source URL
scrapedAtTimestamp when the row was saved

Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

EventWhat is chargedPrice
startOne-time fee per run$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
itemCharged per Reddit post record extracted.$0.1329 / 1,000$0.11557 / 1,000$0.09014 / 1,000$0.06934 / 1,000$0.04623 / 1,000$0.03236 / 1,000
commentCharged per Reddit comment record extracted.$0.000575 / 1 comment$0.0005 / 1 comment$0.00039 / 1 comment$0.0003 / 1 comment$0.0002 / 1 comment$0.00014 / 1 comment

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

Input configuration

SettingJSON keyUse it forExample
Reddit URLsurlsSubreddit, user, search, or post URLs.["https://www.reddit.com/r/apify/"]
Search querysearchQueryKeyword search across Reddit or inside one subreddit.web scraping
Search subredditsearchSubredditRestrict search to one subreddit.SaaS
Sort ordersortReddit sort mode for listings or search.new
Time filtertimeFilterTime window for search/listing where supported.week
Maximum posts per sourcemaxPostsPerSourceCap saved post rows per input source.25
Include commentsincludeCommentsCollect bounded public comments for matching posts. When Reddit's public JSON route is reachable, comments include parent/depth metadata; RSS fallback comments may not prove full tree depth.false
Maximum comments per postmaxCommentsPerPostCap saved comment rows per post. This is a scope and cost cap, not a guarantee that every comment in a large thread is reachable.50
Comment URL modecommentContextModeControl comment context collection for post URLs.auto
Comment context depthcommentContextDepthLimit nested comment depth when supported.2
Retry attempts per Reddit requestretryCountRetry failed Reddit requests.3
Initial retry delayinitialRetryDelayMillisSet the base backoff delay after temporary Reddit errors.750
Request pacing delayrequestPacingMillisAdd delay between requests for stability.250
Safe run deadlinerunTimeSecsStop starting new Reddit requests before timeout so partial data can be saved.260
MCP connectorsmcpConnectorsOptional Apify MCP connectors for post-run delivery.[]
MCP delivery modemcpModeChoose off, summary, or records delivery.off
MCP instructionmcpInstructionShort delivery instruction for selected connectors.Send a concise digest.
Maximum MCP recordsmaxMcpRecordsCap sample records sent through MCP.20
Proxy configurationproxyConfigurationOptional Apify Proxy settings.{"useApifyProxy":true}

Example input

{
"urls": ["https://www.reddit.com/r/apify/"],
"searchQuery": "web scraping",
"sort": "new",
"timeFilter": "week",
"maxPostsPerSource": 25,
"includeComments": false
}

Example output

{
"type": "post",
"id": "abc123",
"subreddit": "apify",
"author": "example_user",
"title": "Example Reddit post",
"text": "Public Reddit post text...",
"url": "https://www.reddit.com/r/apify/comments/abc123/example/",
"permalink": "https://www.reddit.com/r/apify/comments/abc123/example/",
"createdAt": "2026-07-03T10:00:00.000Z",
"score": 42,
"numComments": 8,
"sourceUrl": "https://www.reddit.com/r/apify/",
"scrapedAt": "2026-07-03T12:00:00.000Z"
}

How to run it

  1. Open the Actor on Apify.
  2. Add Reddit URLs, a search query, or both.
  3. Choose sort, time filter, and limits.
  4. Decide whether to include comments.
  5. Start the run and export the dataset.

Search tips

  • Start with posts only: Add comments after you verify the post search is relevant.
  • Use focused subreddits: Subreddit-specific searches usually produce cleaner monitoring datasets.
  • Limit comments carefully: Comment extraction can create many rows and higher costs.
  • Use pacing for stability: Larger runs benefit from moderate request pacing and retries.
  • Schedule narrow queries: Monitoring works best with specific keywords, subreddits, and time filters.

Limits and caveats

  • The Actor extracts publicly visible Reddit data only.
  • It does not access private communities, removed content, mod-only data, logged-in feeds, or quarantined content that requires login.
  • Scores and counts can be null or change after scraping.
  • Reddit may return fewer items than requested for narrow queries, private sources, or unavailable content.

API usage

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~reddit-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchQuery":"web scraping","sort":"new","timeFilter":"week","maxPostsPerSource":25}'

Node.js example:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/reddit-scraper').call({
searchQuery: 'web scraping',
sort: 'new',
maxPostsPerSource: 25,
});
console.log(run.defaultDatasetId);
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/reddit-scraper').call(run_input={
'searchQuery': 'web scraping',
'sort': 'new',
'maxPostsPerSource': 25,
})
print(run['defaultDatasetId'])

MCP and AI agents

This Actor can be used through the official Apify MCP server at https://mcp.apify.com.

For Claude CLI, add the focused single-Actor tool:

$claude mcp add apify-reddit-scraper -- npx -y mcp-remote https://mcp.apify.com?tools=fetch_cat/reddit-scraper

For JSON-based MCP clients, use:

{
"mcpServers": {
"apify-reddit-scraper": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.apify.com?tools=fetch_cat/reddit-scraper"]
}
}
}

Example prompts:

  • "Run Reddit Scraper for r/apify newest posts and summarize the top discussions."
  • "Collect 10 Reddit posts about web scraping with comments enabled and return a CSV link."
  • "Monitor this Reddit thread URL and list the first public comments you can retrieve."

Use the same JSON keys shown in the input configuration table, such as urls, searchQuery, searchSubreddit, maxPostsPerSource, includeComments, and maxCommentsPerPost.

FAQ

Does this Actor need Reddit API credentials?

No. It targets public Reddit pages and public discussion data.

Can it scrape private communities?

No. Private, restricted, quarantined, or login-gated content is outside this Actor's public-data scope.

Can it collect every comment in a large thread?

Not always. Reddit can limit or block the public routes available to a run. The Actor returns bounded public comments when reachable, includes parent/depth fields when Reddit exposes them, and uses maxCommentsPerPost to control scope, cost, and reliability.

Can I export to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.

Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses content lookup inputs and public posts, profiles, videos, comments, or channel metadata needed for the requested output to produce the output dataset and sends requests to public Reddit pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.