Reddit Posts Scraper

ParseForge · README preview

ParseForge Reddit Posts Scraper

ParseForge's Reddit Posts Scraper is a focused Reddit scraper for collecting public post-level data from subreddit feeds, keyword searches, and Reddit search URLs. Filter posts by score, comment count, flair, domain, author, sort order, or time window, then export one structured row per post. No Reddit login or Reddit API key is required.

▶ Run Reddit Posts Scraper

This is an unofficial Reddit data tool. It is not affiliated with or endorsed by Reddit, Inc.

Sources
Subreddits, keyword searches, and Reddit search URLs
Filters
Score, comments, flair, domain, author, sort, and time
Output
One row per post with text, engagement, links, flags, and timestamps
Delivery
JSON, CSV, Excel, API, schedules, webhooks, and MCP

This Actor collects posts. It does not return comment trees or profile records. For those jobs, use Reddit Posts & Comments Scraper.

Jump to why this Actor, input examples, use cases, pricing, API setup, troubleshooting, FAQ, or the sample output.

Why choose this Actor

The narrow scope is deliberate. Many Reddit scrapers combine posts, comments, communities, and profiles in one dataset. That breadth helps when you need everything. It adds cleanup when your downstream contract is one row equals one post.

Reddit Posts Scraper gives you:

Pick the right Reddit scraper for the job

Your job Best fit Reason
Search, filter, compare, or classify Reddit posts This Reddit Posts Scraper Every dataset item follows the same post-level structure
Collect posts plus the comments underneath them Reddit Posts & Comments Scraper It is built for thread-level work and comment records
Collect posts, comments, user profiles, and community profiles in one run A broad multi-object Reddit Actor Broader scope is useful when several record types matter more than a clean post table
Run sentiment, topic, or intent analysis This Actor plus your own model or classifier The Actor returns source text and metadata; it does not invent an analysis layer

Choose another Actor when comments, profiles, community metadata, or built-in analysis are the main product. Choose this one when post records are the product.

How to scrape Reddit posts

Start with a keyword search and five results:

{
  "searchQueries": ["open source"],
  "sort": "relevance",
  "time": "month",
  "maxItems": 5,
  "includeNSFW": false
}
  1. Open the Reddit Posts Scraper input page.
  2. Paste the JSON input or fill in the same fields in the form.
  3. Click Start.
  4. Open Output to inspect the dataset or download JSON, CSV, or Excel.

Keep the first run small. Once the rows match your use case, add more searches, subreddit sources, filters, or a recurring schedule.

Reddit scraper input

Search public Reddit posts by keyword

Use searchQueries to find public posts that match one or more terms:

{
  "searchQueries": ["customer onboarding", "user activation"],
  "sort": "top",
  "time": "month",
  "minScore": 10,
  "maxItems": 100
}

Search inside one subreddit

Add searchInSubreddit when the same terms should be restricted to one community:

{
  "searchQueries": ["pricing", "migration"],
  "searchInSubreddit": "saas",
  "sort": "new",
  "maxItems": 100,
  "includeNSFW": false
}

Collect posts from subreddit feeds

Use subreddits for named communities, or startUrls for Reddit subreddit and search pages:

{
  "subreddits": ["programming", "opensource"],
  "sort": "top",
  "time": "week",
  "postsPerSource": 100,
  "maxItems": 200
}

Individual-post URLs are not part of the current input contract. The Actor does not post, vote, moderate communities, access private subreddits, or sign in to Reddit accounts.

Sort, time, and filter controls

sort accepts hot, new, top, rising, controversial, or relevance. time accepts hour, day, week, month, year, or all. The time window applies to top, controversial, and search results, not every source and sort combination.

Input What it controls
minScore, maxScore Minimum and maximum post score
minComments, maxComments Minimum and maximum comment count
flairFilter Exact, case-sensitive flair text
domainFilter Outbound URLs containing a domain
authorFilter Posts from one Reddit username
includeNSFW Include or exclude NSFW posts
includeSpoilers Include or exclude spoiler-marked posts
includeStickied Include or exclude pinned posts
maxItems Total dataset ceiling
postsPerSource Maximum posts collected from each source
maxPages Maximum pages processed for each source

includeNSFW, includeSpoilers, and includeStickied default to true. postsPerSource defaults to 100 and has a maximum of 1,000. maxPages defaults to 10 and has a maximum of 100.

Reddit post data fields

Each dataset item is one post. The fields support content research, community comparison, link analysis, and downstream classification without mixing comment or profile records into the same table.

Field group Included data
Post id, title, selfText, url, permalink
Author and community author, authorId, subreddit, subredditId
Engagement score, upvoteRatio, numComments, awards
Classification linkFlairText, domain, contentCategories
Content flags over18, spoiler, stickied, locked, archived, isSelf, isVideo, isGallery
Time createdUtc, createdAt, scrapedAt

The abridged sample record at the end comes from the same five-result keyword search shown in the quick start. Scores, comment counts, and voting ratios are snapshots. They can change after collection, and deleted or moderated posts may disappear between runs.

Reddit post data use cases

These workflows name the source, filters, fields, and next step. Start with a small maxItems, inspect the rows, then save the input when it returns the posts you expected.

Monitor brand and competitor mentions on Reddit

Search for your company name, product names, common misspellings, and phrases such as ParseForge alternative or switching from ParseForge. Use sort: "new" with a short time window for recent mentions, then add searchInSubreddit when you only want one community.

Review title, selfText, subreddit, score, numComments, and permalink. A daily Apify schedule can create a new dataset for your support or research workflow. If you need an alert, compare the new dataset with prior post id values in your own automation and notify the team there. The Actor does not include an alert inbox.

{
  "searchQueries": ["ParseForge", "ParseForge alternative"],
  "sort": "new",
  "time": "week",
  "maxItems": 100,
  "includeNSFW": false
}

Find product pain points and feature requests

Product teams can search the language people use when a workflow breaks: wish there was, looking for a tool, how do I, feature request, or a product name paired with problem. Restrict the search to a relevant subreddit when broad results are noisy. Use minComments to surface posts that drew a conversation, but keep a smaller unfiltered sample so low-engagement complaints are not erased.

Read title and selfText for the problem statement, then keep subreddit, permalink, and createdAt beside any theme you assign. This produces a source-backed research set for roadmap interviews or support analysis. It does not prove how common a problem is across all Reddit users.

Compare demand and language across subreddits

Collect several communities with the same sort, time, postsPerSource, and content filters. Group the result by subreddit, then compare the topics and words in title and selfText. Use score, upvoteRatio, and numComments as engagement context, not as interchangeable measures of demand.

This works well for category research. A security product team might compare how r/sysadmin, r/cybersecurity, and r/msp discuss backups, phishing, and endpoint tools. A game studio could compare launch reactions across genre-specific communities. Fixed inputs make the next run comparable to the first.

Research content ideas and recurring questions

Search a topic, sort by top, choose month or year, and add modest minScore or minComments thresholds. The resulting titles show which questions earned attention. selfText adds the situation and vocabulary behind the headline; permalink keeps the source available for manual reading.

Use the dataset to build an editorial brief, FAQ backlog, webinar outline, or customer interview guide. Do not copy posts into publishable content. Summarize patterns, check the original context, and cite or seek permission when you use a person's words.

Use domainFilter when you care about one publisher, competitor, app marketplace, news site, or owned domain. Inspect domain, url, title, subreddit, score, and numComments to see where the link appeared and what response the post received.

Without a domain filter, group all returned link posts by domain to find frequently shared sources in a niche. This can support publisher discovery, partnership research, earned-media review, or a list of resources worth reading. The Actor records the link and post metadata; it does not measure referral traffic or backlinks to your site.

Review product launches and campaign feedback

Search the exact product, feature, event, or campaign name alongside a few likely phrases such as review, pricing, launch, or alternative. Use sort: "new" during the launch window, then run a second top search after the first week to see which posts kept attracting engagement.

Keep the exact input with each dataset. Compare createdAt, subreddit, title, selfText, score, and numComments across the runs. This gives a communications or product team a review queue with source links. It does not capture every mention, private community, deleted post, or comment under a post.

Build a recurring Reddit post archive

Once an input produces useful rows, save it as an Apify Task and attach a daily, weekly, or monthly schedule. Store id, permalink, createdAt, and scrapedAt with each record. Deduplicate downstream on id or permalink before appending a scheduled dataset to your warehouse or spreadsheet.

The timestamps answer different questions: createdAt is when the post was published; scrapedAt is when the Actor collected the record. Retain both. Engagement values can move between snapshots, so decide whether your pipeline keeps the latest value or a time series of every collection.

Prepare Reddit posts for sentiment, topic, or intent classification

Export title, selfText, and selected metadata to your own classifier, notebook, database function, or AI agent. Keep id and permalink in the model output so a reviewer can return to the source. subreddit, linkFlairText, and domain can provide useful context, while over18 and other flags can control what enters the next system.

The Actor does not assign sentiment, intent, topics, or lead scores. That boundary is useful when you want to choose the model, prompt, taxonomy, and review policy yourself rather than accept an opaque label in the scraper output.

Research public buying and switching signals

Growth and sales researchers can look for public phrases such as alternative to, recommend a, looking for, or switching from together with a category or product name. Add searchInSubreddit when the audience is concentrated in one professional or hobby community. Use title, selfText, subreddit, and permalink to understand the need before treating a post as relevant.

Keep a human in the loop. A post is context, not permission for automated outreach, and a username is not a complete customer profile. Do not use this workflow for sensitive eligibility, employment, credit, insurance, housing, or other high-impact decisions.

Support journalism, academic work, and market research

Use a fixed query, time window, result cap, and source list to create a reproducible sample of public posts. Preserve permalink, author, subreddit, createdAt, and scrapedAt, then document the collection settings beside the dataset. Repeat the same input when the research design calls for another snapshot.

This can support source discovery, qualitative coding, public-discourse research, and event timelines. It is not a complete archive of Reddit. Researchers should account for deleted content, changing engagement counts, source availability, platform rules, privacy, and the limits of keyword-based sampling.

Reddit scraper pricing

This Actor uses pay-per-event pricing. Each run includes an Actor-start event, and each dataset row is billed as a result event. There is no separate monthly Actor rental.

Apify displays the live rate above this README and on the Pricing tab. Check it before a large run because event rates can change. Use maxItems to cap result volume, and use Apify's maximum-charge control when you need a hard spending limit.

Use Reddit Posts Scraper as an API

Call the Actor from any service that can send an HTTP request. Keep the Apify token in an environment variable:

curl -X POST \
  "https://api.apify.com/v2/acts/parseforge~reddit-posts-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQueries": ["open source"],
    "sort": "relevance",
    "time": "month",
    "maxItems": 5,
    "includeNSFW": false
  }'

Use asynchronous runs and webhooks for larger jobs. For recurring collection, save a tested input as an Apify Task and attach a schedule. The input schema also supports MCP delivery; test the scrape first, then connect a destination with maxItems: 1 so a bad connector configuration cannot create many external writes.

Troubleshooting

The run succeeds but returns no posts

Test one broad keyword with sort: "relevance", time: "month", and maxItems: 5. Remove score, comment, flair, domain, and author filters, then add them back one at a time.

The dataset contains fewer rows than maxItems

maxItems is a ceiling, not a guarantee. A narrow time window, exact flair, strict filter, or quiet source can produce fewer matches. Increase postsPerSource or maxPages only after confirming that the source exposes more posts.

Reddit or a source cannot be reached

Retry the smallest keyword-search example once. If it fails again, open an issue with the run ID, input with secrets removed, expected result, and relevant error log.

MCP output does not reach the destination

Run the Actor without the connector first. Then test one result and confirm that the connector can write to the destination.

Reddit scraper FAQ

Does this Reddit scraper require an account or API key?

It does not require a Reddit account or Reddit API key. You need an Apify account to run the Actor on Apify.

Is this a Reddit API alternative?

It collects public Reddit post data for research and automation outside the official Reddit API. It does not replace account-level, moderation, posting, or private-community features.

Can it scrape Reddit comments or user profiles?

No. numComments is the post's comment count, not a comment dataset. Use Reddit Posts & Comments Scraper when you need comment trees or profile records.

Can I search inside one subreddit?

Yes. Put the terms in searchQueries and the subreddit name in searchInSubreddit.

Can it scrape private or deleted Reddit posts?

No. The Actor works with public sources available without signing in. Deleted, removed, private, or restricted content may be unavailable.

Can I schedule Reddit monitoring?

Yes. Save a tested input as an Apify Task and use an Apify schedule for recurring collection. The Actor produces scheduled datasets; it does not provide its own real-time alert inbox.

Where can I get help?

Open the Actor's Issues tab or email parseforge@protonmail.com. Include the run ID, relevant input with secrets removed, expected result, and the error or unexpected output.

Other ParseForge Actors

Actor Use it when you need
Reddit Posts & Comments Scraper Reddit posts, comment trees, media fields, or public profile inputs
X.com Post Scraper Public X posts, media, authors, and engagement data
Instagram Posts Scraper Instagram captions, post links, media, likes, and comment counts
YouTube Scraper YouTube videos, channels, search results, and transcripts

Browse all ParseForge Actors

Responsible use

Public availability does not remove obligations under the Reddit User Agreement, Reddit's Privacy Policy, copyright rules, privacy law, or community rules. Collect only what your use case needs and avoid using post or username data to make sensitive decisions about individuals.

This is an unofficial Actor and is not affiliated with or endorsed by Reddit, Inc.

Example Reddit post output

This abridged record came from the five-result keyword-search input in the quick start. Values are a point-in-time snapshot.

{
  "id": "1uzw5um",
  "title": "What is a piece of completely free, open-source software that puts multi-billion dollar corporate programs to absolute shame?",
  "author": "SupremeKalki",
  "subreddit": "AskReddit",
  "score": 4017,
  "upvoteRatio": 0.97,
  "numComments": 1122,
  "domain": "self.AskReddit",
  "permalink": "https://www.reddit.com/r/AskReddit/comments/1uzw5um/what_is_a_piece_of_completely_free_opensource/",
  "createdAt": "2026-07-18T13:38:23.000Z",
  "scrapedAt": "2026-08-07T19:02:55.350Z"
}