⭐️ FREE Reddit Scraper Pro avatar

⭐️ FREE Reddit Scraper Pro

Pricing

Pay per usage

Go to Apify Store
⭐️ FREE Reddit Scraper Pro

⭐️ FREE Reddit Scraper Pro

Free Reddit scraper that does what the paid ones do but better. No API keys needed, no usage fees. Pairs with ready-made n8n workflow templates for lead gen and content research.

Pricing

Pay per usage

Rating

5.0

(6)

Developer

Greg

Greg

Maintained by Community

Actor stats

4

Bookmarked

16

Total users

4

Monthly active users

a day ago

Last modified

Share

Reddit Scraper

Scrape posts, comments, and discover subreddits from Reddit — no API credentials required.

What Can This Actor Do?

ModeWhat You GetExample Use Case
📥 ScrapePosts & comments from subredditsMonitor r/startups for pain points
🔍 DiscoverFind subreddits by keywordFind where your audience hangs out
🔎 SearchPosts matching keywordsTrack brand mentions
🌐 DomainPosts linking to websitesMonitor your content sharing

⚡ Quick Start

Scrape Subreddits

{
"mode": "scrape",
"scrape": {
"subreddits": ["entrepreneur", "startups"],
"maxPostsPerSubreddit": 100
}
}

Search Reddit

{
"mode": "search",
"search": {
"queries": ["best CRM software"],
"maxPostsPerQuery": 100
}
}

Discover Subreddits

{
"mode": "discover",
"discover": {
"terms": ["saas", "startup tools"],
"maxSubredditsPerTerm": 25
}
}

Track Domain Mentions

{
"mode": "domain",
"domain": {
"domains": ["mycompany.com"],
"maxPostsPerDomain": 100
}
}

📊 Output

Results are available in multiple dataset views:

  • All Results — Everything scraped
  • Posts Only — Just posts (no comments)
  • Comments Only — Just comments
  • High Engagement — Posts sorted by engagement metrics
  • Discovered Subreddits — Subreddits from Discover mode

Post fields include: title, text, author, score, upvote_ratio, num_comments, created_utc_iso, permalink, listing_rank, score_per_hour, engagement_level

Comment fields include: text, author, score, depth, parent_id, reply_count_direct, reply_count_total

Subreddit fields include: display_name, subscribers, active_users, estimated_posts_per_day, public_description


✨ Key Features

  • Parallel execution — All targets run simultaneously
  • Deep comments — Nested reply threads with configurable depth
  • Engagement metrics — Score/hour, comments/hour, engagement level
  • Smart proxies — Automatic rotation to avoid blocks
  • No API keys — Uses Reddit's public JSON endpoints

🤖 MCP Server (AI Agent Integration)

Connect this Actor to Claude, Cursor, VS Code, or Windsurf as an MCP server. One command for Claude Code:

claude mcp add reddit-scraper \
-e APIFY_TOKEN=<YOUR_APIFY_TOKEN> \
-- npx -y @apify/actors-mcp-server@latest --actors spry_wholemeal/reddit-scraper

Full setup guide (all clients) → | Copy-paste agent prompts →


🧩 n8n Workflow Templates

Import-ready n8n workflows that use this Actor as the data source:

  • Lead Finder — AI buying-intent scanner → Slack + Google Sheets
  • Subreddit Discovery — Niche audience map
  • Content Machine — Reddit threads → blog post drafts
  • Weekly Digest — Email summary + AI trends

Browse templates & setup guides →


📋 Input Reference

Required Fields by Mode

ModeRequired FieldFormat
scrapescrape.subreddits["python", "webdev", ...]
discoverdiscover.terms["saas", "startup", ...]
searchsearch.queries["best CRM", "project management", ...]
domaindomain.domains["github.com", "mycompany.com", ...]

Sorting & Limits

FieldTypeDefaultUsed InDescription
scrape.sortstringhotScrapehot, new, top, rising, controversial
scrape.timeframestringweekScrapeFor top/controversial: hour, day, week, month, year, all
scrape.maxPostsPerSubredditnumber100ScrapeMax posts per subreddit
discover.maxSubredditsPerTermnumber25DiscoverMax subreddits per term
search.sortstringrelevanceSearchrelevance, hot, new, top, comments
search.maxPostsPerQuerynumber25SearchMax posts per query
domain.maxPostsPerDomainnumber500DomainMax posts per domain

Comments

FieldTypeDefaultDescription
comments.modestringnonenone, all, or high_engagement
comments.maxTopLevelnumber50Top-level comments (0 = max ~500)
comments.maxDepthnumber3Reply depth (0 = top-level only)

Comment modes:

  • none — Skip comments (fastest)
  • all — Fetch for every post
  • high_engagement — Only for posts with score ≥ 10 AND comments ≥ 5 (defaults)

Optional: if comments.highEngagement.filterPosts: true, posts that don’t qualify are omitted from the dataset.

Search Filters

FieldTypeDescription
restrictToSubredditstringLimit search to one subreddit
authorFilterstringOnly posts by this username
flairFilterstringOnly posts with this flair
selfPostsOnlybooleanOnly text posts (no links)

Strict search (exact terms)

Search mode supports strict matching using Reddit’s boolean search syntax (quoted terms + AND/OR):

{
"mode": "search",
"search": {
"queries": ["best CRM software"],
"strict": {
"enabled": true,
"operator": "AND",
"terms": ["voice agent", "sales"]
}
}
}

Discover Options

FieldTypeDefaultDescription
minSubscribersnumber100Filter out small subreddits
estimateActivitybooleantrueCalculate posts per day/week
includeNsfwbooleanfalseInclude adult subreddits

Proxy Configuration

FieldTypeDefaultDescription
proxyConfigurationobjectResidentialHighly recommended. Reddit blocks without proxies.

Default proxy config (works well):

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Other Settings

FieldTypeDefaultDescription
tagstringLabel to identify this run's data

Advanced (rarely needed)

FieldTypeDefaultDescription
proxyCountrystringUSISO country code (US, GB, DE, etc.)
requestDelayMsnumber100Milliseconds between requests
includeRawbooleanfalseInclude Reddit's raw JSON (debugging)

🔧 Per-Target Overrides

Each mode supports easy arrays + optional advanced overrides. Example (scrape):

{
"mode": "scrape",
"scrape": {
"subreddits": ["python", "AskReddit"],
"sort": "hot",
"maxPostsPerSubreddit": 100,
"comments": { "mode": "none" },
"overrides": [
{
"subreddit": "AskReddit",
"sort": "top",
"timeframe": "day",
"maxPostsPerSubreddit": 25,
"comments": { "mode": "all" }
}
]
}
}

Here, r/python uses defaults (hot, 100 posts, no comments), while r/AskReddit overrides everything.


📈 Run Metadata

Each run stores statistics in the OUTPUT key-value record:

{
"mode": "scrape",
"posts_scraped": 150,
"comments_scraped": 2340,
"http_stats": {
"requests_made": 48,
"requests_succeeded": 48,
"rate_limits_hit": 0
}
}

❓ Troubleshooting

"403 Forbidden" or "429 Too Many Requests"

Cause: Reddit is blocking your requests.

Fix: Enable Apify Proxy (residential works best):

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Empty results

Check:

  • Subreddit name spelling (no r/ prefix needed)
  • includeNsfw: true if searching NSFW content
  • sort + timeframe combination (e.g., top with hour may have few results)
  • Subreddit may be private or quarantined

Comments seem incomplete

Why: Reddit returns "load more" placeholders for very long threads. This scraper does not expand those placeholders.

What you get: The reply_count_direct and reply_count_total fields show fetched replies. The missing_direct_replies field shows the lower bound of unfetched replies.

Workaround: Increase maxTopLevelComments (max 500) and maxRepliesDepth (max 10).

Slow performance

Tips:

  • Set comments.mode: "none" if you don't need comments
  • Use comments.mode: "high_engagement" to only fetch comments on popular posts
  • Reduce scrape.maxPostsPerSubreddit / search.maxPostsPerQuery for faster testing
  • All targets run in parallel automatically

Rate limits despite using proxies

Try:

  • Increase requestDelayMs to 200-500
  • Change proxyCountry to a different region (GB, DE, CA)
  • The scraper automatically retries with exponential backoff

License

Apache-2.0