Skip to main content

Viral Score

Know whether a Reddit title or an X post will land before it goes live

One route scores both networks. With network: "reddit", reddit-pooled-v1 scores one to three titles for a subreddit: each title's chance of reaching that subreddit's top 10% of the month, what helps and hurts, the rules and the first-post penalty. With network: "x" (or no network), x-viral-v1 scores an X post draft from 0 to 100 with nine signals and two ways to improve it. Both answer at once.

Reddit: reddit-pooled-v1​

StatusLive
EndpointsPOST /api/v1/viral-score
MCP toolspredict_viral_score
Scopesviral:score
Price$0.01 per title
Limits20 requests a minute and 1,000 requests a day per workspace
curl -s https://app.makesmores.com/api/v1/viral-score \
-H "Authorization: Bearer $SMORE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "reddit",
"subreddit": "running",
"titles": [
"First half marathon: easy miles got me under 2 hours",
"How I paced my first half marathon"
],
"post_type": "text",
"account": "established"
}'
FieldRules
networkreddit
subredditRequired, 2 to 24 characters, with or without r/
titlesRequired, 1 to 3 titles of 1 to 300 characters. Each title is billed
bodyOptional, up to 40,000 characters
post_typetext (default), image, video or link
flairOptional, up to 64 characters
accountestablished (default) or first_post, to see the first-post penalty

The answer:

FieldMeaning
variantsOne per title: title, p_top10 (0 to 1), lift (that chance as a multiple of the subreddit's base rate), pct (percentile) and rank
subredditname, tracked, base_rate, eligible_posts and flairs
helps, hurtsEach {label, detail}: what moved the score
rulesThe posted rules with how often each is enforced (enforced, approx when estimated) and a status of ok, warn or unknown for this post
automod_heldShare of posts the subreddit's automoderator held, or null
new_accountThe first-post penalty, or null when S'more has no account facts for the subreddit
winsFormats that reach the top 10% more often
scored_atWhen it was scored

The score is stored for your workspace. The same Reddit branch is what the Reddit writers run on every option.

X: x-viral-v1​

StatusLive
EndpointsPOST /api/v1/viral-score
MCP toolspredict_viral_score
Scopesviral:score
Price$0.05 per post
Limits10 requests a minute and 250 requests a day per workspace
curl -s https://app.makesmores.com/api/v1/viral-score \
-H "Authorization: Bearer $SMORE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "x",
"post": "We opened our public API today. One key, every product, over REST and MCP.",
"audience": "Developers who build agents"
}'
FieldRules
networkx, or leave it out
postRequired, 1 to 4,000 bytes of UTF-8
audienceOptional, up to 300 bytes

The answer:

FieldMeaning
score0 to 100
labelThe score in words
replyBaitnone, possible or likely
signalsNine signals, each {id, score, label}
improveTwo suggestions, each {signal, message}
modelx-viral-v1
xAlgorithmGuideRevisionThe revision of the ranking guide the rubric follows
disclaimerThe score is S'more's estimate from a public ranking guide; X does not make it

MCP​

predict_viral_score takes the same fields. Without network it scores an X post; with network: "reddit" it scores titles.

Billing​

A Reddit call deducts one item per title you send and refunds any title it could not score. An X call is one post. A call that fails is refunded in full.

Errors​

StatusCodeMeaning
400invalid_requestFields mixed between networks, a missing post or titles, or lengths out of range
409reddit_signals_offThe Reddit branch is switched off for now
422invalid_subreddit, subreddit_unavailableS'more cannot score that subreddit
429rate_limitedOver the per-minute or per-day limit
503scoring_busy, scoring_unavailableTry again shortly

See examples and the guide Score a post before it goes live.