Reddit Sentiment Tracker
Pricing
from $0.59 / 1,000 results
Reddit Sentiment Tracker
Reddit sentiment analysis for brands: every Reddit brand or keyword mention scored positive, negative or neutral, with a sentiment % breakdown, a verdict and the top posts per keyword. A Reddit sentiment tracker and sentiment API for social listening, pay per mention.
Pricing
from $0.59 / 1,000 results
Rating
0.0
(0)
Developer
DeepMine
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Reddit Sentiment Tracker — Know If Reddit Likes You
Search Reddit for any keyword and find out: is the sentiment positive, negative, or mixed? Every mention scored, every keyword summarised.
One run. Every mention tagged. Sentiment breakdown per keyword — so you know whether Reddit's opinion is working for you or against you.
Real rows, run on 2026-10-30 (keywords Notion app, Linear app, Figma): "Code Layers - an obvious step in the evolution of prototyping" (r/FigmaDesign, Figma, negative, -0.18), "Is my UI placement for this design tool logical?..." (r/UXDesign, negative, -0.44), "I built a searchable library of 3.3M real UI screens..." (r/SideProject, positive, 0.29). That run kept 63 mentions for $0.0498 at the Starter price ($0.79 per 1,000 mentions); see Real rows.
What It Does
Reddit is where unfiltered opinions live. But raw mentions don't tell you much — you need to know whether those mentions are good or bad. This actor searches Reddit for your keywords, scores every post and comment using a hybrid sentiment model (AFINN keyword scoring + Reddit's own upvote ratio as a community signal), and returns a clear breakdown: what percentage of mentions are positive, negative, or neutral.
How Sentiment Is Scored
Two signals combined:
1. Text scoring (AFINN word list) Each post or comment is scored based on the emotional weight of its words. "Amazing", "love", "recommend" push the score positive. "Terrible", "broken", "waste" push it negative. A negation flips the next word ("don't hate" counts as positive), and common emoji count too. The score is normalized by text length so short and long posts are comparable.
2. Upvote ratio (community signal) Reddit's upvote ratio is the community's collective verdict. A post at 95% upvote ratio is almost certainly a positive reception. A post at 25% is controversial or disliked. This modifier adjusts the text score up or down based on how the community voted — catching cases where sarcasm or context defeats keyword matching.
Result: positive / negative / neutral label + numeric score per mention. The score is text score per word + (upvote ratio − 0.75) for posts: above 0.05 is positive, below −0.05 negative, anything in between neutral. The scoring is the same as in earlier versions, so a mention gets the same label and score.
Output
Each run gives you mentions (posts and comments, each scored, ranked by buzz score) in the dataset, and one sentiment summary row per keyword (type = summary), free, in the SUMMARY record (the "Summary record" link on the Output tab, JSON) and, with Add summary rows to the dataset on, as rows in the run's own summary dataset. Its table link is in the run's OUTPUT record (the "Run summary" link on the Output tab): summaryDataset.itemsUrl for the rows, summaryDataset.consoleUrl to open it in Apify Console. Up to version 2.0.4 the summary rows also came after the mentions in the main dataset; read them from the summary dataset now.
Real rows
A run on 2026-10-30 (build 2.0.21; keywords Notion app, Linear app, Figma; 30 posts each, newest first, past week). Rows from it that are about the brand, with their rank in the run:
| rank | subreddit | sentiment | sentimentScore | score | numComments | matchedKeywords | title |
|---|---|---|---|---|---|---|---|
| 5 | TransitDiagrams | positive | 0.2 | 39 | 11 | Figma | [OC] Hanoi Metro Diagram (operational and U/C lines) in Singapore's style, made with Figma (v2) |
| 6 | FigmaDesign | negative | -0.18 | 1 | 10 | Figma | Code Layers - an obvious step in the evolution of prototyping |
| 7 | UXDesign | negative | -0.44 | 0 | 3 | Figma | Is my UI placement for this design tool logical? I worry that it's too different from Figma… |
| 10 | SideProject | positive | 0.29 | 1 | 4 | Figma | I built a searchable library of 3.3M real UI screens from 460k apps and sites |
| 11 | SideProject | positive | 0.15 | 3 | 7 | Notion app | Here's another app only me and my mom will use - My first little personal project… |
What that run cost: it kept 63 of the 85 mentions found under a $0.05 spending limit, $0.0498 at the Starter price ($0.79 per 1,000 mentions); all 85 would have cost $0.067. The label is a word-based score of each post's own text, so a post that only names the brand in passing is scored on its whole text; in the example run 54 of the 63 rows held every word of their keyword. Set Match to Every word of the keyword or Exact phrase to drop the rest; they aren't delivered and aren't charged.
Mentions (one per post or comment)
| Field | Description |
|---|---|
sentiment | positive, negative, or neutral |
sentimentScore | Numeric score (positive = positive, negative = negative) |
contentType | post or comment |
matchedKeywords | Which of your keywords matched this mention |
title | Post title (for a comment, the title of its thread) |
body | Comment text, or a text post's own text |
subreddit | Which subreddit |
score | Reddit upvote score |
upvoteRatio | Upvote ratio (posts only) |
buzzScore | Engagement momentum score: (upvotes + 2 × comments) / age in hours^0.8 |
postUrl | Link to the post |
commentUrl | Link to the comment (for comments) |
author | Reddit username |
createdAt | When it was posted |
Every key, in row order:
- Posts:
rank,type,contentType,matchedKeywords,sentiment,sentimentScore,buzzScore,title,body,postUrl,commentUrl,subreddit,author,score,upvoteRatio,numComments,createdAt, thenid,bodySnippet,postType,over18,imageUrls,videoUrl,engagementTotal,commentToScoreRatio,subredditSubscribers,authorFlairText,isOriginalContent,spoiler,locked,stickied,distinguished,numCrossposts,edited,shortUrl,scrapedAt. - Comments:
rank,type,contentType,matchedKeywords,sentiment,sentimentScore,buzzScore,title,body,postUrl,commentUrl,subreddit,author,score,upvoteRatio,numComments,createdAt, thenid,bodySnippet,parentId,parentKind,postId,postCreatedAt,over18,isSubmitter,authorFlairText,edited,distinguished,stickied,controversiality,permalinkUrl,authorId,postUpVotes,postCommentsCount,postAuthor,scrapedAt.
The keys up to createdAt are the same, in the same order and with the same values, as in earlier versions, so saved integrations keep working (type is always mention). A value Reddit doesn't give is null. Mentions are stored in rank order, so the Mentions table and an export both start with rank 1.
- Comments' authors. Reddit's comment search no longer shows who wrote a comment, so each comment found is read from its own page (about 20 KB, several at a time while the next search page loads). That fills
author,authorId,isSubmitter,edited,stickiedand the thread'spostUpVotes,postCommentsCountandpostAuthor. If Reddit doesn't answer a comment's page, that comment keeps the search page's fields (no author) and the status line says how many.
Sentiment Summary (one per keyword)
| Field | Description |
|---|---|
keyword | The search keyword |
overallSentiment | positive, negative, or neutral overall |
positiveRatio | % of mentions scored positive |
negativeRatio | % of mentions scored negative |
neutralRatio | % of mentions scored neutral |
totalMentions | Total mentions analysed |
positiveCount / negativeCount / neutralCount | Mentions per label |
avgSentimentScore | Average sentiment score across all mentions |
topPositiveMention | Highest-scoring positive mention (title + URL) |
topNegativeMention | Most negative mention (title + URL) |
Summary rows are never charged. Turn off Summary Rows (free) to skip the summary dataset: the summaries are still in the free SUMMARY record. The run's OUTPUT record says how each search went (pages read, results found, filtered, not matching the keyword and kept), and commentRecordsRead how many comments were filled from their own page ("40 of 40").
Getting Started
- Enter your keywords (brand names, product names, topics)
- Set your time window (past week is a good default)
- Run — get sentiment summary per keyword + every mention scored
Use Cases
Brand reputation monitoring
Is Reddit's opinion of your brand trending positive or negative? Run weekly, check the overallSentiment field. If it flips from positive to negative, something changed.
Product launch tracking Released something new? Search your product name after launch and see whether the Reddit reaction is positive, negative, or mixed — and which specific posts are driving the sentiment.
Competitor analysis Search your competitors' names. Find out if Reddit likes them or hates them — and read the specific negative mentions to understand what they're getting wrong.
Campaign monitoring Running a Reddit marketing campaign or AMA? Track your keyword during and after to see whether the campaign shifted sentiment.
Input Parameters
| Parameter | Default | Description |
|---|---|---|
keywords | — | Keywords to analyse (required) |
sortBy | new | Sort order: new, relevance, top, hot, comments |
timeFilter | week | Time window: hour, day, week, month, year, all |
searchPosts | true | Include Reddit posts |
searchComments | false | Include comments (more coverage) |
subredditFilter | [] | Restrict to specific subreddits (optional) |
maxResultsPerKeyword | 100 | Max posts, and max comments, per keyword (up to 1,000) |
minScore | 0 | Minimum upvote score to include |
matchMode | any | any: whatever Reddit's search finds; all: the text holds every word of the keyword; phrase: the exact phrase. Results that don't match are free |
proxyConfiguration | Datacenter | Proxy settings. A residential pick is kept for retries only |
Pricing
Pay per result: $0.79 per 1,000 mentions on Starter ($0.89 Free, $0.69 Scale, $0.59 Business). Summary rows (one per keyword) are free. No browser and no residential proxy: the actor reads Reddit's own search over Apify's datacenter proxy, so runs take seconds. Set a spending limit on the run and the actor stops there, keeping its top-ranked mentions.
Related Actors
- Reddit Brand Monitor — track mentions and score changes between scheduled runs
- Reddit Mentions Scraper — raw mention data without sentiment scoring
- Reddit Scraper — full posts, comment threads, users and communities from any Reddit link or search
- Subreddit Finder and Subreddit Trend Finder — find the communities worth watching, and what is rising in them
- Reddit Comments Scraper — paste a result's post link for the whole thread, every comment and reply
- Reddit Search Scraper — plain keyword search over posts and comments
Built for brand managers, PR teams, and marketing teams who need to know whether Reddit's opinion is helping or hurting them.