Reddit Scraper - Posts, Comments, Communities & Users avatar

Reddit Scraper - Posts, Comments, Communities & Users

Pricing

from $2.30 / 1,000 results

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

Reddit Scraper - Posts, Comments, Communities & Users

Scrape Reddit posts, comments, subreddits, communities, and user profiles without login or API keys. Get titles, scores, upvotes, awards, flair, media, and full metadata as structured JSON. Search by keyword or subreddit, filter by date and NSFW, and export to JSON, CSV, or Excel.

Pricing

from $2.30 / 1,000 results

Rating

5.0

(1)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

13

Total users

5

Monthly active users

12 days ago

Last modified

Share

Reddit Scraper

Turn any subreddit, thread, community, or user profile into clean structured data. Posts, comments, communities, and users in a single run, in seconds not hours.

How it works

How it works

  1. Search or paste a URL. Type keywords (optionally scoped to one subreddit) or drop in subreddit, post, or user links, and choose what to pull: posts, comments, communities, users.
  2. Get structured JSON. Every score, upvote ratio, comment count, flair, media link, karma, and timestamp, ready for your database, spreadsheet, or model.

โœจ Why teams choose this over other Reddit scrapers

Stuck with a scraper that only pulls posts and comments? Running one that fails on every third request? Still copy-pasting threads into a spreadsheet by hand?

  • ๐Ÿ“ฆ Four data types in one actor, not two. Posts, comments, communities, and users. Most Reddit scrapers stop at posts and comments. Discover and qualify subreddits, then profile the people behind the threads, without switching tools.
  • ๐Ÿ”“ No login, no API keys, no quotas. Pull public Reddit data straight to structured JSON. No account to create, no OAuth to wire, no developer app to register.
  • ๐ŸŽฏ Search or paste URLs, your choice. Search all of Reddit by keyword, restrict a search to one subreddit, or drop in exact subreddit, post, or user URLs. Both modes return the same clean schema.
  • ๐Ÿงฎ Every signal Reddit exposes. Upvotes, upvote ratio, comment counts, flair, media URLs, karma, community size, account age. Around 38 fields per record, the numbers you actually rank and filter on.
  • ๐Ÿ•‘ Full sort and time control. Hot, new, top, rising, most-comments, or relevance, over any window from the past hour to all time. Grab this week's top posts or a subreddit's all-time best in one call.
  • ๐Ÿ“ˆ Scale from one thread to a full subreddit. Pull a single post or sweep an entire subreddit's history, with no fixed cap on how many items a run returns.

๐ŸŽฏ What you can do with Reddit data

TeamWhat they build
Brand & socialTrack every mention of a product or company across subreddits, with score and comment context
Market researchMap which communities discuss a topic, how large they are, and who drives the conversation
Content & trendsSurface this week's top and rising posts in any niche before they hit the mainstream
Lead generationFind active users and niche subreddits around a topic to target outreach and community seeding
Data science / MLPull large post and comment corpora for sentiment, classification, and LLM training sets
Academic researchStudy online communities, opinion dynamics, and user behavior at scale
Product & CXCollect unfiltered feature requests and complaints straight from the communities that use you

๐Ÿ“ฅ Input parameters

URL scraping

ParameterTypeDescription
startUrlsarrayReddit URL(s) to scrape (subreddits, posts, users, search pages)

Supported URL types:

  • Subreddits: https://www.reddit.com/r/programming/
  • Subreddit sort: https://www.reddit.com/r/programming/hot
  • Posts: https://www.reddit.com/r/learnprogramming/comments/abc123/...
  • Users: https://www.reddit.com/user/username
  • User comments: https://www.reddit.com/user/username/comments/
  • Search: https://www.reddit.com/search/?q=keyword
  • Popular: https://www.reddit.com/r/popular/
  • Leaderboards: https://www.reddit.com/subreddits/leaderboard/crypto/
ParameterTypeDescription
searchesarrayKeywords to search on Reddit
searchCommunityNamestringRestrict search to a specific subreddit (e.g. programming)
searchTypesarrayTypes of results: posts, communities, users (default: posts)

Sorting & filtering

ParameterTypeDefaultDescription
sortstringnewSort by: relevance, hot, top, new, rising, comments
timestringallTime filter: all, hour, day, week, month, year
includeNSFWbooleantrueInclude adult/NSFW content
postDateLimitstring-Only posts after this date (YYYY-MM-DD)

Options & limits

ParameterTypeDefaultDescription
includeCommentsbooleantrueAlso scrape comments when visiting posts
maxItemsinteger50Maximum total items to return (no fixed cap)

๐Ÿ“Š Output data

Post

{
"id": "t3_abc123",
"parsedId": "abc123",
"url": "https://www.reddit.com/r/programming/comments/abc123/example_post/",
"username": "dev_user",
"userId": "t2_abc123",
"title": "Example Post Title",
"communityName": "r/programming",
"parsedCommunityName": "programming",
"body": "Post body text...",
"html": null,
"numberOfComments": 42,
"upVotes": 256,
"upVoteRatio": 0.95,
"isVideo": false,
"isAd": false,
"over18": false,
"flair": "Discussion",
"link": "https://example.com/article",
"thumbnailUrl": "https://b.thumbs.redditmedia.com/...",
"videoUrl": "",
"imageUrls": ["https://i.redd.it/abc123.jpg"],
"createdAt": "2024-06-01T12:00:00Z",
"scrapedAt": "2024-06-02T10:30:00Z",
"dataType": "post"
}

Comment

{
"id": "t1_xyz789",
"parsedId": "xyz789",
"url": "https://www.reddit.com/r/programming/comments/abc123/example_post/xyz789/",
"parentId": "t3_abc123",
"postId": "abc123",
"username": "commenter",
"userId": "t2_xyz789",
"category": "programming",
"communityName": "r/programming",
"body": "Great post!",
"html": "<div class=\"md\"><p>Great post!</p></div>",
"createdAt": "2024-06-01T13:00:00Z",
"scrapedAt": "2024-06-02T10:30:00Z",
"upVotes": 15,
"numberOfreplies": 3,
"dataType": "comment"
}

Community

{
"id": "2fwo",
"name": "t5_2fwo",
"title": "Programming",
"url": "https://www.reddit.com/r/programming/",
"description": "Computer programming",
"over18": false,
"numberOfMembers": 5800000,
"createdAt": "2006-01-25T00:00:00Z",
"scrapedAt": "2024-06-02T10:30:00Z",
"dataType": "community"
}

User

{
"id": "abc123",
"url": "https://www.reddit.com/user/dev_user/",
"username": "dev_user",
"description": "Software engineer and open source enthusiast",
"postKarma": 15000,
"commentKarma": 42000,
"over18": false,
"createdAt": "2020-01-15T00:00:00Z",
"scrapedAt": "2024-06-02T10:30:00Z",
"dataType": "user"
}

๐Ÿ—‚๏ธ Data fields

CategoryFields
Identityid, parsedId, url, username, userId
Contenttitle, body, html, flair
CommunitycommunityName, parsedCommunityName, category, numberOfMembers
EngagementupVotes, upVoteRatio, numberOfComments, numberOfreplies, postKarma, commentKarma
MediaimageUrls, videoUrl, thumbnailUrl, link
FlagsisVideo, isAd, over18
MetacreatedAt, scrapedAt, dataType

๐Ÿš€ Examples

Scrape a subreddit's hottest posts

{
"startUrls": [{"url": "https://www.reddit.com/r/programming/"}],
"maxItems": 50,
"sort": "hot"
}

Search Reddit for a topic across posts and communities

{
"searches": ["machine learning"],
"searchTypes": ["posts", "communities"],
"sort": "top",
"time": "month",
"maxItems": 100
}

Pull a thread with all its comments

{
"startUrls": [{"url": "https://www.reddit.com/r/learnprogramming/comments/lp1hi4/is_webscraping_a_good_skill_to_learn/"}],
"includeComments": true,
"maxItems": 100
}

Find active users around a topic

{
"searches": ["python"],
"searchTypes": ["users"],
"sort": "relevance",
"maxItems": 50
}

Search inside a single subreddit

{
"searches": ["python"],
"searchCommunityName": "programming",
"sort": "new",
"maxItems": 50
}

Get only fresh posts from a subreddit

{
"startUrls": [{"url": "https://www.reddit.com/r/technology/"}],
"postDateLimit": "2026-03-01",
"includeComments": false,
"maxItems": 200
}

๐Ÿค– Copy to your AI assistant

Paste this block into Claude, ChatGPT, or Cursor to give it full context about this scraper:

You have access to the Reddit Scraper on Apify: silentflow/reddit-scraper-ppr
It scrapes public Reddit posts, comments, communities, and users. No login or API key needed.
Input schema:
- startUrls (array of {url}): Reddit URLs (subreddits, posts, users, search pages). Leave empty to use search.
- searches (array of strings): keywords to search Reddit. Requires startUrls empty.
- searchCommunityName (string): restrict a search to one subreddit.
- searchTypes (array): any of "posts", "communities", "users". Default ["posts"].
- sort (string): relevance | hot | top | new | rising | comments. Default "new".
- time (string): all | hour | day | week | month | year. Default "all".
- includeNSFW (boolean, default true)
- includeComments (boolean, default true): also pull comments when visiting posts.
- postDateLimit (string, YYYY-MM-DD): only posts after this date.
- maxItems (integer, default 50, no fixed maximum): total items returned.
Output: one JSON record per item with a "dataType" of post | comment | community | user.
- post: title, body, communityName, username, upVotes, upVoteRatio, numberOfComments, flair, imageUrls, videoUrl, createdAt, url
- comment: body, username, communityName, parentId, postId, upVotes, numberOfreplies, createdAt, url
- community: title, name, description, numberOfMembers, over18, createdAt, url
- user: username, description, postKarma, commentKarma, over18, createdAt, url
Use apify-client for Python or JavaScript. Filter items by dataType.

๐Ÿ’ป Integrations

Build a brand-mention monitor (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("silentflow/reddit-scraper-ppr").call(run_input={
"searches": ["your brand name"],
"searchTypes": ["posts"],
"sort": "new",
"time": "week",
"maxItems": 200
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item["dataType"] == "post":
print(f"[{item['upVotes']}โ–ฒ {item['numberOfComments']}๐Ÿ’ฌ] r/{item['parsedCommunityName']}: {item['title']}")

Track this week's top posts in a niche (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('silentflow/reddit-scraper-ppr').call({
startUrls: [{ url: 'https://www.reddit.com/r/technology/' }],
sort: 'top',
time: 'week',
includeComments: false,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items
.filter((i) => i.dataType === 'post')
.sort((a, b) => b.upVotes - a.upVotes)
.forEach((p) => console.log(`${p.upVotes}\t${p.title}`));

Export a run to CSV (dataset API)

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_API_TOKEN" -o reddit.csv

๐Ÿ“ˆ Performance

MetricValue
Data typesPosts, Comments, Communities, Users
Items per pageup to 100
Items per runNo fixed limit (set with maxItems)
Search modeskeyword, subreddit-scoped, URL
Login requiredNo

๐Ÿ’พ Data export

Every run writes to an Apify dataset you can export as JSON, CSV, Excel, XML, RSS, or HTML from the Storage tab, or pull programmatically:

https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=csv&token=YOUR_TOKEN

Connect it to Google Sheets, Airtable, or your warehouse with an Apify integration or a scheduled webhook.

๐Ÿ’ก Tips for best results

  1. Scope your run with maxItems. Request only the number of results you need, then scale up once the output looks right.
  2. Target specific subreddits. Focused scraping returns cleaner, more relevant data than broad searches.
  3. Turn off comments when you only need posts. Set includeComments: false to return post-level data only and cut the result count.
  4. Combine search types. Use searchTypes: ["posts", "communities"] to find both discussions and the subreddits behind them in one run.
  5. Test with 10 items first. Verify your input returns what you expect before launching a large scrape.

โ“ FAQ

Q: What exactly can it scrape? A: Public Reddit posts, comments, communities (subreddits), and user profiles, with full metadata. Four data types in one actor.

Q: Do I need a Reddit account or API key? A: No. It reads publicly available data. No login, no OAuth, no developer app, no rate-limit quotas.

Q: What is the difference between search and URL mode? A: Search mode takes keywords and queries all of Reddit (optionally scoped to one subreddit). URL mode takes exact subreddit, post, or user links. Both return the same schema.

Q: Can I scrape communities and users, not just posts? A: Yes. Set searchTypes to include communities or users, or pass user and subreddit URLs directly. Most Reddit scrapers only return posts and comments.

Q: How do I control how much data I get? A: Use maxItems. It caps the total number of results returned per run, across posts, comments, communities, and users.

Q: What if a run finds no results? A: The run finishes cleanly with an empty dataset. Refine your search terms, sort, or time filter and run it again.

Q: Can I scrape private subreddits? A: No. The scraper only accesses publicly available data.

Q: Can I limit results to recent posts? A: Yes. Set postDateLimit (YYYY-MM-DD) to keep only posts after a given date, or use time to filter by past hour, day, week, month, or year.

Q: How fresh is the data? A: Every item is fetched live at scrape time, so scores, comment counts, and karma reflect the moment of the run.

Q: Why are some fields empty, like flair or media? A: Reddit only returns them when the post has them. flair is null for untagged posts, and imageUrls/videoUrl are empty for text posts.

This Actor extracts publicly available data from Reddit. It does not bypass any login, paywall, or CAPTCHA, and does not access private subreddits or non-public content. Users are responsible for complying with Reddit's terms of service and applicable laws in their jurisdiction. The data returned is informational; verify accuracy for regulated use cases.

๐Ÿ“ฌ Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Check out our other scrapers: silentflow on Apify