Reddit Scraper
Pricing
$0.50 / 1,000 results
Pricing
$0.50 / 1,000 results
Rating
5.0
(6)
Developer
Macrocosmos
Maintained by CommunityActor stats
54
Bookmarked
1.1K
Total users
67
Monthly active users
70 days
Issues response
8 hours ago
Last modified
Share

The fastest, most affordable way to get full-fidelity Reddit data β no API key required. Posts and comments with raw markdown bodies, exact parent linkage, and live scores, fresh within minutes. One simple schema, zero setup, flat $0.50 per 1,000 items.
Why this actor
| Option | What it takes |
|---|---|
| Scraping APIs | Per-request pricing that grows with your volume |
| This actor | $0.50 per 1,000 posts/comments β flat, nothing to configure, start in minutes |
- Full fidelity β raw markdown body (not rendered HTML), exact
parentIdfor comments,score/upvote_ratio/num_comments,isNsfw, media URLs - Fresh data β new posts and comments within minutes; live-path results carry current scores, not day-old snapshots
- No credentials required β no Reddit account, no API app, no proxy config
- Resilient by design β multiple independent data sources behind one schema; if one is down, another serves. You get data or an explicit signal, never a silent empty result
- Honest failure modes β a deleted post returns an empty dataset; a source outage returns an
explicit
archive_unavailableitem. You can always tell them apart
π What Data Can You Extract?
Each Reddit post/comment includes:
| Field | Description |
|---|---|
url | Permanent Reddit URL |
id | Reddit unique identifier (t3_/t1_ prefixed) |
title | Post title (posts only) |
body | Text content β raw markdown |
username | Author username |
communityName | Subreddit name (e.g., r/python) |
dataType | Content type: "post" or "comment" |
parentId | Parent post/comment id (exact, for comments) |
score | Upvotes minus downvotes |
upvote_ratio | Ratio of upvotes (0-1) |
num_comments | Number of comments (posts only) |
createdAt | ISO 8601 timestamp |
isNsfw | NSFW flag |
media | Array of image/video URLs (if present) |
π― Use Cases
- Market Research β Monitor discussions about products, brands, or topics
- Sentiment Analysis β Analyze community opinions and trends
- AI Training Data β Raw markdown text with thread structure, ready for pipelines
- Content Aggregation β Collect posts for newsletters or content curation
- Trend Detection β Track emerging topics and viral content within minutes
π‘ Input Configuration
Subreddit Scraping
{"subreddits": ["python", "MachineLearning", "datascience"],"limit": 25,"sort": "new"}
Parameters:
subreddits(array, required) - List of subreddit names (without r/ prefix)limit(number, optional) - Posts per subreddit (1-100, default: 10)sort(string, optional) - Sort order: "new", "hot", "top" (default: "new"). Only "new" is exact; "hot" and "top" return the newest posts.keyword(string, optional) - Only posts whose title or text contains this keyword, newest first
Single URL Scraping
Scrape a specific post or comment by URL β the fastest, cheapest mode:
{"url": "https://www.reddit.com/r/python/comments/abc123/title/"}
Parameters:
url(string, required) - Full Reddit post or comment URLliveFallback(boolean, optional, default false) - If primary sources can't serve the item, scrape it from Reddit's live public feeds. Degraded data (plain-text body, no scores), so it's opt-in. Off: outages return anarchive_unavailableerror item instead.
π Output Example
[{"url": "https://www.reddit.com/r/bittensor_/comments/1or4vcv/james_altucher_on_bittensor/","id": "t3_1or4vcv","title": "James Altucher on Bittensor: The Only Tech That Matters Since Bitcoin","body": "# Who Is James Altucher\n\nJames Altucher is not a typical crypto influencer...","username": "Internal-Patience533","communityName": "r/bittensor_","dataType": "post","parentId": null,"score": 29,"upvote_ratio": 1.0,"num_comments": 3,"createdAt": "2025-11-07T20:10:31Z","isNsfw": false,"media": ["https://i.redd.it/2iyvqtsu6wzf1.png"]}]
π§ Advanced Usage
Keyword Filtering
{"subreddits": ["technology"],"keyword": "artificial intelligence","limit": 50,"sort": "top"}
Multiple Subreddits
{"subreddits": ["python", "javascript", "golang", "rust"],"limit": 20,"sort": "hot"}
π Reliability
One input schema, several independent sources behind it β the actor picks the best available per request and you never manage any of it:
- Primary: high-throughput archive sources with rate-limit backoff and proxy rescue
- Live path: direct fetches that return current scores and minute-fresh content
- Continuity: public Atom feeds keep subreddit scraping alive even during full outages
(
liveFallbackenables the same for single-URL mode) - Signals:
archive_unavailableitems mean "our sources are down", empty datasets mean "the post is really gone" β automated pipelines can act on each correctly
β Common Questions
Q: Do I need a Reddit account or API key? A: No. Everything is handled by the actor.
Q: How fresh is the data? A: Minutes for posts and comments. Live-path results include current scores; archive-served results can carry scores that lag up to ~36 hours for very fresh items.
Q: Can I scrape comments?
A: Yes β full comment objects with exact parentId, via direct URL.
Q: Can I scrape private subreddits? A: No, only public subreddits and posts.
Q: What does it cost? A: $0.50 per 1,000 posts/comments, flat. No proxies to buy, no accounts to manage, no surprise per-request fees.
π Self-hosting: optional full-fidelity fallback
Running your own fork? Set a secret environment variable REDDIT_SESSION_COOKIE with the
reddit_session cookie of a dedicated Reddit account (DevTools β Application β Cookies).
Anonymous reddit.com is bot-walled, but a normal logged-in session is not β and the cookie works
from any IP. With it set, the actor gains a full-fidelity live path (raw markdown, exact
parent_id, live scores) that engages only when the archives can't serve an item. Use a dedicated
account, not a personal one: Reddit may suspend accounts used for scraping. When unset, behavior
is unchanged.
Built with β€οΈ by Macrocosmos