# Reddit Product Research Scraper (`deepmine/reddit-product-research-scraper`) Actor

Reddit product research for Amazon sellers and e-commerce brands. Classifies every mention as complaint, feature request, praise, or question — counts + top examples per keyword. Turn Reddit's unfiltered opinions into your product roadmap.

- **URL**: https://apify.com/deepmine/reddit-product-research-scraper.md
- **Developed by:** [DeepMine](https://apify.com/deepmine) (community)
- **Categories:** E-commerce, AI, Automation
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$25.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Reddit Product Research Scraper — Find What Reddit Users Want, Hate, and Are Asking About

**Search Reddit for any product or category. Every mention classified — complaint, feature request, praise, or question. Counts and top examples per category, per keyword.**

One run. Every Reddit mention tagged. Clear breakdown of what users are complaining about, what features they want, what they love, and what they're still deciding — so you can build better products, write sharper listings, and outposition your competitors.

***

### What It Does

Reddit is the world's largest product focus group — millions of real users discussing products, sharing frustrations, requesting features, and asking for recommendations. This actor searches Reddit for your product or category keywords, classifies every post and comment into one of four categories, and returns a clear summary per keyword: how many complaints, how many feature requests, how many praise mentions, how many questions.

***

### How Classification Works

Each mention is classified by scanning for patterns in the title and body text, in priority order:

**1. Feature Request** — "I wish", "would be nice", "please add", "needs a", "missing a", "if only it had"
The single most valuable signal for product teams. Direct evidence of what users want but don't have.

**2. Complaint** — "terrible", "broken", "doesn't work", "waste of money", "returning it", "avoid"
Pain points and failure modes. What competitors are getting wrong. What to fix before launch.

**3. Question** — Contains `?`, or phrases like "looking for", "alternatives to", "should I", "anyone tried"
Buyers in research mode. People actively deciding between products.

**4. Praise** — "love it", "highly recommend", "game changer", "works perfectly", "best purchase"
What's resonating. Proof points to use in your marketing and listings.

**5. General** — Mentions that don't match any of the above patterns.

***

### Output

Two types of records in the dataset:

#### Research Summary (one per keyword)

| Field | Description |
|---|---|
| `keyword` | The search keyword |
| `totalMentions` | Total mentions analysed |
| `complaintCount` | Number of complaint mentions |
| `featureRequestCount` | Number of feature request mentions |
| `praiseCount` | Number of praise mentions |
| `questionCount` | Number of question/research mentions |
| `topComplaint` | Highest-buzz complaint (title + URL) |
| `topFeatureRequest` | Highest-buzz feature request (title + URL) |
| `topPraise` | Highest-buzz praise mention (title + URL) |
| `topQuestion` | Highest-buzz question (title + URL) |

#### Mentions (one per post or comment)

| Field | Description |
|---|---|
| `category` | `complaint`, `feature_request`, `praise`, `question`, or `general` |
| `contentType` | `post` or `comment` |
| `matchedKeywords` | Which of your keywords matched this mention |
| `title` | Post title |
| `body` | Comment text (for comments) |
| `subreddit` | Which subreddit |
| `score` | Reddit upvote score |
| `upvoteRatio` | Upvote ratio (posts only) |
| `buzzScore` | Engagement momentum score |
| `postUrl` | Link to the post |
| `commentUrl` | Link to the comment (for comments) |
| `author` | Reddit username |
| `createdAt` | When it was posted |

***

### Getting Started

1. Enter your product names or categories (e.g. "standing desk", "protein powder", "wireless earbuds")
2. Set your time window (past month is a good default for product research)
3. Run — get a classified breakdown per keyword + every mention tagged

***

### Use Cases

**Amazon seller research**
Before launching a product, search your category. Read the top complaints — those are your listing bullet points ("unlike competitors, this one doesn't X"). Read the feature requests — those are your product differentiation opportunities.

**Product roadmap input**
Search your product name. Sort by feature requests. That's your backlog, sourced directly from Reddit users who wanted the feature badly enough to post about it.

**Competitor gap analysis**
Search your competitors' product names. Filter to complaints and feature requests. You now know exactly what their customers hate and what they're missing.

**Listing and ad copy**
Search your category, filter to praise. Read what people love about the best products. Those phrases — in Reddit users' own words — are your copy.

**Market validation**
Entering a new market? Search the category. High question count = active buying intent. High complaint count + low praise = ripe for disruption.

***

### Input Parameters

| Parameter | Default | Description |
|---|---|---|
| `keywords` | — | Products or categories to research (required) |
| `sortBy` | `new` | Sort order: new, relevance, top, hot, comments |
| `timeFilter` | `month` | Time window: hour, day, week, month, year, all |
| `searchPosts` | `true` | Include Reddit posts |
| `searchComments` | `false` | Include comments (slower, more coverage) |
| `subredditFilter` | `[]` | Restrict to specific subreddits (optional) |
| `maxResultsPerKeyword` | `100` | Max mentions per keyword |
| `minScore` | `0` | Minimum upvote score to include |
| `proxyConfiguration` | Residential | Proxy settings |

***

### Related Actors

- **[Reddit Sentiment Tracker](https://apify.com/your-username/reddit-sentiment-tracker)** — positive/negative/neutral scoring with upvote ratio as community signal
- **[Reddit Brand Monitor](https://apify.com/your-username/reddit-brand-monitor)** — track mentions and score changes between scheduled runs
- **[Reddit Lead Gen Scraper](https://apify.com/your-username/reddit-lead-gen-scraper)** — find people actively looking to buy what you sell

***

*Built for Amazon sellers, Shopify store owners, e-commerce product managers, and DTC brands who want to turn Reddit's unfiltered product opinions into a competitive advantage.*

# Actor input Schema

## `keywords` (type: `array`):

Product names, categories, or topics to research on Reddit. Each keyword is searched independently — results show complaint/praise/question/feature request breakdown per keyword.

## `sortBy` (type: `string`):

How Reddit ranks the results returned for each keyword.

• New — most recent mentions first. Best for catching fresh opinions.
• Relevance — Reddit's own relevance ranking.
• Top — highest-scored posts. Good for seeing what resonated most.
• Hot — currently active discussions.
• Most Comments — most-discussed threads.

## `timeFilter` (type: `string`):

Only return mentions posted within this time window.

## `searchPosts` (type: `boolean`):

Include Reddit posts (discussions, reviews, threads) that mention your keyword.

## `searchComments` (type: `boolean`):

Also include individual comments mentioning your keywords. Catches opinions buried inside threads. Increases run time.

## `subredditFilter` (type: `array`):

Optionally restrict research to specific subreddits. Leave empty to search all of Reddit. Accepts any format: BuyItForLife, r/BuyItForLife, or full URL.

## `maxResultsPerKeyword` (type: `integer`):

Maximum number of mentions to collect per keyword. More results = more accurate breakdown but longer run time.

## `minScore` (type: `integer`):

Ignore mentions with fewer upvotes than this. Set to 0 to include brand-new posts with no votes yet.

## `proxyConfiguration` (type: `object`):

Proxy settings for routing requests. Residential proxies are strongly recommended for reliable results.

## Actor input object example

```json
{
  "keywords": [
    "standing desk",
    "protein powder",
    "wireless earbuds"
  ],
  "sortBy": "new",
  "timeFilter": "month",
  "searchPosts": true,
  "searchComments": false,
  "subredditFilter": [],
  "maxResultsPerKeyword": 100,
  "minScore": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "standing desk",
        "protein powder",
        "wireless earbuds"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/reddit-product-research-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": [
        "standing desk",
        "protein powder",
        "wireless earbuds",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("deepmine/reddit-product-research-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "standing desk",
    "protein powder",
    "wireless earbuds"
  ]
}' |
apify call deepmine/reddit-product-research-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deepmine/reddit-product-research-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/w5BWkLmm0MRbon0ay/builds/ytGJyNfiuCbzUPuEb/openapi.json
