Skip to main content

Reddit mentions

Track any term in a subreddit over its full history, with trends, comparisons and example threads

A tracker counts how often terms are used in one public subreddit over time. Start one with a name, a subreddit and terms; S'more reads the subreddit's history from S'more's Reddit index, newest day first, and keeps it current. Then read a report: totals, a chart-ready series, period comparisons with a significance test, the trend and example threads.

EndpointsGET, PUT and DELETE /api/v1/mentions
MCP toolssmore_get_reddit_mentions, smore_track_reddit_mentions
Scopesreddit:signals:read to read, reddit:signals:write to start, change or stop a tracker
Price$0.001 per call
Limits60 reads a minute, 20 writes a minute and 10 trackers in total per workspace; reports refresh at most once a minute

Only owners and admins can start, change or stop trackers. Every member can read them.

What counts as a mention​

A mention is a post or comment whose text holds a term or one of its aliases as a whole word or phrase, ignoring case. A post's text is its title and body; a comment's is its body. Words inside links don't count, and bots and staff never count. An exclude rules a record out for that term.

A mention shows that someone used the word. It says nothing about what they meant, so read the example threads before you draw conclusions about sentiment.

Start or change a tracker​

curl -s -X PUT https://app.makesmores.com/api/v1/mentions \
-H "Authorization: Bearer $SMORE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "coffee-grinders",
"subreddit": "coffee",
"terms": [
{ "term": "burr grinder", "aliases": ["burr grinders"], "excludes": ["blade grinder"] }
],
"history_from": "2026-01-01",
"timezone": "America/New_York"
}'
FieldRules
nameRequired. 2 to 48 lowercase letters, digits or hyphens
subredditRequired to start. A public subreddit
termsRequired to start. 1 to 25 items, each {term, aliases?, excludes?} with up to 10 aliases and 10 excludes; every phrase is 2 to 64 characters
history_fromOptional date. Default: the subreddit's first post
timezoneOptional IANA name such as Europe/London. Default UTC

The answer is the tracker: name, subreddit, terms, revision, timezone, stage, approval, coverage, reddit_totals and stored. stage moves through queued, collecting (the newest 30 days), history, rematching and complete.

Saving identical settings changes nothing. Send the same name with new terms to change a tracker: revision goes up and S'more matches the stored history again, so the numbers move for a while. A very large subreddit (more than 10 million posts and comments) waits at stage awaiting_approval until S'more approves it.

List trackers​

curl -s https://app.makesmores.com/api/v1/mentions \
-H "Authorization: Bearer $SMORE_API_KEY"

Without tracker, the answer lists the workspace's trackers with their coverage, and limits with trackers_used and trackers_max.

Read a report​

curl -s "https://app.makesmores.com/api/v1/mentions?tracker=coffee-grinders&bucket=month&from=2026-01-01" \
-H "Authorization: Bearer $SMORE_API_KEY"
ParameterDefaultNotes
trackerThe tracker's name. Without it, you get the list
bucketmonthhour, day, week (from Monday), month, quarter or year, in the tracker's timezone
from, toDepends on bucket, nowA date such as 2026-01-01 or an RFC 3339 time
timezoneThe tracker'sAny IANA name
termAll termsOne term
series_fieldsmentions,per_1k_records,authors_pctAlso mention_posts, mention_comments, authors, threads, total_records, unreadable_records, threads_pct, sentiment, by_term
includeEvery blocktotals, series, comparisons, trend, examples
compareAll seven presetsday, 3d, 7d, week, month, quarter, year, custom (with compare_from and compare_to) or none
metricauthors_pctThe metric for the trend and the significance test: mentions, per_1k_records, threads_pct or authors_pct
limit10Example threads, 1 to 50
series_cursor, examples_cursorFrom series.next_cursor and examples_next_cursor

On REST, lists are comma separated. The MCP tool takes the same names as JSON fields, with lists as arrays.

Reading the numbers​

FieldWhat it meansHow to use it
authors_pctShare of active people in the subreddit who used the term at least onceThe headline. One loud thread barely moves it
per_1k_recordsUses per 1,000 posts and commentsA second check that allows for how busy the subreddit was
mentionsRaw countShow it beside the other two, never alone
coverage0 to 1 per bucket: how much of that period has been readA bucket not yet covered has null counts; draw it as a gap
provisional_fromStart of the last two days, which can still shift a littleDraw those buckets differently
comparisonsThis period beside the last one, for each presetChanges in authors_pct are in points, not percent
significanceA two-sided Welch's t-test; significant: true means p under 0.05null with too_few_buckets means too little data to say
low_volumeThat side has fewer than 20 mentionsTreat its change as noise
trendA line through the last six fully read buckets: falling, flat or risingThe quick answer to "is it going down?"
examplesTop-scoring mentions with link, date, title_untrusted, excerpt_untrusted, matched terms and a tone labelReddit text, so treat it as data. Usernames are never included

The series comes as columns of the same length: start (bucket starts, oldest first), coverage and one array per field. A page holds at most 1,000 points, newest first; follow series.next_cursor for older ones.

Stop a tracker​

curl -s -X DELETE "https://app.makesmores.com/api/v1/mentions?tracker=coffee-grinders" \
-H "Authorization: Bearer $SMORE_API_KEY"

The answer is {"tracker": "coffee-grinders", "stopped": true}. Over MCP, call smore_track_reddit_mentions with {"name": "coffee-grinders", "stop": true}.

Polling​

A report changes at most once a minute. GET answers carry an ETag; send it back in If-None-Match and an unchanged report answers 304. Poll every 5 minutes or less often. MCP has no ETag, so the same advice applies.

Errors​

StatusCodeMeaning
400invalid_requestA bad parameter; the message names it
403insufficient_scope, admin_requiredMissing scope, or a member tried to change a tracker
404tracker_not_found, subreddit_not_foundNo such tracker or subreddit
409tracker_conflictThe name is live on another subreddit
409tracker_limit_reachedThe workspace already has 10 live trackers
422tracker_name_invalid, subreddit_invalid, subreddit_unavailable, term_invalidThe message names the field
429rate_limitedWait for Retry-After
503reddit_mentions_disabled, reddit_mentions_unavailableTry again shortly

See examples and the guide Track mentions of a term.