Reddit Scraper - Posts, Comments, Search, Users (no login)
Pricing
from $2.50 / 1,000 post fetcheds
Reddit Scraper - Posts, Comments, Search, Users (no login)
Scrape Reddit subreddit posts, search results, full comment trees, and user history. Cookie-free, reliable (>95% success), and cheaper than incumbents. Built-in monitor mode for new-post alerts.
Pricing
from $2.50 / 1,000 post fetcheds
Rating
5.0
(1)
Developer
Omar Eldeeb
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Reddit Scraper — Posts, Comments, Search & Users (no login)
Reliable, low-cost Reddit data extraction. Pull a subreddit's posts, run a keyword search, grab a post's full comment tree, scrape a user's history, or monitor a subreddit for new posts — all without a Reddit login, app registration, or API key. Built on the public old.reddit.com HTML, it returns clean structured rows you can export to JSON, CSV, or Excel and feed straight into AI/RAG pipelines, dashboards, or research notebooks.
What does Reddit Scraper do?
Reddit's official API went paid and rate-limited in 2023, so getting bulk Reddit data is harder than it should be. This Actor turns any subreddit, search query, post, or user into structured data — posts (title, score, comment count, author, flair, links, timestamps) and comments (body, score, depth, parent, author, OP flag) — on the Apify platform, with scheduling, exports, integrations, and an API out of the box.
It is engineered for reliability and price: it scrapes the lightweight old.reddit.com HTML cookie-free, rotates IPs automatically, and escalates from cheap datacenter to residential proxies only when needed — so runs finish at high success rates without you paying for residential traffic you didn't need.
Why use Reddit Scraper?
- AI / RAG builders — bulk subreddit posts + comment trees as a clean training/retrieval corpus, with stable IDs and parent linkage.
- Market & brand researchers — search any keyword across Reddit or inside a subreddit and track sentiment, complaints, and competitor mentions.
- Social-listening & trend analysts — monitor mode returns only new posts since the last run, perfect for scheduled alerts.
- Academics & data scientists — reproducible discussion-tree extraction with depth and parent IDs (Pushshift is dead; this fills the gap).
- Reliability-first teams — automatic IP rotation + datacenter→residential fallback keeps success high where cheaper scrapers time out.
How to use Reddit Scraper
- Click Try for free.
- Pick a mode (subreddit posts, search, comments thread, user profile, or monitor).
- Fill the relevant fields (e.g. subreddit names, a search query, or post URLs).
- Set Max items and Max pages per target to control run size and cost.
- Click Start, then export the dataset as JSON, CSV, or Excel — or pull it via the Apify API.
Input
Subreddit posts
{ "mode": "subreddit_posts", "subreddits": ["programming", "rust"], "sort": "top", "timeFilter": "week", "maxItems": 200 }
Search (sitewide or inside a subreddit)
{ "mode": "search", "searchQuery": "vector database", "sort": "top", "timeFilter": "year", "maxItems": 100 }
Comments thread (full tree)
{ "mode": "comments_thread", "postUrls": ["https://www.reddit.com/r/programming/comments/abc123/some_title/"], "maxCommentDepth": 10 }
User profile (posts + comments)
{ "mode": "user_profile", "usernames": ["spez"], "maxItems": 100 }
Monitor (only new posts since last run)
{ "mode": "monitor", "subreddits": ["programming"], "maxItems": 100 }
Output
Each row is a post or comment. Example post row:
{"recordType": "post","id": "1seu7p2","fullId": "t3_1seu7p2","subreddit": "rust","author": "lekkerwafel","title": "Unpopular opinion: Rust should have a larger standard library","score": 923,"numComments": 383,"createdAt": "2026-04-07T12:13:45.000Z","url": "https://www.reddit.com/r/rust/comments/1seu7p2/unpopular_opinion_rust_should_have_a_larger/","externalUrl": null,"domain": "self.rust","isSelf": true,"isNsfw": false,"isStickied": false,"flair": "💡 ideas & proposals","fetchedAt": "2026-05-29T09:50:00.000Z"}
| Field | Type | Description |
|---|---|---|
recordType | string | post or comment |
id / fullId | string | base36 id / t3_/t1_ prefixed fullname |
subreddit | string | Subreddit name |
author | string | Username ([deleted] if removed) |
title | string | Post title (posts only) |
selfText | string | Self-post body (comments_thread mode) |
body | string | Comment text (comments only) |
score | number|null | Net upvotes (null when Reddit hides it) |
numComments | number | Comment count (posts) |
createdAt | string | ISO 8601 timestamp |
depth / parentId | number / string | Comment nesting depth + parent fullname |
isSubmitter | boolean | Comment authored by the OP |
url | string | Canonical permalink |
externalUrl / domain | string | Outbound link + domain (link posts) |
flair, isNsfw, isStickied | — | Post metadata |
How much does it cost to scrape Reddit?
Pay only for what you extract (pay-per-event), with the first 10 events free every run to try it out:
| Event | Price |
|---|---|
| Post fetched | $0.0025 |
| Comment fetched | $0.0008 |
| Search result fetched | $0.003 |
| User history item fetched | $0.004 |
| Monitor delta detected | $0.0025 |
Typical runs:
- 1,000 subreddit posts → ~$2.50 (vs ~$4 on common incumbents).
- A 500-comment thread → ~$0.40.
- Daily monitor of 5 subreddits (
50 new posts/day) → **$0.13/day**.
Datacenter proxy (cheapest) is the default; the Actor only escalates to residential when a page is blocked, so you don't overpay.
Tips & advanced options
- Sort & time window:
top/controversialhonor thetimeFilter(hour→all).hot/new/risingignore it. - Scope a search: turn on Restrict search to first subreddit to search inside one subreddit.
- Comment depth: lower
maxCommentDepthfor cheaper, shallower trees; raise it for deep discussions. - Schedule monitor mode: pair it with Apify Schedules to get only-new-posts alerts; state persists across runs.
- Big runs: switch the proxy to Residential up front for very large or heavily rate-limited scrapes.
- Cost control:
maxItemsis a hard cap across all targets;maxPagesPerTargetbounds pagination.
Legal & responsible use
This Actor collects publicly available content from Reddit. You are responsible for complying with Reddit's User Agreement and applicable laws (including GDPR/CCPA) when collecting and processing data, and for respecting the rights and privacy of the people whose content you scrape. Do not use it to collect personal data unlawfully, to harass, or to redistribute content in violation of Reddit's terms. This tool is provided for lawful research, analytics, and archival use.
FAQ & support
- Do I need a Reddit account or API key? No — it uses the public
old.reddit.comHTML, cookie-free. - Why did a run escalate to residential? Reddit blocks some datacenter IPs on
/searchand/comments; the Actor falls back automatically to keep success high. Disable via Auto residential fallback if you prefer datacenter-only. - Can it expand "load more comments" links? v1 extracts the full server-rendered tree up to your depth cap; deeply collapsed
more commentsstubs are not expanded yet. - Are scores always present? Reddit hides scores on very new posts/comments; those return
null. - It returned 0 rows for a subreddit/user. Likely banned, private, suspended, or misspelled — check the run log.
- Issues / requests? Open an issue from the Actor's Issues tab.