
Reddit Scraper
hipersoft/reddit-scraper
Scrape Reddit posts and comments by subreddit, keyword, author or thread URL. Get titles, self-text, scores, upvote ratio, comment counts, comment trees and permalinks — one clean row per post or comment. Export as JSON, CSV or Excel.
Total users
15Monthly users
3Total runs
568Per post scraped
$0.0034Last rebuilt
Oct 26, 2026Overview
Scrape Reddit posts and comments into clean, structured JSON, CSV or Excel. Pull recent submissions from any subreddit, search Reddit by keyword, collect everything from a user, or drop in a thread URL to grab the post and its comment tree — one tidy row per post or comment. Built for market research, brand monitoring, sentiment analysis, lead discovery and automations.
Features
- 🧵 Posts and comments — collect submissions, comment threads, or both in a single run.
- 🌐 Four ways to target — by subreddit, by keyword search, by author, or by a direct thread URL.
- 📝 Full text — post titles and self-text (text posts) plus the full body of every comment.
- 📊 Engagement metrics — score, upvote ratio and comment count for each post.
- 🌳 Comment trees — link and parent ids on every comment so you can rebuild the reply structure.
- 🗓️ Date filtering — limit results to a date range, or to the last N days.
- 🔀 Sort — newest first, or the highest-scoring content first.
- 🔗 Permalinks — a ready-to-open reddit.com link for every post and comment.
- 📄 Volume control —
maxItemsandmaxItemsPerSourceto balance coverage and cost.
Input
{
"subreddits": ["aww"],
"type": "both",
"sort": "new",
"maxItems": 50
}
| Field | Description |
|---|---|
subreddits |
Subreddits to scrape, with or without r/ (e.g. aww, AskReddit, r/technology). |
searchQueries |
Keywords to search across Reddit. Combined with subreddits, the search is limited to those subreddits. |
authors |
Reddit usernames to collect posts/comments from, with or without u/. |
postUrls |
Reddit thread URLs — each is expanded to its post plus the comments beneath it. |
type |
posts, comments, or both. Defaults to posts. |
sort |
new (most recent) or top (highest score). |
maxItems |
Maximum total posts + comments to collect (0 = no limit). |
maxItemsPerSource |
Optional cap per subreddit / keyword / author / URL (0 = no cap). |
postedAfter / postedBefore |
Optional date range — a date (YYYY-MM-DD) or a number of days ago (e.g. 7). |
How to use
Pick one or more targets — a subreddit, a keyword, an author, or a thread URL — choose whether you want posts, comments or both, set maxItems, and run. Mix inputs freely: add a keyword and a subreddit together to search within that subreddit.
Use cases
- Track brand, product or topic mentions across Reddit for sentiment and PR monitoring.
- Build datasets of posts and comments for research, NLP and trend analysis.
- Watch specific subreddits for new posts on keywords you care about.
- Pull an entire thread's comment tree for community and discourse analysis.
- Collect a user's post and comment history for account research.
- Feed structured Reddit records into a spreadsheet, database or analytics pipeline.
What you get
Each post is one dataset record:
{
"type": "post",
"id": "abc123",
"subreddit": "aww",
"title": "My cat just discovered the sunbeam",
"author": "example_user",
"selftext": "",
"score": 5421,
"upvoteRatio": 0.98,
"numComments": 142,
"createdAt": "2026-09-10T14:22:31.000Z",
"permalink": "https://www.reddit.com/r/aww/comments/abc123/my_cat_just_discovered_the_sunbeam/",
"url": "https://i.redd.it/xxxx.jpg",
"domain": "i.redd.it",
"flair": null,
"isVideo": false,
"over18": false
}
Each comment is one dataset record:
{
"type": "comment",
"id": "def456",
"subreddit": "aww",
"author": "another_user",
"body": "This is the best thing I've seen all day.",
"score": 87,
"createdAt": "2026-09-10T15:01:12.000Z",
"linkId": "t3_abc123",
"parentId": "t3_abc123",
"permalink": "https://www.reddit.com/r/aww/comments/abc123/_/def456/"
}
Output schema
| Field | Type | Description |
|---|---|---|
type |
string | post or comment. |
id |
string | Reddit's base-36 id for the post or comment. |
subreddit |
string | Subreddit the item belongs to. |
title |
string | Post title (posts only). |
author |
string | Username of the poster / commenter. |
selftext |
string | Body text of a self/text post (posts only). |
body |
string | Comment text (comments only). |
score |
integer | Net score (upvotes minus downvotes). |
upvoteRatio |
number | Fraction of votes that are upvotes (posts only). |
numComments |
integer | Number of comments on the post (posts only). |
createdAt |
string | Creation time in ISO 8601. |
permalink |
string (URL) | Direct reddit.com link to the item. |
url |
string (URL) | Outbound/link-post URL (posts only). |
domain |
string | Domain of the post's link (posts only). |
flair |
string | Link flair text where present (posts only). |
isVideo |
boolean | Whether the post is a Reddit-hosted video (posts only). |
over18 |
boolean | Whether the post is marked NSFW (posts only). |
linkId |
string | Fullname of the post a comment belongs to (comments only). |
parentId |
string | Fullname of the comment's parent (comments only). |
FAQ
Do I need a Reddit account? No. Just enter a subreddit, keyword, author or thread URL and run.
Can I get a whole thread's comments?
Yes. Put the thread URL in postUrls and set type to comments or both — you'll get the post and the comments beneath it.
Can I filter by date?
Yes. Use postedAfter and postedBefore with a date (YYYY-MM-DD) or a number of days ago.
How many items can I collect?
As many as your targets return. Use maxItems and maxItemsPerSource to control volume and cost.
What export formats are supported? JSON, CSV, Excel and XML, plus the Apify API for programmatic access.
Can I use this with n8n? Yes. Use the Apify node for n8n to run this Actor and pull its dataset straight into an n8n workflow — trigger it on a schedule, then route the rows to a database, spreadsheet or messaging step.
Can I connect it to other tools? The Reddit Scraper connects with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Returns only public Reddit content — the same posts and comments any visitor can see. This is an independent tool and is not affiliated with, endorsed by or connected to Reddit; "Reddit" is a trademark of its respective owner. Original clean-room implementation.
Input
| Field | Type | Description |
|---|---|---|
subredditsSubreddits | array | Subreddits to scrape recent posts and/or comments from. Enter names with or without the r/ prefix, e.g. aww, AskReddit, r/technology. |
searchQueriesSearch keywords | array | Keywords to search across Reddit. If you also fill in Subreddits, the search is limited to those subreddits. |
authorsAuthors (usernames) | array | Reddit usernames to collect posts and/or comments from. Enter with or without the u/ prefix, e.g. spez, u/example_user. |
postUrlsPost / thread URLs | array | Reddit thread URLs or permalinks. Each one is expanded to its post plus the comments underneath it, e.g. https://www.reddit.com/r/aww/comments/abc123/title/. |
typeWhat to collect | string · posts, comments, both | Collect posts, comments, or both. Default: "posts" |
sortSort | string · new, top | New = the most recent content first. Top = the highest-scoring content first. Default: "new" |
maxItemsMax items | integer | Maximum total number of posts + comments to collect across all sources (0 = no limit). Default: 0 |
maxItemsPerSourceMax items per source | integer | Optional cap on items collected from each individual subreddit, keyword, author or URL (0 = no per-source cap). Default: 0 |
postedAfterPosted after | string | Only include content posted after this point. Accepts a date (YYYY-MM-DD or ISO) or a number of days ago (e.g. 7). |
postedBeforePosted before | string | Only include content posted before this point. Accepts a date (YYYY-MM-DD or ISO) or a number of days ago (e.g. 1). |
proxyConfigurationProxy configuration | object | Optional. This Actor does not need a proxy and runs fine without one; leave it disabled unless you have a specific reason. |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~reddit-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"subreddits": [
"aww"
],
"type": "both",
"maxItems": 50
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/reddit-scraper").call(run_input={
"subreddits": [
"aww"
],
"type": "both",
"maxItems": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/reddit-scraper').call({
"subreddits": [
"aww"
],
"type": "both",
"maxItems": 50
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Post scraped One Reddit post scraped with all its data | $0.0034 | $0.0017 |
| Comment scraped One comment or nested reply scraped from a post | $0.0016 | $0.0016 |
| User scraped One user profile with karma and recent activity | $0.003 | $0.003 |
| Subreddit scraped One subreddit profile scraped | $0.002 | $0.002 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Website Contact Scraper
Extract business emails, phone numbers and social media profiles from any list of websites. De-obfuscates emails, reads Organization schema, and optionally crawls contact/about pages. Bulk-ready.
1,576 runs · 69 users · $0.0024 / website scrapedThreads Downloader
Download Threads photos, videos and carousel posts by URL. Paste threads.net or threads.com links and get ready-to-use download links plus direct media URLs, a thumbnail, media type and count — one row per URL as JSON, CSV or Excel. Cheap, bulk, built for creators and n8n.
799 runs · 4 users · $0.003 / post downloadedTikTok Video Downloader
Download TikTok videos without watermark in bulk. Paste video or photo-slideshow URLs and get a clean HD MP4 download link plus full metadata: caption, author, play/like/comment/share counts, sound and cover — one row per post as JSON, CSV or Excel. For creators, research and n8n.
678 runs · 9 users · $0.0035 / video downloadedSpotify Scraper
Search Spotify and scrape public metadata for tracks, artists, albums and playlists: names, artists, popularity, followers, genres, release dates, duration, ISRC, preview URL and more. No Spotify login or API key required. For music research, catalogs and analytics.
478 runs · 9 users · $0.0034 / item scrapedReddit Video, Image & GIF Downloader
Download Reddit videos, images and GIFs by post URL. Paste reddit.com or redd.it links and get ready-to-use download links — videos as a single playable MP4 with audio, images and galleries as direct links — one row per URL as JSON, CSV or Excel. Cheap, bulk, built for creators and n8n.
453 runs · 16 users · $0.003 / item scrapedYouTube Scraper
All-in-one YouTube API: get video metadata, full transcripts, comments with replies, channel data, and search results in a single call. No setup, fast and cheap.
350 runs · 52 users · $0.0032 / video scrapedSend the site and the fields. We build it and you get it first.