Reddit Scraper — Posts, Comments, Communities & Users avatar

Reddit Scraper — Posts, Comments, Communities & Users

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Reddit Scraper — Posts, Comments, Communities & Users

Reddit Scraper — Posts, Comments, Communities & Users

Scrape Reddit without an account. Posts, full comment threads, community details, user profiles and keyword search — pure HTTP, no browser, no login.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Arpit Gandhi

Arpit Gandhi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

👽 Reddit Scraper — Posts, Comments, Communities & Users

Extract public Reddit data at scale. No account, no API keys, no rate-limit paperwork.

Reddit is the internet's biggest archive of unfiltered opinion — real people saying what they actually think about your product, your competitors, and your market. This scraper turns any subreddit, post, profile, or search term into clean structured data you can analyse, feed to an LLM, or drop straight into a spreadsheet.

Built on Reddit's own mobile API. No browser, no scrolling, no login.


🎯 What can you do with Reddit data?

  • Monitor your brand — catch every mention of your product across posts and deep inside comment threads, where the honest opinions live
  • Feed AI & LLMs — clean, deduplicated threads make excellent input for sentiment analysis, RAG pipelines, fine-tuning sets, and summarisation
  • Research any market — find out what a niche community complains about, recommends, and refuses to buy
  • Track competitors — watch their subreddit, their mentions, and the comparison threads
  • Generate leads — find people asking for exactly what you sell, then reach the community where they asked
  • Spot trends early — Reddit surfaces things weeks before they hit mainstream press
  • Support due diligence — sentiment on a stock, a token, a game, a launch
  • Power academic research — public discourse at scale, with timestamps and scores intact

📊 What data can you extract?

📝 Post title & body👍 Upvotes
💬 Full comment threads🗓 Timestamps (ISO 8601)
👤 Usernames & user IDs🔗 Post & comment permalinks
📷 Images & galleries🎥 Video URLs
🏷 Flair🔞 NSFW flag
👥 Community name & members📈 Weekly active users
🏆 Post & comment karma✅ Verified / employee badges
📌 Stickied, locked, OP flags✏️ Edited timestamps
🔎 Search results🌐 Outbound links

⚡ Why this scraper

Most Reddit scrapers drive a headless browser — load the page, scroll, wait, hope. That's slow, it truncates long comment threads, and it's why many of them make you pick between fast and complete.

This one calls Reddit's API directly.

Browser-based scrapersThis scraper
Comment threadsscroll & wait; deep replies get cut offwhole thread in one request
Speedseconds per page of scrollingno page to render at all
Setuptimeouts and scroll delays to tunepaste a URL, press Start
Loginsome require cookies or an accountnever
Costbrowser time is expensiveplain HTTP — pay for data, not for Chrome

Benchmark: a post with 113 comments returns 111 comments in a single request.


🚀 Get started in 30 seconds

  1. Create a free Apify account
  2. Open the Reddit Scraper
  3. Paste a Reddit URL — or type a keyword
  4. Press Start
  5. Download as JSON, CSV, Excel, XML or HTML

No code required. If you can copy a link, you can run this.


📥 Input examples

Scrape a subreddit, with comments on every post

{
"startUrls": [{ "url": "https://www.reddit.com/r/pasta/" }],
"maxPostCount": 25,
"maxComments": 20
}

Top posts of the month for a keyword

{
"searches": ["pasta recipe"],
"maxPostCount": 50,
"sort": "top",
"time": "month"
}

One post, the entire discussion

{
"startUrls": [{ "url": "https://www.reddit.com/r/recipes/comments/4f45c5/..." }],
"maxComments": 500
}

Find communities and people instead of posts

{
"searches": ["pasta"],
"searchPosts": false,
"searchCommunities": true,
"searchUsers": true
}

Brand monitoring inside one community

{
"searches": ["your brand name"],
"searchCommunityName": "BuyItForLife",
"sort": "new",
"maxComments": 50
}

Every URL type works

WhatExample
Communityhttps://www.reddit.com/r/worldnews/
Community, sortedhttps://www.reddit.com/r/worldnews/top
Post + commentshttps://www.reddit.com/r/learnprogramming/comments/lp1hi4/...
User profilehttps://www.reddit.com/user/spez/
User's comments onlyhttps://www.reddit.com/user/spez/comments/
Search resultshttps://www.reddit.com/search/?q=news

Shorthand works too: r/pasta, u/spez, or just pasta.


⚙️ Input parameters

FieldWhat it doesDefault
startUrlsReddit URLs — communities, posts, users, searches
searchesKeywords to search Reddit
searchCommunityNameRestrict a keyword search to one community
maxItemsHard cap on total results (0 = unlimited)0
maxPostCountPosts per search term / community / user25
maxCommentsComments per post (0 = skip comments)0
maxCommunitiesCountCap for community results10
maxUserCountCap for user results10
sortrelevance, hot, top, new, commentsrelevance
timeall, hour, day, week, month, yearall
searchPostsKeyword search returns poststrue
searchCommunitiesKeyword search returns communitiesfalse
searchUsersKeyword search returns usersfalse
skipCommentsNever fetch commentsfalse
skipCommunityCommunity URL → posts onlyfalse
skipUserPostsUser URL → comments onlyfalse
proxyConfigurationApify proxy (datacenter is fine)on

Provide at least one of startUrls or searches.


📤 Output examples

Every row is flat and tagged with dataTypepost, comment, community or user — so a single run can return several kinds and you filter on the way out.

📝 Post

{
"id": "t3_1vvnpda",
"parsedId": "1vvnpda",
"url": "https://www.reddit.com/gallery/1vvnpda",
"username": "KatSan_2k",
"userId": "t2_8f2k1x",
"title": "Some of my pastas lately :D",
"communityName": "r/pasta",
"parsedCommunityName": "pasta",
"body": "Been practising laminated dough all summer…",
"upVotes": 1281,
"numberOfComments": 54,
"authorFlair": null,
"isSelfPost": false,
"isVideo": false,
"over18": false,
"imageUrls": ["https://i.redd.it/5qgx3gjgpzkh1.jpg"],
"videoUrls": [],
"createdAt": "2026-08-22T20:55:46.861Z",
"dataType": "post"
}

💬 Comment

{
"id": "t1_d25rm5x",
"url": "https://www.reddit.com/r/recipes/comments/4f45c5/…/d25rm5x/",
"postId": "t3_4f45c5",
"username": "Hermitia",
"body": "Sautee some garlic in olive oil in a large pot…",
"upVotes": 134,
"isOP": false,
"isStickied": false,
"distinguishedAs": null,
"createdAt": "2016-04-16T23:49:35.005Z",
"editedAt": "2016-04-17T05:50:07.964Z",
"dataType": "comment"
}

👥 Community

{
"id": "2qoor",
"displayName": "pasta",
"prefixedName": "r/pasta",
"title": "Pasta",
"description": "For lovers of pasta. Homemade pasta, pasta machines…",
"numberOfMembers": 1278362,
"weeklyActiveUsers": 76271,
"over18": false,
"createdAt": "2008-11-17T00:16:04.210Z",
"url": "https://www.reddit.com/r/pasta/",
"dataType": "community"
}

👤 User

{
"id": "1w72",
"username": "spez",
"postKarma": 184487,
"commentKarma": 756493,
"totalKarma": 940980,
"isVerified": true,
"isEmployee": true,
"url": "https://www.reddit.com/user/spez/",
"dataType": "user"
}

🔌 Integrations & automation

Results go anywhere Apify goes — Make, Zapier, n8n, Slack, Google Drive, Airbyte, GitHub, or your own stack via the Apify API, webhooks, and the Python and Node clients.

Useful patterns:

  • Scheduled brand watch — run daily on your keyword, webhook new mentions into Slack
  • Feed an AI agent — Apify actors work as MCP servers, so Claude or any MCP client can call this scraper as a tool
  • Straight into a sheet — export CSV, or push to Google Sheets with a Zap
  • Into your warehouse — Airbyte connector, or pull the dataset from the API

❓ FAQ

Do I need a Reddit account or API key? No. Not a login, not a cookie, not a developer app. Nothing to register, nothing to expire.

Could this get my Reddit account banned? No account is involved at any point.

How many results can I get? Reddit caps listings at roughly 1,000 items — that's Reddit's platform limit, and it applies to every tool. Comments inside a post are not capped. See Getting more than 1,000 below.

Are comment threads complete? Yes, up to your maxComments. A 113-comment post returns 111 comments — the two missing are deleted ones Reddit no longer serves to anybody.

Why do some posts show [deleted] as the author? The account was deleted or the post removed. Reddit serves no author for those.

Can I sort by Hot / Top / New? Yes — set sort, or just paste a sorted URL like reddit.com/r/pasta/top.

What formats can I export? JSON, CSV, Excel, XML, HTML — or pull straight from the API.


📈 Getting more than 1,000 results

Reddit's ~1,000-item listing cap is easy to work around:

  1. Rotate the sort — scrape new, then top, then hot; each surfaces posts the others miss
  2. Search instead of browse — keywords reach old posts that dropped out of listings
  3. Slice by time — run time: "month" across successive windows
  4. Run on a schedule — a daily run captures everything before it ages out

🧰 More scrapers

Building a cross-platform dataset? These pair well:

  • YouTube Scraper — videos, channels, comments, subtitles, likes & dislikes
  • LinkedIn Jobs Search — job listings by keyword and location, no login
  • LinkedIn Post Search — posts by keyword, with attached jobs
  • Google Maps Scraper / Google Maps Reviews — places and every review
  • Zillow, Realtor.com, Realtor.ca — property and agent data
  • AllTrails Scraper — hiking trail data by location

📋 Notes for developers

Flat, join-ready output. Comments carry postId; posts carry parsedCommunityName. IDs keep Reddit's native prefixes (t3_ post, t1_ comment, t5_ community) and parsedId gives you the bare form.

Failures are rows, not silence. Anything that can't be scraped comes back with an error field and a note explaining why, so a deleted post inside a batch of 500 is visible rather than a silent gap.

errorMeaning
NO_RESULTSSearch returned nothing
POST_NOT_FOUNDPost deleted, removed, or private
COMMUNITY_NOT_FOUNDNo such community
USER_NOT_FOUNDNo such user, or suspended
NO_VALID_START_URLSURL isn't a recognisable Reddit link
REQUEST_FAILEDUpstream error — see note

Filter them with dataType != "error".

Comment tree structure. Comment rows carry full content, score, author, flags and their own permalink, but not depth or parentId — Reddit returns thread structure separately from the comments themselves. Threading is on the roadmap.

Empty input exits cleanly with a message and charges nothing.