Skip to content

Reddit Scraper

Try for free

Extract public Reddit posts and comment threads from searches, subreddits, user profiles, and post URLs. Results include text, scores, timestamps, and media.

🗨️ Reddit Scraper

Pull public Reddit posts and comment threads into clean, structured rows. Search by keyword, read a subreddit, open a user profile, or paste links you already have. No Reddit login, no API key, and no cookies. A 10-post search finishes in about 10 seconds.

Each row carries the title, body, author, score, vote ratio, comment count, timestamps, flair, and media links, so you can drop it straight into a spreadsheet, a database, or an analysis pipeline.

✨ Why use Reddit Scraper?

  • ⚡ Fast — a small search, subreddit listing, or comment run completes in roughly 9 to 10 seconds in our tests.
  • 🔓 No login needed — it reads public listings only. You never hand over cookies or a session.
  • 💬 Posts and comments — switch on comments and every comment becomes its own row, linked back to its post.
  • 🎯 Flexible targets — keyword search, one subreddit (with optional keywords inside it), user profiles, or direct post, comment, and search URLs.
  • 🧠 Optional enrichment — add sentiment labels (AFINN-165 word list) and topic labels (fixed keyword list) with a checkbox. No external AI service involved.
  • 💸 Cheap — $1.00 per 1,000 results, with datacenter proxy as the default.

🎯 Use cases

  • 📣 Brand and product monitoring — track what people say about your name, competitors, or a launch.
  • 🔬 Community research — find the questions, complaints, and wishes in a niche subreddit.
  • 💡 Content ideas — see which posts in a topic get the most upvotes and comments.
  • 📈 Trend and sentiment tracking — score posts and comments over time and watch the mood shift.
  • 🗃️ Datasets for analysis — build corpora for text mining, classification, or dashboards, with stable post ids you can dedupe on.

🚀 How to use

  1. Open the actor and choose a target: Search queries, a Subreddit, or Reddit URLs.
  2. Set Maximum posts per input (the default is 10).
  3. Optional: turn on Include comments, pick a sort and time window, or set a date range.
  4. Click Start. When the run finishes, open the dataset.
  5. Export the results as JSON, CSV, Excel, or HTML, or read them through the API.

📥 Input

FieldTypeWhat it does
queriesarrayPhrases to search across public posts. Ignored when urls is set.
subredditNamestringA community to read, without the r/ prefix, for example python.
urlsarrayPost, comment, subreddit, user, or search links. When set, queries is ignored.
maxPostsintegerPosts to save for each search, subreddit, profile, or URL. Default 10.
scrapeCommentsbooleanAlso save comments from each post. Each comment is its own result.
maxCommentsintegerComment cap per post. Default 20.
sort / timeframestringSearch ranking (relevance, hot, top, new, comments) and window (all, year, month, week, day, hour).
subredditSort / subredditTimeframestringThe same options for a subreddit listing.
subredditKeywordsarraySearch words inside the named subreddit.
dateFrom / dateTostringKeep posts in a UTC date window (YYYY-MM-DD).
commentDateFrom / commentDateTostringThe same window for comments.
includeNsfwbooleanKeep posts marked NSFW. Off by default.
strictSearchbooleanSend the query in quotes.
strictTokenFilterbooleanKeep a post only if every query word appears in its title, body, or URL.
maximize_coveragebooleanRepeat the search across a few sorts and in the subreddits that appeared most often, then drop duplicates.
sentiment_analysis / content_analysisbooleanAdd sentiment labels and topic labels.
proxyConfigurationobjectDatacenter proxy by default. Use residential only if a listing refuses it.

Search example:

{
  "queries": ["Cheesecake"],
  "maxPosts": 10,
  "sort": "new",
  "timeframe": "month",
  "proxyConfiguration": {
    "useScrapelyProxy": true,
    "scrapelyProxyGroups": ["DATACENTER"]
  }
}

Subreddit example:

{ "subredditName": "python", "subredditSort": "hot", "maxPosts": 10 }

One thread with a short comment sample:

{
  "urls": ["https://www.reddit.com/r/Python/comments/1wxjay5/showcase_thread/"],
  "maxPosts": 1,
  "scrapeComments": true,
  "maxComments": 8
}

📤 Output

Posts have kind: "post". Comments have kind: "comment" and point back with postId, postUrl, and parentId.

FieldDescription
id, kind, queryReddit id, post or comment, and the search that found it.
title, body, authorText content and author name.
score, upvote_ratio, num_commentsVotes and discussion size.
subreddit, flair, subreddit_subscribersCommunity details.
created_utc, age_hours, retrieved_atTimestamps (ISO, UTC).
url, permalink, canonical_url, old_reddit_urlLinks to the post.
url_overridden_by_dest, media_assets, gallery_images, thumbnailOutbound links and image URLs.
media_type, has_media, gallery_countMedia summary.
over_18, locked, archived, pinned, spoiler, is_video, is_galleryPost flags.
engagement_total, is_high_engagement, score_per_hour, comments_per_hourDerived engagement numbers.
sentiment_*, topic fieldsPresent only when the enrichment options are on.

Real item from a test run (trimmed):

{
  "kind": "post",
  "query": "Cheesecake",
  "id": "1jpnv4z",
  "title": "Is my cheesecake undercooked?",
  "author": "jane_doe",
  "score": 11608,
  "upvote_ratio": 0.97,
  "num_comments": 723,
  "subreddit": "Baking",
  "created_utc": "2025-04-02T12:55:07.000Z",
  "url": "https://www.reddit.com/r/Baking/comments/1jpnv4z/is_my_cheesecake_undercooked/",
  "permalink": "/r/Baking/comments/1jpnv4z/is_my_cheesecake_undercooked/",
  "flair": "No Recipe",
  "over_18": false,
  "is_gallery": true,
  "subreddit_subscribers": 4660844,
  "url_overridden_by_dest": "https://www.reddit.com/gallery/1jpnv4z",
  "media_type": "gallery",
  "gallery_count": 5,
  "retrieved_at": "2026-10-14T06:11:28.601Z"
}

💰 Pricing

$1.00 per 1,000 results, which is $0.001 per result. A result is one post or one comment saved to the dataset.

Worked example: 1,000 posts cost $1.00 in result fees. Platform usage (compute, proxy traffic, storage) is billed separately at standard rates. In our billing test, a 10-post search cost about $0.0103 in total: $0.01 in result fees plus about $0.0003 of platform usage at the default 256 MB. Sentiment labels, topic labels, and extra search coverage add no separate fee, though each saved row still counts as a result.

❓ FAQ

Is it legal to scrape Reddit? The actor reads publicly visible listings only. You are responsible for using the data in line with Reddit's terms and the privacy rules that apply to you.

Do I need a Reddit login or my own proxy? No to both. Datacenter proxy is built in and is the default.

How many results can I get? As many as Reddit lists: about 1,000 posts per listing, more with Expand each search or several inputs, and every comment Reddit returns for a post. See Limits below.

Can I scrape comments without the posts? Yes. Turn on scrapeComments and set maxComments. A user comments URL (/user/name/comments) saves comments directly, up to the post limit.

What if a field is empty? Reddit does not send every field for every post, so some values come back as null. An empty search finishes successfully with an empty dataset.

Can I schedule it or call it from code? Yes. Use schedules in the console, or start runs and read the dataset through the API.

Moving from another Reddit scraper? Field names follow the common Reddit scraper layout, so most integrations need only small changes.

⚠️ Limits

  • Reddit itself stops a listing at about 1,000 posts, so for 10,000+ posts add more queries, subreddits, or sort orders in one run.
  • At most 10 listing pages per target; rows already saved are kept.
  • Reddit allows about 100 requests per public session; the run rotates sessions automatically and stops cleanly, keeping saved rows, if Reddit keeps refusing.
  • Private, quarantined, or banned communities and deleted posts are skipped. Login walls are not bypassed.
  • Adult posts are dropped unless includeNsfw is on.
  • Runs use 256 MB of memory by default; memory stays flat because rows are saved in batches.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.