Reddit Scraper Lite - $0.5/1k results avatar

Reddit Scraper Lite - $0.5/1k results

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Reddit Scraper Lite - $0.5/1k results

Reddit Scraper Lite - $0.5/1k results

Pay Per Result, unlimited Reddit web scraper to crawl posts, comments, communities, subreddits, and users without login. Limit web scraping by number of posts or items and extract all data in a dataset in multiple formats.

Pricing

from $0.50 / 1,000 results

Rating

5.0

(13)

Developer

Caleb David

Caleb David

Maintained by Community

Actor stats

17

Bookmarked

528

Total users

18

Monthly active users

3 days ago

Last modified

Share

Reddit Scraper

Reddit Scraper collects Reddit posts by keyword, subreddit or user — plus community info, user profiles and, if you want, full comment threads — and delivers clean, structured data as JSON, CSV, Excel, XML or RSS. Type a keyword, run the Actor, and download the results from the dataset.

The easiest way to try it: enter one search keyword (for example Cheesecake), keep the defaults, and click Start. Results appear in the Output tab while the run is still going.

What can this Reddit Scraper do?

  • 🔎 Search Reddit by keyword — run as many keywords as you like; each one is searched separately and paginated automatically.
  • 🏘️ Scrape subreddits — by name (saas, r/saas) or URL: community info (members, description, icon, banner) plus its posts.
  • 👤 Scrape user profiles — by username (spez, u/spez) or URL: profile info (karma, bio, avatar) plus their posts.
  • ↕️ Sort and filter results — search by Relevance, Hot, Top, New or Comments count; subreddits and users by Hot, New, Top or Controversial; limited to a time range (past hour, day, week, month, year or all time). NSFW posts are skipped unless you include them.
  • 🔢 Control the volume — set a post limit per keyword, subreddit or user to keep runs fast and costs predictable.
  • 💬 Optionally extract full comment threads from every post found, with author, score, timestamp, nesting depth and parent linkage — deleted comments are kept and flagged, so thread structure stays intact.
  • Computed engagement metrics on every item: age in hours, score per hour, comments per hour, total engagement, comment-to-score ratio and a high-engagement flag — ready for analysis without post-processing.

All of this runs on the Apify platform, so you also get scheduling, monitoring, API access, webhooks, and integrations with tools like Zapier, Make, Google Sheets and Slack — plus automatic retries and run resume.

What data can you extract from Reddit?

Every result is a flat JSON object. The data_type field tells you what it is: post, comment, community or user_profile.

Posts (data_type: "post")

Title, body (text and HTML), permalink and content URL, author name and ID, community name and ID, score, upvote ratio, comment count, awards, post type (link, text, media), flair, thumbnails, images and video URLs, NSFW/spoiler flags, creation time, and the engagement metrics listed above.

Communities (data_type: "community")

One per subreddit in the input: name, title, description, member count, icon, banner, NSFW/quarantine flags, URL and creation time.

User profiles (data_type: "user_profile")

One per user in the input: username, total/link/comment karma, profile title and bio, avatar, banner, verified/premium flags, profile URL and account creation time.

Comments (data_type: "comment")

Only collected when Include Comments From Each Post is enabled. Full text (plain and HTML), author, score, creation time, permalink, parent post and parent comment IDs, nesting depth and position, awards, and deletion flags (is_deleted, is_author_deleted) — so you can reconstruct complete conversation trees.

How to scrape Reddit — step by step

  1. Step 1 | What to scrape — add search keywords, subreddits and/or users (at least one).
  2. Step 2 | Sorting & limits — choose the sort order, time range and how many posts to collect per keyword/subreddit/user (default 1000).
  3. Step 3 | Get Comments — optionally enable comments and set the per-post comment limit and reply depth.
  4. Click Start and watch results stream into the Output tab in real time.
  5. Download the dataset in your preferred format, or pull it via the Apify API.

Input example

{
"queries": ["Cheesecake", "Swimming Pool"],
"subreddits": ["baking", "https://www.reddit.com/r/pools/"],
"users": ["u/spez"],
"sort_by": "top",
"listing_sort": "top",
"time_frame": "month",
"max_posts": 100,
"scrape_comments": true,
"max_comments_per_post": 200,
"max_comment_depth": 3
}

Input fields

FieldAliasDefaultDescription
queries——Keywords or phrases to search for.
subreddits——Subreddit names or URLs (saas, r/saas, https://www.reddit.com/r/saas/).
users——Usernames or profile URLs (spez, u/spez, https://www.reddit.com/user/spez/).
sort_bysortrelevanceSearch sort: relevance, hot, top, new or comments (comments count).
listing_sort—newSubreddit/user posts sort: hot, new, top or controversial.
time_frametimeframeallall, year, month, week, day (today) or hour.
max_postsmaxPosts1000Maximum posts per keyword, subreddit and user. Empty = no limit.
include_nsfwincludeNsfwfalseAlso collect posts marked 18+.
scrape_commentsscrapeCommentsfalseAlso collect each post's comment tree.
max_comments_per_postmaxComments1000000Maximum comments per post (only when comments are enabled).
max_comment_depth—10Maximum reply depth; 0 = top-level comments only (only when comments are enabled).
comment_sort—topComment order: top, new, controversial, old or qa.

The camelCase aliases are accepted for convenience when calling the Actor via API — e.g. {"queries": ["saas"], "maxPosts": 50, "sort": "new"}.

Output example (post)

{
"data_type": "post",
"id": "t3_1x6y199",
"parsed_id": "1x6y199",
"post_url": "https://www.reddit.com/r/saasbuild/comments/1x6y199/i_just_hit_100k_with_my_saas_as_a_22yearold_solo/",
"content_url": "https://i.redd.it/72nzu9lm7pvh1.png",
"title": "I just hit $100K with my SaaS as a 22-year-old solo founder. Started with $100",
"body": "I finally crossed $100,000 in total revenue with my B2B SaaS, Getlead.\n\nI'm 22, building it completely solo, fully bootstrapped. No investors, no team. Started with just $100.\n\nA few months ago, even reaching $10K felt like a huge deal. Now I'm looking at $100K and honestly it still feels a bit unreal.\n\nMost of the growth came from experimenting with different offers, cold outreach, paid ads, and constantly improving the product.\n\nI made a lot of mistakes along the way. Underpriced the product, wasted money on things that didn't work, built features nobody needed, and had months where I genuinely wasn't sure if I could keep going.\n\nOne of the biggest things I learned is that distribution matters just as much as the product itself. You can build something amazing, but if you can't get it in front of the right people, it doesn't matter.\n\nAnd to be clear, this is $100K in total revenue, not ARR. I'm still figuring out how to make growth more predictable and recurring.\n\nAnyway, I originally set $100K as my big goal. Now that I've reached it, I'm setting a new one.\n\n$1,000,000.\n\nStill solo, still bootstrapped, and still figuring things out every day.\n\nHappy to answer any questions about the numbers, acquisition channels, mistakes, or anything else.\n\nEDIT: Here is the proof : [https://trustmrr.com/startup/getlead](https://trustmrr.com/startup/getlead) \nWebsite: [https://getle.ad/](https://getle.ad/)",
"body_html": "<!-- SC_OFF --><div class=\"md\"><p>I finally crossed $100,000 in total revenue with my B2B SaaS, Getlead.</p>\n\n<p>I'm 22, building it completely solo, fully bootstrapped. No investors, no team. Started with just $100.</p>\n\n<p>A few months ago, even reaching $10K felt like a huge deal. Now I'm looking at $100K and honestly it still feels a bit unreal.</p>\n\n<p>Most of the growth came from experimenting with different offers, cold outreach, paid ads, and constantly improving the product.</p>\n\n<p>I made a lot of mistakes along the way. Underpriced the product, wasted money on things that didn't work, built features nobody needed, and had months where I genuinely wasn't sure if I could keep going.</p>\n\n<p>One of the biggest things I learned is that distribution matters just as much as the product itself. You can build something amazing, but if you can't get it in front of the right people, it doesn't matter.</p>\n\n<p>And to be clear, this is $100K in total revenue, not ARR. I'm still figuring out how to make growth more predictable and recurring.</p>\n\n<p>Anyway, I originally set $100K as my big goal. Now that I've reached it, I'm setting a new one.</p>\n\n<p>$1,000,000.</p>\n\n<p>Still solo, still bootstrapped, and still figuring things out every day.</p>\n\n<p>Happy to answer any questions about the numbers, acquisition channels, mistakes, or anything else.</p>\n\n<p>EDIT: Here is the proof : <a href=\"https://trustmrr.com/startup/getlead\">https://trustmrr.com/startup/getlead</a><br/>\nWebsite: <a href=\"https://getle.ad/\">https://getle.ad/</a></p>\n</div><!-- SC_ON -->",
"post_type": "link",
"flair": null,
"domain": "i.redd.it",
"outbound_url_host": "i.redd.it",
"thumbnail": "https://preview.redd.it/72nzu9lm7pvh1.png?width=140&height=136&auto=webp&s=03d653b93c2247e66f1a20d1a3b5ee855eecde7f",
"author_name": "adgrow",
"author_id": "t2_20x45sv8y2",
"parsed_author_id": "20x45sv8y2",
"community_name": "r/saasbuild",
"parsed_community_name": "saasbuild",
"community_id": "t5_egikcb",
"parsed_community_id": "egikcb",
"score": 232,
"up_votes": 232,
"upvote_ratio": 0.8,
"comments_count": 138,
"total_awards_received": 0,
"is_self": false,
"is_video": false,
"is_gallery": false,
"media_type": "link",
"has_media": true,
"images": [
"https://preview.redd.it/72nzu9lm7pvh1.png?auto=webp&s=8109b2176f1b2953415cdb04d988c924a5dde63d"
],
"gallery_images": [],
"video_url": null,
"language": null,
"item_state": "UNMODERATED",
"over_18": false,
"spoiler": false,
"subreddit_subscribers": 58236,
"locked": false,
"archived": false,
"pinned": false,
"stickied": false,
"hidden": false,
"edited": null,
"edited_at": null,
"distinguished": null,
"score_hidden": false,
"is_original_content": false,
"removed_by_category": null,
"gilded": 0,
"num_crossposts": 1,
"media": null,
"created_at": "2026-10-15T21:23:30.000Z",
"age_hours": 54.28,
"score_per_hour": 4.27,
"comments_per_hour": 2.54,
"body_length": 1417,
"word_count": 224,
"title_length": 78,
"engagement_total": 370,
"comment_to_score_ratio": 0.5948,
"is_high_engagement": false,
"crawled_at": "2026-10-18T03:40:31.998Z",
"search_term": "saas",
"source": "search:saas"
}

source tells you where a post came from: search:<keyword>, r/<subreddit> or u/<username>.

Output example (comment)

Comments are only collected when Include Comments From Each Post is enabled.

{
"data_type": "comment",
"id": "t1_mhqz8i3",
"parsed_id": "mhqz8i3",
"url": "https://www.reddit.com/r/chimefinancial/comments/104g0ip/chime_2023_direct_deposit_dates_for_ssivasaa/mhqz8i3/",
"post_id": "t3_104g0ip",
"parsed_post_id": "104g0ip",
"parent_id": "t3_104g0ip",
"parsed_parent_id": "104g0ip",
"parent_kind": "post",
"author_name": "EM-Chime",
"author_id": "t2_zsxv84kei",
"subreddit_name": "chimefinancial",
"body": "Hi! If you're looking for 2025, here's a more recent convo: [2025\\_early\\_deposit\\_dates\\_vassassi/](https://www.reddit.com/r/chimefinancial/comments/1hswog1/2025_early_deposit_dates_vassassi/)",
"body_html": "<div class=\"md\"><p>Hi! If you're looking for 2025, here's a more recent convo: <a href=\"https://www.reddit.com/r/chimefinancial/comments/1hswog1/2025_early_deposit_dates_vassassi/\">2025_early_deposit_dates_vassassi/</a></p>\n</div>",
"score": 1,
"comment_up_votes": 1,
"depth": 0,
"position": 1,
"parent_positions": [],
"content_type": "text",
"avatar": null,
"total_awards_received": 0,
"is_deleted": false,
"is_author_deleted": false,
"is_collapsed": false,
"edited": null,
"edited_at": null,
"distinguished": null,
"stickied": true,
"score_hidden": true,
"is_submitter": false,
"controversiality": 0,
"gilded": 0,
"author_premium": false,
"author_flair_text": "Chime Staff :Chime_Verified:",
"created_at": "2025-03-14T14:02:09.000Z",
"post_title": "Chime 2023 Direct Deposit Dates for: SSI/VA/SAA",
"post_comments_count": 15761,
"age_hours": 13981.76,
"score_per_hour": 0,
"body_length": 193,
"word_count": 12,
"crawled_at": "2026-10-18T03:47:46.431Z",
"source": null
}

The dataset's Output tab views give you a ready-made table per item type — posts with thumbnails and engagement, and comments with thread context.

Tips for efficient runs

  • Start narrow: combine a time range (past week) with a sort order (top) to get the best posts of a niche instead of the whole firehose.
  • Control your costs with limits: max_posts caps posts per keyword, subreddit and user; max_comments_per_post and max_comment_depth shape comment collection.
  • Posts only is the default: comments are only scraped when you enable them, which keeps runs fast and cheap.
  • Comment depth matters: top-level opinions are usually enough for sentiment analysis — set max_comment_depth to 0 to collect only top-level comments.
  • No duplicates: pagination follows Reddit's after cursor, and a post found by several keywords/subreddits/users is collected only once per run.
  • Resume-safe: if a run is interrupted, restart it — already processed pages are not scraped twice.

Frequently asked questions

Do I need a Reddit account or API key?

No. The Actor works without your credentials or a Reddit developer account.

Scraping publicly available data is generally considered legal, but you should respect Reddit's terms of use and applicable regulations such as GDPR when storing personal data. Read more in Apify's guide on the legality of web scraping.

How much will scraping Reddit cost?

The Actor charges per result — you only pay for the items actually delivered to your dataset. See the Pricing tab for current rates. Control spending precisely with the post and comment limits.

Can I get only posts?

Yes — that's the default. Leave Include Comments From Each Post off to collect posts only.

How do I export the data?

Every run stores results in an Apify dataset. Download them as JSON, CSV, Excel, XML or RSS from the Storage tab, or use the Apify API to stream results into your own pipeline, database or spreadsheet.

Can I schedule recurring scrapes?

Yes — Apify lets you schedule runs (hourly, daily, weekly) and trigger them via API or webhooks, which makes the Actor suitable for monitoring keywords over time.