Reddit Scraper | All in one
Pricing
from $0.50 / 1,000 results
Reddit Scraper | All in one
Scrape Reddit posts, comments, subreddits, and user profiles. Extract engagement metrics, media, nested comment threads, and 35+ data fields. Filter by date, score, NSFW, and media.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Reddit Scraper ๐ค
Scrape Reddit posts, comments, subreddits, search results, and user profiles โ fast, at scale, and without a Reddit API key or login. Extract engagement metrics, media URLs, nested comment threads, and 35+ structured fields from any public Reddit content.
Perfect for market research, brand monitoring, sentiment analysis, trend tracking, lead generation, and feeding LLMs/RAG pipelines with real Reddit discussions.
Why this scraper
- ๐ No API key, no Reddit account โ just run it.
- โก Fast & concurrent โ processes posts in parallel; a lightweight metadata-only mode for cheap, high-speed monitoring.
- ๐ Deep search coverage โ returns several times more results per query than a basic search.
- ๐ฌ Full comment threads โ nested replies, optionally flattened into one row per comment.
- ๐งฑ 35+ structured fields per post, ready for analysis or the API/MCP.
- ๐ธ Transparent, low cost โ pay only for what you scrape.
What you can scrape
| Source | How |
|---|---|
| Subreddit posts | subreddits: ["technology"] |
| Search across Reddit | searchTerms: ["machine learning"] |
| User posts & comments | usernames: ["spez"] |
| Any Reddit URL | startUrls โ posts, subreddits, users, or search URLs |
Two modes: tune speed vs. depth
| Full mode (default) | Fast mode | |
|---|---|---|
| Set | fetchPostDetails: true | fetchPostDetails: false |
| Gets | title, body text, upvote ratio, media, all fields | post metadata only (title, score, author, dates, flags, media) โ no body/ratio |
| Speed / cost | one extra request per post | metadata only โ much faster & cheaper |
| Best for | full analysis | high-volume monitoring, dashboards |
Comments are a separate switch โ turn on
scrapeCommentsto extract them (each comment is a billed result and its own row). See the Comments section below.
Input
Scraping sources (use one or combine)
| Field | Type | Description |
|---|---|---|
subreddits | string[] | Subreddit names (without r/ prefix) |
searchTerms | string[] | Keywords to search across Reddit |
usernames | string[] | Reddit usernames (without u/ prefix) |
startUrls | URL[] | Direct Reddit URLs (posts, subreddits, users, search) |
Scope, sorting & coverage
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 100 | Max posts per source (1โ10,000) |
sort | string | hot | hot, new, top, rising, relevance, comments |
timeFilter | string | all | Time range for top/search: hour, day, week, month, year, all |
maximizeCoverage | boolean | true | For searches, gather results more thoroughly and de-duplicate โ many more posts per query |
Comments
| Field | Type | Default | Description |
|---|---|---|---|
scrapeComments | boolean | false | Turn ON to extract comments. Each comment is a billed result and its own row (linked to its post). OFF = comments are never fetched (no cost) |
maxComments | integer | 100 | Max comments per post (only when scrapeComments is ON) |
commentDepth | integer | 3 | Max depth of nested replies, 1โ20 (only when scrapeComments is ON) |
Filters
| Field | Type | Default | Description |
|---|---|---|---|
startDate | string | โ | Only posts after this date (YYYY-MM-DD) |
endDate | string | โ | Only posts before this date (YYYY-MM-DD) |
minScore | integer | โ | Minimum post score |
includeNSFW | boolean | false | Include NSFW posts |
mediaOnly | boolean | false | Only posts with images, videos, or galleries |
Performance & advanced
| Field | Type | Default | Description |
|---|---|---|---|
fetchPostDetails | boolean | true | Fetch full post detail (body, upvote ratio, comments). Turn off for fast, cheap metadata-only runs |
maxConcurrency | integer | 5 | How many posts to process in parallel (1โ20) |
customMapFunction | string | โ | JavaScript to transform each result. Receives post, must return an object |
Output
Each post is one dataset item with 35+ fields:
{"id": "1abc123","title": "Post title","text": "Post body text","url": "https://www.reddit.com/r/technology/comments/1abc123/...","author": "username","authorFullname": "t2_abc","subreddit": "technology","score": 15432,"upvoteRatio": 0.95,"numComments": 892,"postType": "image","createdAt": "2026-04-15T10:30:00.000Z","domain": "i.redd.it","isNSFW": false,"hasMedia": true,"media": [{ "type": "image", "url": "https://i.redd.it/...jpeg" }],"linkFlair": "Discussion","comments": [{ "author": "commenter", "body": "Comment text", "score": 523, "depth": 0, "isOP": false, "replies": [] }]}
Field groups: core (id, title, text, author, subreddit, permalink, createdAt, postType, domain, linkUrl) ยท engagement (score, upvoteRatio, numComments, numCrossposts, totalAwards) ยท media (thumbnail, media[], hasMedia, hasVideo, hasImage, isGallery) ยท flags (isNSFW, isSpoiler, isStickied, isLocked, isArchived, isSelf) ยท flair (linkFlair, authorFlair) ยท metadata (subredditSubscribers, sourceType, sourceQuery, scrapedAt).
With scrapeComments: true, each comment becomes its own billed row (itemType: "comment") carrying body, author, score, depth, isOP, plus postId/postTitle/subreddit to link it back to its post โ ideal for exporting a flat comment list.
Examples
Top posts from a subreddit (last week):
{ "subreddits": ["technology"], "maxItems": 50, "sort": "top", "timeFilter": "week" }
Search Reddit, maximum coverage:
{ "searchTerms": ["benq monitor"], "maxItems": 300, "sort": "relevance", "maximizeCoverage": true }
A post with its comments (each comment a billed row):
{ "startUrls": ["https://www.reddit.com/r/AskReddit/comments/1abc123/title/"], "scrapeComments": true, "maxComments": 100 }
Posts + comments as a flat list:
{ "subreddits": ["buildapc"], "maxItems": 50, "scrapeComments": true, "maxComments": 100 }
Fast, cheap monitoring (metadata only):
{ "subreddits": ["worldnews"], "maxItems": 500, "fetchPostDetails": false, "sort": "new" }
Tips on speed & cost
- Don't need body text? Set
fetchPostDetails: falseโ dramatically faster and cheaper (no per-post fetch). - Need comments? Turn on
scrapeCommentsโ each comment is a billed row. SetmaxCommentssensibly (e.g.50โ200); cost scales with how many comments you pull. - Want more results from a search? Keep
maximizeCoverage: trueand raisemaxItems. - Raise
maxConcurrency(e.g. 8โ10) for more speed, or lower it to be gentler.
Limitations
- Scrapes public content only. Private or quarantined subreddits return an error.
upvoteRatioand post body text requirefetchPostDetails: true; comments requirescrapeComments: true.- Very large comment threads may not return every single nested reply.
subredditSubscribersand award counts are best-effort and may be0when not exposed.
Disclaimer
This actor accesses publicly available data from Reddit and is provided for research and educational purposes. By using it you agree to comply with Reddit's User Agreement and all applicable laws. You are solely responsible for how the collected data is used. Always respect rate limits and the privacy of Reddit users.