Reddit Scraper avatar

Reddit Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Reddit Scraper

Reddit Scraper

[๐Ÿ’ฐ $1.0 / 1K] Extract posts, comments, users, and subreddits from Reddit. Provide subreddit names, search queries, or paste Reddit URLs (post / subreddit / user / search) โ€” mix and match. Returns one row per record with a recordType discriminator.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(1)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

a day ago

Last modified

Share

Extract posts, comments, users, and entire subreddits from Reddit in one run. Mix any combination of subreddit names, search keywords, and direct Reddit URLs โ€” every row is tagged with a recordType so you can filter posts, comments, users, and communities in a single dataset.

Why This Scraper?

  • Four record types in one run โ€” posts, comments, users, and subreddits, each with rich metadata
  • Mix and match sources โ€” feed it subreddit names, search keywords, and full Reddit URLs (post links, user profiles, search URLs) in any combination
  • Deep comment trees โ€” walk every reply branch, with knobs for maximum comments per post and nesting depth
  • Date cutoffs โ€” scrape only posts or comments after a given date (great for daily refreshes)
  • NSFW toggle โ€” keep or filter over-18 content
  • 20 inputs, sensible defaults โ€” works out of the box with zero configuration, but every knob is exposed
  • Pay only for results โ€” no compute charges, no proxy bills, no surprises
  • Reliable JSON output โ€” every row uses stable, camelCase field names you can pipe straight into a database

Use Cases

Market Research & Competitive Intelligence

  • Track conversation volume around a brand, product, or competitor across communities
  • Monitor sentiment in niche subreddits before launching a product
  • Discover trending topics and rising subreddits by category

Lead Generation & Audience Building

  • Find users asking buying-intent questions in your industry
  • Build prospect lists from active contributors in target communities
  • Identify niche influencers ranked by karma and engagement

Brand Monitoring & PR

  • Catch mentions of your brand or product in real time using keyword searches
  • Pull entire comment threads from posts that mention you
  • Track sentiment and response rates over weeks or months

Academic Research & Data Science

  • Build labeled datasets for natural-language processing or sentiment models
  • Study community dynamics, moderation, and user behavior at scale
  • Capture longitudinal snapshots of subreddits with date cutoffs

Content & SEO

  • Discover the most-asked questions in any niche
  • Mine high-engagement post titles for content ideas
  • Track which external links perform best in target communities

Getting Started

Scrape posts from a subreddit

The simplest possible run โ€” pull the latest 100 posts from r/programming:

{
"subreddits": ["programming"],
"sort": "new",
"maxItems": 100
}

Search across Reddit

Find the top posts of the past month matching a keyword:

{
"searches": ["best espresso machine"],
"searchPosts": true,
"sort": "top",
"time": "month",
"maxItems": 200
}

Get every comment on a specific post

Paste any Reddit post URL โ€” the actor pulls the post and walks the full comment tree:

{
"startUrls": [
"https://www.reddit.com/r/AskReddit/comments/1abc234/whats_your_favourite_book/"
],
"maxComments": 500,
"maxCommentDepth": 10
}

Scrape a user's posts and comments

Pull a user's profile, every post they've submitted, and every comment they've made:

{
"startUrls": ["https://www.reddit.com/user/spez/"],
"sort": "new",
"maxItems": 1000
}

Daily refresh of a subreddit

Combine a subreddit source with a date cutoff to grab only what's new since yesterday:

{
"subreddits": ["wallstreetbets"],
"sort": "new",
"postDateLimit": "2025-04-24",
"skipComments": true,
"maxItems": 0
}

Input Reference

Sources

ParameterTypeDefaultDescription
subredditsstring[]["popular"]Subreddit names to scrape (the r/ prefix is optional). Each subreddit is fetched independently.
searchesstring[][]Keywords to search across Reddit. Each keyword runs as its own query.
startUrlsURL[][]Reddit URLs to scrape directly โ€” accepts subreddit, post, user-profile, and search URLs. Mix any types.

Search Options

ParameterTypeDefaultDescription
searchCommunityNamestringRestrict every search keyword to a single subreddit (e.g. programming). Leave empty to search all of Reddit.
searchPostsbooleantrueInclude matching posts in keyword search results.
searchCommentsbooleanfalseInclude matching comments in keyword search results (see Tips โ€” Reddit's comment-search index is limited).
searchCommunitiesbooleanfalseInclude matching subreddits in keyword search results.
searchUsersbooleanfalseInclude matching user profiles in keyword search results.

Sort & Filter

ParameterTypeDefaultDescription
sortstring"new"Result ordering: New, Hot, Top, Rising, Most comments, or Relevance (search only).
timestring"all"Date window for Top sort and keyword searches: All time, Past hour, Past 24 hours, Past week, Past month, Past year.
includeNSFWbooleantrueWhen off, posts and subreddits flagged as over-18 are filtered out.
postDateLimitstringEarliest post date in YYYY-MM-DD format. Only posts on or after this date are kept.
commentDateLimitstringEarliest comment date in YYYY-MM-DD format. Older comments are dropped.

What to Extract

ParameterTypeDefaultDescription
skipCommentsbooleanfalseWhen scraping a post (via URL or search), skip its comment tree and keep only the post metadata.
skipUserPostsbooleanfalseWhen scraping a user profile, skip their submitted posts.
skipUserCommentsbooleanfalseWhen scraping a user profile, skip their comments.
skipCommunityInfobooleanfalseWhen scraping a subreddit, omit the metadata row (member count, description) and emit only the posts.

Limits

ParameterTypeDefaultDescription
maxItemsinteger100Cap on total rows in the output dataset. Use 0 for unlimited.
maxCommentsinteger100Maximum comments to fetch from each post. Use 0 to fetch the entire comment tree.
maxCommentDepthinteger10Maximum nesting depth when walking a comment tree (0 = top-level only).

Output

Every record carries a recordType field โ€” post, comment, user, or subreddit โ€” so you can filter the dataset down to just what you need.

Post

{
"recordType": "post",
"id": "1abc234",
"fullId": "t3_1abc234",
"url": "https://www.reddit.com/r/programming/comments/1abc234/rust_2025_release/",
"createdAt": "2025-04-20T14:32:11Z",
"scrapedAt": "2025-04-25T09:01:42Z",
"sourceQuery": "r/programming",
"title": "Rust 2025 release notes",
"text": "The Rust team just announced...",
"subreddit": "programming",
"author": "rustacean99",
"score": 4321,
"upvoteRatio": 0.97,
"numComments": 412,
"permalink": "/r/programming/comments/1abc234/rust_2025_release/",
"linkUrl": "https://blog.rust-lang.org/2025/04/20/Rust-2025.html",
"domain": "blog.rust-lang.org",
"flair": "News",
"isNsfw": false,
"isSpoiler": false,
"isStickied": false,
"isLocked": false,
"isVideo": false,
"thumbnail": "https://b.thumbs.redditmedia.com/abc.jpg"
}
FieldTypeDescription
recordTypestringAlways "post"
idstringReddit short ID
fullIdstringReddit fullname (t3_<id>)
urlstringPublic Reddit URL
createdAtstringISO-8601 timestamp
scrapedAtstringISO-8601 timestamp of extraction
sourceQuerystringWhich input source produced this row
titlestringPost title
textstringSelf-text body (when present)
subredditstringSubreddit name
authorstringUsername of the poster
scorenumberNet upvotes
upvoteRationumberUpvote ratio (0.0โ€“1.0)
numCommentsnumberTotal comment count
permalinkstringPath on reddit.com
linkUrlstringOutbound link for link posts
domainstringHostname of the linked URL
flairstringPost flair text
isNsfwbooleanMarked over-18
isSpoilerbooleanMarked as spoiler
isStickiedbooleanPinned to subreddit
isLockedbooleanComments locked
isVideobooleanNative Reddit video
mediaobjectMedia payload (video, gallery, or preview)
thumbnailstringThumbnail image URL

Comment

{
"recordType": "comment",
"id": "k9j2x4",
"fullId": "t1_k9j2x4",
"url": "https://www.reddit.com/r/programming/comments/1abc234/_/k9j2x4/",
"createdAt": "2025-04-20T15:11:08Z",
"scrapedAt": "2025-04-25T09:01:42Z",
"sourceQuery": "r/programming",
"body": "This is huge for the embedded space.",
"author": "embeddev",
"score": 187,
"subreddit": "programming",
"postId": "t3_1abc234",
"postTitle": "Rust 2025 release notes",
"parentId": "t3_1abc234",
"depth": 0,
"isStickied": false,
"isSubmitter": false,
"flair": "Senior Engineer"
}
FieldTypeDescription
recordTypestringAlways "comment"
idstringReddit short ID
fullIdstringReddit fullname (t1_<id>)
urlstringDirect link to the comment
createdAtstringISO-8601 timestamp
scrapedAtstringISO-8601 timestamp of extraction
sourceQuerystringWhich input source produced this row
bodystringComment text
authorstringComment author username
scorenumberNet upvotes
subredditstringSubreddit name
postIdstringParent post fullname
postTitlestringParent post title
parentIdstringParent comment or post fullname
depthnumberNesting depth (0 = top-level)
permalinkstringPath on reddit.com
isStickiedbooleanPinned to top of thread
isSubmitterbooleanAuthor is the original poster
flairstringAuthor flair text

User

{
"recordType": "user",
"id": "abc123",
"fullId": "t2_abc123",
"url": "https://www.reddit.com/user/rustacean99/",
"createdAt": "2014-08-12T03:22:55Z",
"scrapedAt": "2025-04-25T09:01:42Z",
"sourceQuery": "u/rustacean99",
"username": "rustacean99",
"displayName": "Rust Enthusiast",
"linkKarma": 28412,
"commentKarma": 91204,
"totalKarma": 119616,
"isGold": true,
"isMod": false,
"verified": true,
"description": "Open-source contributor. Rust, embedded, systems.",
"iconUrl": "https://styles.redditmedia.com/abc.png",
"bannerUrl": "https://styles.redditmedia.com/banner.jpg"
}
FieldTypeDescription
recordTypestringAlways "user"
idstringReddit short ID
fullIdstringReddit fullname (t2_<id>)
urlstringPublic profile URL
createdAtstringAccount creation timestamp
scrapedAtstringISO-8601 timestamp of extraction
sourceQuerystringWhich input source produced this row
usernamestringReddit username
displayNamestringProfile display name
linkKarmanumberPost karma
commentKarmanumberComment karma
totalKarmanumberCombined karma
isGoldbooleanPremium subscriber
isModbooleanModerates one or more subreddits
verifiedbooleanEmail-verified account
descriptionstringProfile bio
iconUrlstringAvatar image URL
bannerUrlstringProfile banner URL

Subreddit

{
"recordType": "subreddit",
"id": "2qh16",
"fullId": "t5_2qh16",
"url": "https://www.reddit.com/r/programming/",
"createdAt": "2008-01-25T03:00:24Z",
"scrapedAt": "2025-04-25T09:01:42Z",
"sourceQuery": "r/programming",
"name": "programming",
"displayName": "r/programming",
"title": "Computer Programming",
"publicDescription": "Computer Programming",
"subscribers": 6342118,
"activeUsers": 2841,
"isNsfw": false,
"lang": "en",
"iconUrl": "https://styles.redditmedia.com/community.png",
"bannerUrl": "https://styles.redditmedia.com/banner.jpg"
}
FieldTypeDescription
recordTypestringAlways "subreddit"
idstringReddit short ID
fullIdstringReddit fullname (t5_<id>)
urlstringPublic subreddit URL
createdAtstringSubreddit creation timestamp
scrapedAtstringISO-8601 timestamp of extraction
sourceQuerystringWhich input source produced this row
namestringSubreddit name without prefix
displayNamestringDisplay name with r/ prefix
titlestringFull title
descriptionstringLong-form description (markdown)
publicDescriptionstringShort tagline
subscribersnumberMember count
activeUsersnumberCurrently online members
isNsfwbooleanOver-18 community
langstringPrimary language code
iconUrlstringCommunity icon URL
bannerUrlstringCommunity banner URL

Tips for Best Results

  • Comment search returns recent posts, not standalone comments. Reddit's public comment-search index has been limited since 2021, so the Search returns comments toggle may return zero rows for many queries. To find comments containing a keyword reliably, search for posts and let the actor walk each post's comment tree.
  • Per-listing cap is ~1,000 items. Reddit's pagination tops out at roughly 1,000 entries per source (subreddit, search, or user). To go deeper, use multiple sorts or narrower date windows.
  • Use sort: "new" with postDateLimit for clean refreshes. With this combination the actor stops paginating as soon as it hits the cutoff date โ€” no wasted requests.
  • Set maxComments: 0 only when you really need every reply. Popular AskReddit threads can have 50,000+ comments; capping at a few hundred is usually plenty.
  • Mix sources in one run. Combine subreddits, searches, and startUrls in a single input to consolidate data into one dataset and pay one bill.
  • NSFW is on by default. Toggle includeNSFW off if you need a strictly safe-for-work dataset.

Pricing

$1.00 per 1,000 results โ€” pay only for the rows you receive.

ResultsCost
100$0.10
1,000$1.00
10,000$10.00

No compute charges โ€” you only pay per result returned. Storage, proxies, and platform fees are included.

Integrations

Export results in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps:

  • Apify API โ€” Full programmatic access to runs and datasets
  • Webhooks โ€” Get notified the moment a run completes
  • Google Sheets โ€” Direct spreadsheet export
  • Zapier / Make / n8n โ€” Workflow automation across thousands of apps
  • Slack / Email โ€” Notifications on new results

This actor extracts publicly available information from Reddit for legitimate research, monitoring, and analytics purposes. You are responsible for complying with Reddit's Terms of Service, the Reddit User Agreement, and all applicable laws including the GDPR, CCPA, and other privacy regulations.

Do not use the extracted data for spam, harassment, doxxing, training models that violate Reddit's policies, or any unlawful purpose. Avoid collecting personal data on private individuals, and respect any user who has requested removal of their content. When in doubt, treat the data the same way Reddit's own product would.