Reddit Scraper (subreddit posts, search, comments, no login)
Pricing
from $1.60 / 1,000 result items
Reddit Scraper (subreddit posts, search, comments, no login)
Scrape Reddit subreddit listings (new, hot, top, rising) and search results: one row per post with title, text, score, comments, flair and domain. Optional comment rows per post. No login, no author names or handles collected. Monitor mode alerts only on new posts, never on score churn.
Pricing
from $1.60 / 1,000 result items
Rating
0.0
(0)
Developer
Viktor Dubnytskiy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get subreddit listings (new, hot, top, rising) and site-wide search results from Reddit's own public .json API — one row per post, with an optional row per comment. No Reddit account, no login, no cookies.
What you get
Real rows from the example dataset (subreddit webscraping, sort new):
| title | score | commentCount | domain | source |
|---|---|---|---|---|
| "What browsers should be paired with cdp's like patchright or pydoll?" | 2 | 4 | self.webscraping | r/webscraping/new |
| "Low-latency scraping to semi-automated checkout flow" | 5 | 4 | self.webscraping | r/webscraping/new |
| "Computer Vision + mouse and keyboard scraper?" | 6 | 13 | self.webscraping | r/webscraping/new |
Full row (post): id, url, type, subreddit, title, text, linkUrl, domain, score, upvoteRatio, commentCount, flair, isNsfw, isVideo, thumbnailUrl, createdAt, source, query, scrapedAt. Comment rows (type: comment) swap the post-only fields for postId, postUrl, depth, parentId.
No usernames, no author flair, no avatars — post and comment authors are dropped entirely. Only public post/comment text and counters are collected; the subreddit itself is the entity, not the people posting in it.
Use cases
- Track a subreddit for new posts (monitor mode) without polling Reddit yourself or maintaining OAuth credentials.
- Pull recent discussion and comment threads for a topic across all of Reddit via search.
- Build a dataset of post titles, scores and flair for a set of subreddits to analyse trends over time.
Try it in 10 seconds
Hit Start/Try it — the input already works: subreddits: ["webscraping"], sort: "new", maxPostsPerSource: 100, maxItems: 200, nothing required.
To watch a subreddit for new posts only: save the task, set Mode to monitor, and put it on a schedule (Apify → Schedules → cron 0 8 * * 1 for weekly). Each run then returns only posts that are new since last time — a score or comment-count change overnight never triggers a false "change" event.
How it works
Each subreddit and search query is read through Reddit's own <subreddit>/<sort>.json and search.json endpoints — the same JSON the Reddit web app itself uses, paginated with the after cursor. Comments (optional) come from the post's own comments/<id>.json endpoint, flattened up to two reply levels. A short page or a page whose posts have all been seen already ends pagination for that source.
Proxy: Reddit answers .json requests from a plain or residential exit with a 403 verification page; this actor always reads through Apify's Web Unblocker, billed per request on top of the flat result price below.
Input
| Field | Meaning | Default |
|---|---|---|
subreddits | Subreddit names or URLs to list, e.g. webscraping | ["webscraping"] |
sort | new, hot, top or rising | new |
timeRange | Time window for sort=top | week |
searches | Site-wide search queries | empty |
searchSort | relevance, new or top | relevance |
maxPostsPerSource | Posts fetched per subreddit/query | 100 |
includeComments | Also fetch comment rows per post | false |
maxCommentsPerPost | Comment rows kept per post | 50 |
maxItems | Stop after this many rows total | 200 |
mode | scrape or monitor (only new posts since last run) | scrape |
monitorStateId, webhookUrl, telegramBotToken, telegramChatId | Monitor-mode state key and alert targets | empty |
Pricing
| Event | Price |
|---|---|
| result | $0.002 per row ($2 per 1,000) |
| monitor-check | $0.006 per monitor run |
| change | $0.002 per new post |
Charged only for rows actually pushed. Web Unblocker proxy traffic is billed by Apify on top of the result price.
Why this actor
- No Reddit account, no OAuth app registration, no rate-limit management on your side.
- Comment threads in the same run as the posts that started them, with
maxCommentsPerPostkeeping the bill predictable. - Monitor mode keys strictly on the post id, so it alerts you when a genuinely new post appears — a post's score or comment count changing overnight never triggers a false "change" event.
- A run that finds nothing pushes nothing and charges no result events; the run summary explains why (banned/private/nonexistent subreddit vs. an actual wall) instead of leaving you guessing.
Limits
- A private, banned or quarantined subreddit, or a subreddit that does not exist, is skipped (Reddit answers all three with the same HTTP 404) — it is not treated as a block.
textand commenttextare truncated at 5,000 characters.- No vote data beyond the public score and upvote ratio Reddit itself publishes; no per-user voting history.
FAQ
Does it need a Reddit account or API key? No. Every request goes through the same public .json endpoints a logged-out browser can read.
Are usernames included? No. Author names, flair and avatars are dropped from both post and comment rows; only the subreddit (a community, not a person) and the post/comment content are kept.
What happens when a subreddit is empty or doesn't exist? No rows are pushed for it and no result events are charged for it. The RUN_SUMMARY record in the run's key-value store separates a genuinely missing/banned/private subreddit from an actual verification wall.
Changelog
- 0.1: initial release — subreddit listings, site search, optional comment rows, monitor mode keyed on post id.
If this actor saved you time, a short review on its Store page genuinely helps other people find it. Found a bug or need a field that is missing? Open a ticket on the Issues tab.