Reddit Subreddit Scraper
Pricing
from $4.99 / 1,000 results
Go to Apify Store
Reddit Subreddit Scraper
Scrape the newest, hottest, top, or rising posts from any Reddit subreddit with full metadata, images, videos, awards, and optional comments.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
codingfrontend
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape the newest, hottest, top, or rising posts from any Reddit subreddit with full post metadata, images, videos, gallery content, awards, and optional comments — using Reddit's official JSON API for reliable, structured data extraction.
Features
- Sort modes — Scrape by New, Hot, Top, Rising, or Controversial
- Time filters — For Top/Controversial: Past Hour, Today, This Week, This Month, This Year, All Time
- Deep scraping — Opens each post in a parallel browser tab for complete fields (self-text, images, video, gallery, awards, crosspost data)
- Parallel tabs — Processes 3 posts simultaneously for fast extraction
- Pagination — Automatically follows
aftercursor to fetch all pages - Comments — Optional top-20 comments with up to 5 nested replies
- 50+ fields — Author info, flair, media, video HLS/DASH/fallback URLs, gallery images with captions, awards breakdown, moderation metadata, and more
- Stealth mode — Random user agents, headers, and fingerprinting to avoid rate limits
Input Options
| Field | Type | Default | Description |
|---|---|---|---|
subreddit | String | required | Subreddit name (without r/). E.g. javascript, worldnews |
sortBy | Enum | new | new · hot · top · rising · controversial |
topTime | Enum | week | For Top/Controversial: hour · day · week · month · year · all |
maxItems | Number | 50 | Maximum posts to scrape (1–1000) |
deepScraping | Boolean | true | Open each post for full metadata (recommended) |
includeComments | Boolean | false | Include top 20 comments with nested replies |
headless | Boolean | true | Run browser in headless mode |
proxyConfiguration | Object | Apify Residential | Proxy settings |
Example Inputs
Scrape newest posts from r/javascript
{"subreddit": "javascript","sortBy": "new","maxItems": 100,"deepScraping": true,"includeComments": false}
Top posts from r/worldnews this month
{"subreddit": "worldnews","sortBy": "top","topTime": "month","maxItems": 50,"deepScraping": true,"includeComments": true}
Hot posts from r/AskReddit
{"subreddit": "AskReddit","sortBy": "hot","maxItems": 25,"deepScraping": true,"includeComments": true}
Output Dataset Fields
| Field | Type | Description |
|---|---|---|
id | String | Reddit post ID |
title | String | Post title |
url | String | External link URL (or Reddit permalink for self posts) |
permalink | String | Full Reddit URL |
subreddit | String | Subreddit name |
subredditId | String | Subreddit fullname (t5_xxx) |
subredditType | String | public, private, restricted |
subredditSubscribers | Number | Subscriber count |
author | String | Post author username |
authorFullname | String | Author fullname (t2_xxx) |
authorFlair | String | Author flair text |
authorPremium | Boolean | Whether author has Reddit Premium |
score | Number | Upvotes minus downvotes |
upvoteRatio | Number | Fraction of upvotes (0.0–1.0) |
numComments | Number | Total comment count |
createdAt | String | ISO 8601 creation timestamp |
editedAt | String/Boolean | ISO 8601 edit timestamp or false |
selfText | String | Post body text (self posts) |
postType | String | self · link · image · video · gallery · crosspost |
isVideo | Boolean | Whether post contains hosted video |
isSelf | Boolean | Whether it's a text/self post |
isGallery | Boolean | Whether it's a gallery post |
isOC | Boolean | Original content flag |
thumbnail | String | Thumbnail image URL |
flair | String | Post flair text |
flairBackgroundColor | String | Flair background hex color |
domain | String | Link domain |
nsfw | Boolean | NSFW flag |
spoiler | Boolean | Spoiler flag |
locked | Boolean | Whether post is locked |
pinned | Boolean | Whether post is pinned |
stickied | Boolean | Whether post is stickied |
archived | Boolean | Whether post is archived |
distinguished | String | moderator, admin, or null |
suggestedSort | String | Suggested comment sort |
numCrossposts | Number | Cross-post count |
postHint | String | self · link · image · rich:video · hosted:video |
isCrossPost | Boolean | Whether it's a cross-post |
crosspostFrom | String | Original subreddit if cross-posted |
crosspostOriginal | Object | Full original post object if cross-posted |
awardsCount | Number | Total awards received |
gilded | Number | Number of times gilded |
gildings | Object | Breakdown by award tier |
awards | Array | Award names and counts |
previewImages | Array | Preview image objects with resolutions |
videoData | Object | Video URLs (HLS, DASH, fallback), dimensions, duration |
galleryImages | Array | Gallery images with URL, caption, mp4 |
mediaEmbed | Object | Embedded media HTML/dimensions |
comments | Array | Top comments (if includeComments=true) |
scrapedAt | String | ISO 8601 scrape timestamp |
Example Output
{"id": "1t9jt9w","title": "BlueJS: Compile JavaScript to 12MB native binaries","url": "https://github.com/example/bluejs","permalink": "https://www.reddit.com/r/javascript/comments/1t9jt9w/...","subreddit": "javascript","subredditSubscribers": 2400000,"author": "dev_user","score": 1842,"upvoteRatio": 0.97,"numComments": 143,"createdAt": "2025-06-01T10:30:00.000Z","postType": "link","domain": "github.com","nsfw": false,"awardsCount": 3,"previewImages": [{ "url": "https://...", "width": 1200, "height": 630 }],"scrapedAt": "2025-06-01T12:00:00.000Z"}
Related Actors
- Reddit Search Scraper — Search Reddit by keyword across all subreddits
- Reddit Post Scraper — Scrape specific Reddit post URLs for full details
Author
Built by Kumar Lakshmanan · lakshmanan.w3dev@gmail.com