Reddit Scraper — Posts & Full Comment Threads avatar

Reddit Scraper — Posts & Full Comment Threads

Pricing

from $1.25 / 1,000 results

Go to Apify Store
Reddit Scraper — Posts & Full Comment Threads

Reddit Scraper — Posts & Full Comment Threads

Scrape Reddit posts with full nested comment threads — or search any subreddit or keyword across posts, comments and communities. Bodies come as AI-ready text, HTML and Markdown for LLMs. $1.25 per 1,000 results; no login or developer token needed.

Pricing

from $1.25 / 1,000 results

Rating

5.0

(1)

Developer

Black Falcon Data

Black Falcon Data

Maintained by Community

Actor stats

2

Bookmarked

8

Total users

6

Monthly active users

5 days ago

Last modified

Share

What does Reddit Scraper do?

Reddit Scraper extracts Reddit discussions — posts together with their nested comment threads — and search results across posts, comments and communities, in clean, AI-ready formats. Point it at any subreddit, post, or search term and get structured records with text, HTML, and Markdown bodies, scores, vote ratios, awards, engagement analytics, authors, timestamps, and extracted links. No Reddit account, API key, or login required — and none of the official Reddit API's OAuth setup or 600-requests-per-10-minutes quota. At $1.25 per 1,000 results plus a $0.005 start fee it is, at the time of writing (July 2026), the lowest-priced full-featured Reddit scraper on Apify — comparable actors charge $1.49–$4 per 1,000.

How to use this actor

  • 👉 Register for a free Apify account — no credit card required.
  • 🎉 Just click Sign up free on Apify → and complete a quick signup.
  • 💰 A free Apify account includes $5 in monthly credits — enough to test this actor.
  • ⏳ Scrape during the free trial, with no commitment or upfront payment required.

Key features

  • 🧵 Deep comment threads — capture discussions beyond top-level replies: nested comments with parent/child IDs, depth, score, and awards, up to the comment and depth limits you set. Optionally expand collapsed and low-score branches for deeper coverage.
  • 🤖 AI-ready output — every post and comment body is emitted as clean text, HTML, and Markdown, so you can pipe threads straight into LLMs, RAG datasets, and MCP tools without extra cleanup.
  • 🗂️ Structured multi-type output — posts, comment threads, and community records come out of a single run, each tagged with itemType so downstream pipelines can split them cleanly.
  • 🔎 Search and subreddit feeds — pull a subreddit's feed, or run keyword searches with hot / top / new / relevance sorting — across all of Reddit or scoped to one subreddit with searchCommunity. Post search returns discovery records plus their comments; comment and community search return direct records. Subreddit feeds also support time windows from the past hour through all-time.
  • 🚀 Maximize coverage mode — Reddit shows only about 1,000 posts per listing. The maximizeCoverage toggle traverses several sort orders (hot, new, top) and de-duplicates by post ID to reach posts a single listing can't expose.
  • 📊 Engagement analytics built in — every post and comment ships with computed ageHours, scorePerHour, engagementTotal, commentToScoreRatio and word counts, so you can rank and threshold discussions without post-processing.
  • 💭 Opt-in sentiment scoring — a fast lexicon model labels every text-bearing record positive / negative / neutral with a confidence score; enable it with one toggle when you need it.
  • 🔗 Link & social extraction — outbound links, social handles, and email addresses mentioned in post and comment bodies are pulled into structured extractedUrls, socialProfiles, and emails fields automatically.
  • 🔞 NSFW & date windows — include or exclude 18+ content with one toggle, and keep posts and comments inside exact from/to date windows (postDateFrom/postDateTo, commentDateFrom/commentDateTo) so scheduled runs stay focused.
  • 🧹 Lean, flexible output — choose a single description format (text, HTML, or Markdown) and strip empty fields to keep datasets small for downstream pipelines.
  • 🔑 No login or API key required — point the actor at any public Reddit URL or search term and run; no Reddit account, OAuth app, or official-API rate limits involved.

What data can you extract from reddit.com?

Every record carries a stable itemType (post, comment, or community), so you can tell the three content types apart inside a single dataset.

  • Poststitle, body as text / HTML / Markdown, score, upvoteRatio, numComments, awardCount, award metadata, author, community, domain, postType, media previews and metadata (thumbnail, thumbnailWidth, thumbnailHeight, previewImages, mediaSources, postHint, urlOverriddenByDest, mediaEmbed, secureMediaEmbed, media, secureMedia, isVideo, isRedditMediaDomain, mediaOnly, isGallery, galleryData, mediaMetadata), engagement analytics computed at scrape time (ageHours, scorePerHour, commentsPerHour, engagementTotal, commentToScoreRatio, titleLength, bodyLength, wordCount), language, createdAt, and the canonical post url.
  • Comments — threaded, with postId, parentId, parentUrl, replyUrl, contentType, and depth so you can rebuild the tree, plus score, awardCount, author, createdAt, and the comment-side analytics (ageHours, scorePerHour, bodyLength, wordCount).
  • Communitiesname, display title, url, and nsfw flag, returned by community search. Subscriber counts, descriptions, and creation dates are not currently returned.

An optional lexicon sentiment score (label + confidence) can be switched on for every text-bearing record with the sentiment toggle.

The full post fields above come from subreddit-feed scraping. Subreddit feeds enrich media and gallery fields when Reddit exposes them, while page media extraction remains the fallback. Posts surfaced by keyword search are discovery records with verified id, url, title, subreddit, community, communityId, author, authorId, createdAt, score, numComments, and nsfw, plus their comment threads unless you skip comments. Comment and community search return direct comment / community records. Full post bodies and media come from subreddit-feed scraping; a bare post URL returns that discussion's comment thread, not the post's own title/body.

Post and comment text is also mined for outbound links, social handles, and email addresses, exposed as structured extractedUrls, socialProfiles, and emails fields. Fields stay consistent across runs — unavailable values are returned as null, stable empty arrays, or stable empty objects rather than dropped, unless you enable excludeEmptyFields to slim the payload.

Input

Configure the actor through the input schema in Apify Console.

Key parameters:

  • startUrls — Reddit URLs to scrape — subreddits, post pages, or search result pages. Each URL determines what type of content is fetched: a subreddit URL scrapes its post feed, a post URL scrapes that discussion's comment thread. User profile and community "about" URLs are accepted but currently return limited or no data.
  • searchTerms — Search Reddit for these terms. Each entry becomes an independent search for the selected result type.
  • searchCommunity — Restrict all Search Terms to one subreddit (e.g. "programming" or "r/programming"). Post results are strictly filtered to that community; comment and community searches follow Reddit's own scoping. Leave blank to search all of Reddit.
  • searchType — Reddit search result type. Posts return discovery records plus their comment threads; comments and communities return their own records directly. User search is not exposed because Reddit does not currently provide a stable public result structure for it. (default: "posts")
  • sort — Sort order for posts and search results. (default: "hot")
  • time — Restrict subreddit-feed results to a time window (applies to Top sort on feeds; search is not time-windowed). (default: "all")
  • includeNSFW — Include posts and communities marked as NSFW (18+). (default: false)
  • postDateFrom — Keep only posts created at or after this ISO-8601 date (e.g. "2024-01-01"). Applies wherever the post carries a timestamp (feeds, post URLs, dated search results). Leave blank for no lower bound.
  • postDateTo — Keep only posts created at or before this ISO-8601 date (e.g. "2024-06-30"). Combine with Posts From Date for an exact window. Leave blank for no upper bound.
  • commentDateFrom — Keep only comments created at or after this ISO-8601 date. Blank means comments of any age are collected.
  • commentDateTo — Keep only comments created at or before this ISO-8601 date. Blank disables the upper comment bound.
  • postDateLimit — Legacy alias of Posts From Date — Posts From Date wins when both are set. Skip posts older than this ISO-8601 date (e.g. "2024-01-01").
  • ...and 11 more parameters

Input examples

Scrape a subreddit feed — Pull recent posts and their comment threads from any subreddit.

→ Posts from r/programming, each followed by its nested comments.

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

Search Reddit by keyword — Run one or more keyword searches with sorting. Results are lightweight discovery records (plus their comments); scrape a result's URL for its full post fields.

→ Matching posts sorted by top score, each followed by its comments.

{
"searchTerms": [
"mechanical keyboards",
"ergonomic mice"
],
"searchType": "posts",
"sort": "top",
"maxItems": 200
}

Search Reddit comments — Search matching comments directly when you need discussion snippets instead of full post threads.

→ Comment records with body text, thread URL, score, author, timestamp, and parent metadata when available.

{
"searchTerms": [
"postgres"
],
"searchType": "comments",
"sort": "relevance",
"maxItems": 25
}

Search Reddit communities — Find subreddits that match a topic or niche.

→ Community records with name, title, URL, and NSFW flag.

{
"searchTerms": [
"programming"
],
"searchType": "communities",
"sort": "relevance",
"maxItems": 25
}

Get one post with its full thread — Point at a single post URL to capture its comment tree (up to the limits you set), including collapsed replies.

→ The post's full comment thread, up to the configured limits, with parent/child IDs and depth.

{
"startUrls": [
{
"url": "https://www.reddit.com/r/programming/comments/1abc234/what_makes_a_codebase_pleasant_to_work_in/"
}
],
"includeCollapsed": true,
"commentDepth": 10,
"maxComments": 500
}

Posts only — skip comments — Collect just the posts from a subreddit without fetching comment threads.

→ Post records only — faster and cheaper when you don't need discussions.

{
"startUrls": [
{
"url": "https://www.reddit.com/r/technology/"
}
],
"skipComments": true,
"maxItems": 250
}

Output

Each run produces a dataset of structured Reddit records. Results can be downloaded as JSON, CSV, or Excel from the Dataset tab in Apify Console.

Example Reddit record

{
"itemType": "post",
"id": "t3_1usba50",
"url": "https://www.reddit.com/r/EarthPorn/comments/1usba50/vancouver_island_british_columbia_canada/",
"title": "Vancouver Island, British Columbia, Canada (7008x4672)(OC)",
"contentHref": "https://i.redd.it/18mzqwtegbch1.jpeg",
"domain": "i.redd.it",
"postType": "image",
"language": "en",
"score": 952,
"upvoteRatio": 0.9937565036420395,
"numComments": 8,
"awardCount": 0,
"author": "northernhiker94",
"authorId": "t2_asbqzjy",
"community": "r/EarthPorn",
"communityId": "t5_2sbq3",
"createdAt": "2026-07-10T02:49:12.609000+0000",
"icon": "https://www.redditstatic.com/avatars/defaults/v2/avatar_default_6.png",
"isAwardable": true,
"isEmbeddable": true,
"isEmbed": false,
"isLinkPost": false,
"isNotBrandSafe": false,
"thumbnail": "https://preview.redd.it/vancouver-island-british-columbia-canada-7008x4672-v0-18mzqwtegbch1.jpeg?width=640&crop=smart&auto=webp&s=5b0dda4169f0288bee8252c9099b5558b338853d",
"previewImages": [
{
"url": "https://preview.redd.it/vancouver-island-british-columbia-canada-7008x4672-v0-18mzqwtegbch1.jpeg?width=640&crop=smart&auto=webp&s=5b0dda4169f0288bee8252c9099b5558b338853d",
"width": 640,
"height": 426
},
{
"url": "https://preview.redd.it/vancouver-island-british-columbia-canada-7008x4672-v0-18mzqwtegbch1.jpeg?width=320&crop=smart&auto=webp&s=72ee055f734b0b68d9b48f4f36aac1a3d112d4c6",
"width": 320,
"height": 426
},
{
"url": "https://preview.redd.it/vancouver-island-british-columbia-canada-7008x4672-v0-18mzqwtegbch1.jpeg?width=1080&crop=smart&auto=webp&s=2d983832b12d2c9b6af151a19b8b9dd514d6c04e",
"width": 1080,
"height": 426
},
{
"url": "https://i.redd.it/18mzqwtegbch1.jpeg"
}
],
"isGallery": false,
"nsfw": false
}

Example comment record

{
"itemType": "comment",
"id": "t1_ookwxid",
"url": "https://www.reddit.com/r/programming/comments/1tqwksq/comment/ookwxid/",
"postId": "t3_1tqwksq",
"replyUrl": "https://www.reddit.com/r/programming/comments/1tqwksq/comment/ookwxid/",
"depth": 0,
"contentType": "text",
"body": "When is everyone going to agree that the javascript ecosystem is complete garbage?",
"bodyHtml": "\n <div id=\"t1_ookwxid-post-rtjson-content\" class=\"py-0 xs:mx-xs mx-2xs max-w-full scalable-text [--emote-size:20px]\" dir=\"auto\">\n <p dir=\"auto\">\n When is everyone going to agree that...",
"score": 27,
"author": "wildjokers",
"awardCount": 0,
"createdAt": "2026-05-29T14:48:19.159000+0000",
"description": "When is everyone going to agree that the javascript ecosystem is complete garbage?",
"descriptionText": "When is everyone going to agree that the javascript ecosystem is complete garbage?",
"descriptionHtml": "\n <div id=\"t1_ookwxid-post-rtjson-content\" class=\"py-0 xs:mx-xs mx-2xs max-w-full scalable-text [--emote-size:20px]\" dir=\"auto\">\n <p dir=\"auto\">\n When is everyone going to agree that...",
"descriptionMarkdown": "When is everyone going to agree that the javascript ecosystem is complete garbage?"
}

Example community record

{
"itemType": "community",
"id": "t5_2fwo",
"name": "programming",
"title": "programming",
"url": "https://www.reddit.com/r/programming/",
"nsfw": false
}

How to scrape reddit.com

  1. Go to Reddit Scraper in Apify Console.
  2. Configure the input.
  3. Set maxItems to control how many results you need.
  4. Click Start and wait for the run to finish.
  5. Export the dataset as JSON, CSV, or Excel.

Use cases

  • Build training and RAG datasets from real Reddit discussions, with full comment context in Markdown.
  • Monitor brand, product, or competitor mentions across subreddits and surface the threads driving them.
  • Track sentiment and emerging topics in niche communities over time with scheduled runs.
  • Power market and audience research with authentic user opinions, questions, and pain points.
  • Feed structured Reddit threads into AI agents, MCP tools, and automation pipelines.
  • Generate leads by extracting outbound links and social handles shared in relevant threads.
  • Archive a subreddit or discussion thread for research or record-keeping.
  • Export clean post and comment data to dashboards, spreadsheets, or data warehouses.

How much does it cost to scrape reddit.com?

Reddit Scraper uses pay-per-event pricing. You pay a small fee when the run starts and then for each result that is actually produced.

  • Run start: $0.005 per run
  • Per result: $0.00125 per Reddit record

Example costs:

  • 10 results: $0.018
  • 25 results: $0.036
  • 100 results: $0.13
  • 200 results: $0.26
  • 500 results: $0.63

FAQ

How many results can I get from reddit.com?

The number of results depends on the search query and available Reddits on reddit.com. Use the maxItems parameter to control how many results are returned per run.

Can I integrate Reddit Scraper with other apps?

Yes. Reddit Scraper works with Apify's integrations to connect with tools like Zapier, Make, Google Sheets, Slack, and more. You can also use webhooks to trigger actions when a run completes.

Can I use Reddit Scraper with the Apify API?

Yes. You can start runs, manage inputs, and retrieve results programmatically through the Apify API. Client libraries are available for JavaScript, Python, and other languages.

Can I use Reddit Scraper through an MCP Server?

Yes. Apify provides an MCP Server that lets AI assistants and agents call this actor directly. Use a single descriptionFormat and excludeEmptyFields to keep payloads manageable for LLM context windows.

This actor extracts publicly available data from reddit.com. Web scraping of public information is generally considered legal, but you should always review the target site's terms of service and ensure your use case complies with applicable laws and regulations, including GDPR where relevant.

Your feedback

If you have questions, need a feature, or found a bug, please open an issue on the actor's page in Apify Console. Your feedback helps us improve.

You might also like

Getting started with Apify

New to Apify? Create a free account with $5 credit — no credit card required.

  1. Sign up — $5 platform credit included
  2. Open this actor and configure your input
  3. Click Start — export results as JSON, CSV, or Excel

Need more later? See Apify pricing.