Reddit Pro Scraper — Posts, Full Comment Trees & Monitoring
Pricing
$1.00 / 1,000 result items
Reddit Pro Scraper — Posts, Full Comment Trees & Monitoring
Posts, árboles de comentarios completos, subreddits y usuarios de Reddit vía API oficial: 50% más barato, con monitor y markdown para IA.
Pricing
$1.00 / 1,000 result items
Rating
0.0
(0)
Developer
Damian Oliva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
Scrape public Reddit data through the official Reddit API: subreddit feeds, global search, user histories, complete comment trees (100% expanded), single-post details, r/popular and community info — with incremental monitoring and AI-ready markdown, at half the typical per-item price.
What it does
- 7 scrape modes:
subredditfeed,search(global or within one subreddit),user_posts(a user's posts + comments + profile card),post_comments(a post with its full comment tree),post_details(one post),popular(r/popular),subreddit_info(community profile). - Full comment trees:
morechildrenplaceholders are expanded recursively until the tree is complete or yourmaxCommentsPerPostcap is hit. When the cap cuts the tree, the post is flaggedcommentsTruncated: true— you always know whether you got everything. - Monitor mode: schedule the actor and get only new items on each run. Seen IDs persist in the key-value store per source, so daily tracking costs you only the delta.
- Markdown for AI (
outputFormat: markdown|both): every post gets a clean markdown rendering (title, meta, body, top comments threaded) plus atokensEstimate(~chars/4). The markdown itself is never billed — only the result item. - Filters: time window (
timeRange), minimum score, flair text, NSFW on/off. - Official API first, archive fallback: uses Reddit's official JSON/OAuth API (bring your own Reddit app credentials for the live OAuth path), and automatically falls back to the public Reddit archive when official endpoints are unreachable from the current network.
Use cases
- Brand & reputation monitoring (track subreddits daily with
monitorMode). - Voice-of-customer research: full complaint/praise threads, not just top-level comments.
- Training data for LLMs: markdown + token estimates, thread-ordered comments with depth.
- Lead discovery: search niche subreddits for buying-intent keywords.
- Community stats: subscribers, creation date, descriptions via
subreddit_info.
How to use
- Pick a mode.
- Fill the required field for that mode (
subreddit,query,usernameorpostUrl). - Set
maxItems— the hard cap on billed result rows (controls spend). - Run. Results land in the default dataset; each row is charged as one
result-itemevent.
The 7 modes with examples
| Mode | Required input | Example |
|---|---|---|
subreddit | subreddit: technology, sort: hot | Latest hot posts of r/technology |
search | query: "mechanical keyboard" | Global search (add subreddit to restrict) |
user_posts | username: spez | Profile card + posts + comments of u/spez |
post_comments | postUrl: <post URL or ID> | Full comment tree of one post |
post_details | postUrl: <post URL or ID> | Just the post (add includeComments for top comments) |
popular | — | r/popular feed |
subreddit_info | subreddit: technology | Community profile (subscribers, description…) |
Extra knobs: sort (hot/new/top/rising/controversial/relevance/comments), timeRange
(hour/day/week/month/year/all), minScore, flairFilter, includeNsfw, includeComments,
maxCommentsPerPost (0 = no comments), monitorMode, proxyConfiguration,
redditClientId/redditClientSecret (your own Reddit script-app credentials for the live
OAuth path — never logged).
Example input
{"maxItems": 10,"mode": "subreddit","sort": "hot","subreddit": "technology"}
A full-tree example:
{"mode": "post_comments","postUrl": "https://www.reddit.com/r/technology/comments/1wyva7w/metas_ai_mascot_is_stealing_domo_from_2012/","maxCommentsPerPost": 200,"maxItems": 500,"outputFormat": "both"}
Example output (one dataset item)
{"id": "t3_1wyva7w","type": "post","subreddit": "technology","title": "Metas AI mascot is stealing Domo from 2012","selftext": null,"author": "goatedirish","score": 1,"upvoteRatio": 1,"numComments": 0,"createdAt": "2026-10-06T06:16:23.000Z","url": "https://mashable.com/tech/why-companies-use-cute-mascots-meta-jolly","permalink": "https://www.reddit.com/r/technology/comments/1wyva7w/metas_ai_mascot_is_stealing_domo_from_2012/","flair": "Artificial Intelligence","isNsfw": false,"mediaUrls": ["https://external-preview.redd.it/DAtdt8Et3aSW07tvw_Oj_n8knD85ItJFT_dopqf5LIo.jpeg?..."],"parentId": null,"depth": null,"body": null,"commentsTruncated": false,"markdown": "# Metas AI mascot is stealing Domo from 2012\n\nr/technology · u/goatedirish · ...","tokensEstimate": 186}
Comment rows carry body, parentId (t3_ post or t1_ comment) and depth (0 = top-level reply),
so you can rebuild the exact thread. subreddit rows carry subscribers in score; user rows
carry total karma in score. Fields that don't apply to a row type are null — never invented.
Pricing
| Event | Price |
|---|---|
result-item — one post, comment, subreddit or user saved | US$ 0.001 |
The markdown rendering and token estimate are free (included in the item, never billed separately).
- 100 posts ≈ US$ 0.10
- 1,000 posts ≈ US$ 1.00
- 1 post + its 200 comments ≈ US$ 0.20
- Daily monitor of a subreddit: you pay only for new items each run.
maxItems is a hard cap: the actor stops before exceeding what your budget allows
(calculateMaxEventChargeCountWithinLimit + eventChargeLimitReached are honored).
Official API vs plain scraping
This actor talks to Reddit's official API (OAuth when you provide your own free Reddit script-app credentials; public JSON endpoints otherwise) instead of parsing HTML pages. That means stable field names, real scores/ratios/flairs, and proper rate-limit handling (paced requests, exponential backoff on 429/5xx). When the official path is unreachable from the current network, the actor transparently falls back to the public Reddit archive API rather than failing your run — the run summary records which source was used. Before buying any Reddit actor in the Store, compare: price per row, whether comment trees are fully expanded or top-level only, and whether incremental monitoring is included.
Limits
- Reddit's quota (~100 req/min) is absorbed with pacing + retries; very large
maxItemsruns simply take longer. - Private, banned, quarantined or removed content returns no rows (never billed) — the log says why.
- The archive fallback lags live Reddit by hours/days and its author lookup can be slow; for
fresh
user_postsresults, provideredditClientId/redditClientSecretto use the live OAuth path. maxCommentsPerPostcaps at 2000;maxItemscaps at 5000 per run.
FAQ
Is this legal? Yes — only public data, no login bypass, no CAPTCHA solving, no paywalls. Provide your own Reddit app credentials and you use Reddit's sanctioned API with your own quota.
Do I need Reddit credentials? No. They are optional and unlock the live OAuth path (freshest data, highest reliability). Without them the actor uses public endpoints + archive fallback.
Why 0 items? The source is likely empty (private/banned subreddit, removed post, a search
with no matches) or monitorMode found nothing new. Check the log lines — the cause is stated.
Monitor runs with no new content correctly return 0 items and cost nothing.
Which proxy should I use? The default Apify proxy works for most runs. For heavy runs, switch
the proxyConfiguration to residential proxies. Local runs without a proxy fall back to the
archive automatically.
Common errors: Invalid input: "subreddit" is required… (missing field for the mode);
could not find a post ID in "postUrl" (paste the full post URL); charge-limit warnings mean
your max-spend was reached and the run stopped early by design.
Integrations
- API: standard Apify dataset API (
/v3/actor-runs/{id}/dataset/items?view=overview). - Make / Zapier: use the Apify modules, trigger on dataset items.
- MCP / LLMs: the dataset schema (
overviewview) exposes typed fields;gives you ready-to-embed markdown with token estimates per post.outputFormat: both
Support
Open an issue on the actor's GitHub repo (link on the Store page) with the run ID, the input JSON (redact your credentials) and the relevant log lines.