MENTIONS ACROSS SYMBOLS TODAY

Reddit Stock
Sentiment API

JSON API for traders, fintech apps, dashboards and AI agents. Pull Reddit buzz scores, mentions, bullish ratios, trend direction and historical rankings via REST.

35,000+

Tracked tickers

50+

Subreddits tracked

1h

Update frequency
Get API Key View Reddit Top 20
The Problem

Reddit moves fast. You can't track it manually.

Retail investors share ideas across dozens of subreddits. Trending tickers surface and fade within hours. Scanning r/wallstreetbets, r/stocks and r/investing takes time and you still miss signals in niche communities.

Too Many Sources

50+ active trading subreddits with thousands of daily posts. Impossible to track manually.

Noisy Signals

Sarcasm, memes and duplicate posts make raw mention counts unreliable.

No Normalization

You need a single score to compare $TSLA buzz vs $PLTR buzz objectively.

How It Works

Three API calls. Complete Reddit sentiment.

Discover what's trending, analyze any ticker in detail, monitor the market-wide mood and get AI-powered explanations. RESTful JSON endpoints that integrate into trading bots, dashboards, or research tools.

api-demo.sh
# 1. Discover trending tickers
$ curl api.adanos.org/reddit/stocks/v1/trending
[{ "ticker": "TSLA", "buzz_score": 87.5, "trend": "rising", "mentions": 342 }]
# 2. Analyze specific stock
$ curl api.adanos.org/reddit/stocks/v1/stock/TSLA
{ "ticker": "TSLA", "buzz_score": 87.5, "trend": "rising", "bullish_pct": 45 }
# 3. Understand why it's trending
$ curl api.adanos.org/reddit/stocks/v1/stock/TSLA/explain
{ "explanation": "Tesla trending due to strong Q4 delivery numbers..." }

Update Frequency

Posts and comments scraped hourly from 50+ subreddits. Today shows activity so far, while trend compares the current 3 UTC days with the previous 3 UTC days.

Sentiment Model

Hybrid VADER + Twitter-RoBERTa ensemble with 1000+ finance terms like "moon", "tendies", "bearish", plus emoji analysis.

Buzz Score Formula

Mention volume, sentiment, upvotes, subreddit spread and momentum combined into one 0-100 score.

Power your trading tools with Reddit sentiment data

Access real-time stock sentiment analytics from Reddit for your trading algorithms, fintech apps, or market research tools.

  • 50+ subreddits including r/wallstreetbets, r/stocks & r/investing
  • Sentiment scores, buzz scores & trend detection
  • AI-powered trend explanations
  • Compare up to 10 stocks side by side
  • Up to 365 days historical data
  • Free tier: 250 requests/month
  • 35,000+ tracked tickers
  • Reddit Crypto Sentiment API also available

Request API Access

Fill out the form below. We'll send you a secure link to retrieve your API key.

Check your email

We've sent a link to retrieve your API key. The link expires in 24 hours and can only be used once.

Endpoints

RESTful JSON API. All requests require authentication via X-API-Key header. View full documentation → · BuzzScore Whitepaper →

Base URL

https://api.adanos.org/reddit/stocks

Authentication

X-API-Key: sk_live_...

Rate Limit

Monthly quota: Free 250 · Hobby 250,000 · Professional 2,500,000 requests
Rate cap: Free 100/min · Paid 1,000/min

Response Format

JSON (UTF-8)
GET /v1/stock/{ticker}

Returns detailed sentiment analysis for a specific stock ticker. Includes daily trend data, top mentions by upvotes and top subreddits.

Path Parameters

tickerStock ticker symbol (1-5 uppercase letters, e.g., TSLA)

Query Parameters

fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Earliest start date by plan, counted back from the current UTC date: Free 30 days, Hobby 90 days, Professional 365 days

Response

{
  "ticker": "TSLA",
  "company_name": "Tesla, Inc.",
  "found": true,
  "buzz_score": 87.5,
  "trend": "rising",
  "mentions": 342,
  "sentiment_score": 0.23,
  "bullish_pct": 45,
  "bearish_pct": 18,
  "positive_count": 154,
  "negative_count": 62,
  "neutral_count": 126,
  "total_upvotes": 15234,
  "unique_posts": 45,
  "subreddit_count": 8,
  "period_days": 7,
  "daily_trend": [
    { "date": "2024-12-27", "mentions": 52, "sentiment_score": 0.31, "buzz_score": 87.5 },
    { "date": "2024-12-26", "mentions": 48, "sentiment_score": 0.18, "buzz_score": 85.2 }
  ],
  "top_subreddits": [
    { "subreddit": "wallstreetbets", "count": 89 },
    { "subreddit": "stocks", "count": 67 }
  ],
  "top_mentions": [
    {
      "text_snippet": "TSLA looking strong after...",
      "sentiment_score": 0.85,
      "sentiment_label": "positive",
      "upvotes": 1234,
      "subreddit": "wallstreetbets",
      "created_utc": "2024-12-27T10:30:00"
    }
  ]
}

Response Fields

tickerStock ticker symbol
company_nameCompany name (null if not found)
foundWhether mentions were found
buzz_scoreOverall buzz score (0-100)
trendrising, falling, or stable activity trend for current 3 UTC days vs previous 3 UTC days
mentionsTotal number of mentions
sentiment_scoreAverage sentiment (-1 to +1)
bullish_pctPercentage of bullish mentions
bearish_pctPercentage of bearish mentions
positive_countNumber of positive mentions
negative_countNumber of negative mentions
neutral_countNumber of neutral mentions
total_upvotesTotal upvotes across all mentions
unique_postsNumber of unique posts
subreddit_countNumber of subreddits with mentions
period_daysAnalysis period in days
daily_trendArray of daily mentions, sentiment_score and buzz_score
top_subredditsTop subreddits by mention count
top_mentionsTop mentions by upvotes

Error Codes

404No mentions found for ticker in the specified period
401Missing or invalid API key
GET /v1/stock/{ticker}/explain

Returns an AI-generated explanation of why a stock is trending based on recent Reddit user-comments.

Path Parameters

tickerStock ticker symbol (1-5 uppercase letters, e.g., TSLA)

Response

{
  "ticker": "TSLA",
  "company_name": "Tesla, Inc.",
  "explanation": "Tesla is trending due to strong Q4 delivery numbers and renewed investor optimism about EV demand.",
  "cached": false,
  "generated_at": "2025-01-14T12:30:00Z",
  "model": "llama-3.1-8b-instant"
}

Response Fields

tickerStock ticker symbol
company_nameCompany name (null if not found)
explanation1-2 sentence AI-generated summary of why the stock is trending
cachedWhether the response was served from cache
generated_atISO timestamp when the explanation was generated
modelLLM model used for generation (null if unavailable)

Error Codes

404No mentions found for ticker
401Missing or invalid API key
503Explanation service temporarily unavailable
GET /v1/compare

Compare sentiment metrics for up to 10 stocks side by side.

Query Parameters

tickersComma-separated list of tickers (max 10, required)
fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Earliest start date by plan, counted back from the current UTC date: Free 30 days, Hobby 90 days, Professional 365 days

Response

{
  "period_days": 7,
  "stocks": [
    {
      "ticker": "TSLA",
      "company_name": "Tesla, Inc.",
      "buzz_score": 87.5,
      "trend": "rising",
      "mentions": 342,
      "unique_posts": 45,
      "subreddit_count": 8,
      "sentiment_score": 0.23,
      "bullish_pct": 45,
      "bearish_pct": 18,
      "total_upvotes": 15234
    },
    {
      "ticker": "NVDA",
      "company_name": "NVIDIA Corporation",
      "buzz_score": 72.3,
      "trend": "stable",
      "mentions": 189,
      "unique_posts": 31,
      "subreddit_count": 6,
      "sentiment_score": 0.45,
      "bullish_pct": 52,
      "bearish_pct": 17,
      "total_upvotes": 8921
    }
  ]
}

Response Fields

period_daysAnalysis period in days
stocksArray of stock comparison data
stocks[].tickerStock ticker symbol
stocks[].company_nameCompany name (null if not found)
stocks[].buzz_scoreOverall buzz score (0-100)
stocks[].trendStock activity trend for current 3 UTC days vs previous 3 UTC days
stocks[].mentionsTotal number of mentions
stocks[].unique_postsNumber of unique posts in the selected period
stocks[].subreddit_countNumber of subreddits with mentions
stocks[].sentiment_scoreAverage sentiment (-1 to +1)
stocks[].bullish_pctPercentage of bullish mentions
stocks[].bearish_pctPercentage of bearish mentions
stocks[].total_upvotesTotal upvotes across all mentions

Error Codes

400Maximum 10 tickers allowed
401Missing or invalid API key
GET /v1/market-sentiment

Returns a one-call snapshot of overall Reddit stock sentiment, including activity breadth, sentiment balance and the tickers currently driving discussion.

Query Parameters

fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Earliest start date by plan, counted back from the current UTC date: Free 30 days, Hobby 90 days, Professional 365 days

Response

{
  "buzz_score": 63.4,
  "trend": "rising",
  "mentions": 12840,
  "unique_posts": 1904,
  "subreddit_count": 34,
  "total_upvotes": 284531,
  "active_tickers": 412,
  "sentiment_score": 0.18,
  "positive_count": 5210,
  "negative_count": 2489,
  "neutral_count": 5141,
  "bullish_pct": 41,
  "bearish_pct": 19,
  "trend_history": [52.1, 54.7, 57.3, 59.9, 60.4, 61.8, 63.4],
  "drivers": [
    { "ticker": "TSLA", "mentions": 342, "buzz_score": 87.5, "sentiment_score": 0.23 },
    { "ticker": "NVDA", "mentions": 189, "buzz_score": 72.3, "sentiment_score": 0.45 }
  ]
}

Response Fields

buzz_scoreRelative Reddit market heat vs. the trailing 90-day Reddit stocks baseline (~50 is normal)
trendService-level Reddit activity trend for current 3 UTC days vs previous 3 UTC days
mentionsTotal Reddit stock mentions across the selected window
unique_postsNumber of distinct Reddit posts represented in the aggregate snapshot
subreddit_countNumber of subreddits contributing to the aggregate snapshot
total_upvotesTotal upvotes across all matched mentions
active_tickersNumber of tickers active in the selected window
sentiment_scoreAverage sentiment across all matched mentions (-1 to +1)
positive_countNumber of bullish mentions in the aggregate window
negative_countNumber of bearish mentions in the aggregate window
neutral_countNumber of neutral mentions in the aggregate window
bullish_pctPercentage of bullish mentions across the whole Reddit stocks universe
bearish_pctPercentage of bearish mentions across the whole Reddit stocks universe
trend_historyDaily aggregate buzz-score history (oldest to newest)
driversTop tickers driving the current aggregate Reddit market mood
GET /v1/stock/{ticker}/mentions Pro

Returns raw Reddit mention rows for one ticker within the live raw-data retention window. from/to date windows are interpreted as inclusive UTC calendar dates. Use it when you need post/comment-level snippets, original timestamps and inherited-context filtering.

Query Parameters

fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Professional-only raw endpoint; earliest start date, counted back from the current UTC date: 365 days
limitMaximum raw rows to return (1-100, default: 50)
include_inheritedInclude inherited thread-context mentions in addition to direct ticker matches (default: false)

Response

{
  "ticker": "TSLA",
  "period_days": 7,
  "count": 1,
  "results": [
    {
      "post_id": "abc123",
      "comment_id": "def456",
      "subreddit": "wallstreetbets",
      "author": "user123",
      "text_snippet": "TSLA looks strong into earnings...",
      "created_utc": "2026-03-20T18:42:10Z",
      "upvotes": 381,
      "sentiment_score": 0.62,
      "sentiment_label": "positive",
      "is_inherited": false
    }
  ]
}

Response Fields

tickerResolved ticker symbol
period_daysApplied raw mention lookback window
countTotal matching raw mention rows before the limit cut
resultsNewest-first raw mention rows for the ticker
results[].post_idReddit post id
results[].comment_idReddit comment id when the row comes from a comment
results[].subredditSource subreddit
results[].authorPublic Reddit author name, when available
results[].text_snippetShort text extract from the raw mention row
results[].created_utcOriginal UTC timestamp for the post/comment row
results[].upvotesUpvote count captured on the raw row
results[].sentiment_scoreSentiment score for that raw row (-1 to +1)
results[].sentiment_labelSentiment class for that raw row
results[].is_inheritedWhether the row was inherited from thread context instead of a direct ticker mention

Error Codes

401Missing or invalid API key
403Professional plan required for raw mention access
422Invalid ticker or query parameter
Pricing

Simple, transparent pricing

All plans share the same base API. Professional adds raw mention data and commercial rights.

Free

$0

Perfect for quick tests, API exploration and early prototypes. No credit card required.

  • 100 requests/minute
  • 250 requests/month
  • Access to base API endpoints
  • 30 days historical data
  • Community support
Non-commercial use only
Get Started

Hobby

$29 per month*

For professional traders, personal trading bots, academic research & side projects

  • 1000 requests/minute
  • 250,000 requests/month
  • Access to base API endpoints
  • 90 days historical data
  • Email support
Non-commercial use only
Get Hobby

Enterprise: Get in touch for API access, higher rate limits or custom data feeds. We work with quant teams, fintech startups and research groups across stock and crypto sentiment. Contact us → Non-profit or education use? Apply for free access →

FAQ

Frequently Asked Questions

Everything you need to know about the Reddit Stock Sentiment API.

Which subreddits do you track?

We monitor 50+ subreddits including r/wallstreetbets, r/stocks, r/investing, r/stockmarket, r/options, r/Finanzen and r/mauerstrassenwetten. These communities represent the most active retail trading discussions on Reddit.

How is sentiment calculated?

We use a hybrid VADER + Twitter-RoBERTa sentiment ensemble, with VADER enhanced by a finance-specific lexicon of 1000+ terms. Examples: moon (+3.5), tendies (+2.5), bearish (-3.0), short squeeze (+3.5). Emojis are also analyzed: 🚀 (+3.0), 🐻 (-2.5), 💎🙌 (+2.0). Scores range from -1.0 (bearish) to +1.0 (bullish).

How is buzz score calculated?

Buzz score (0-100) combines five weighted factors: volume (log₁₀(mentions + 1) × 20), mood (sentiment × 20), quality (log₁₀(upvotes/mentions + 1) × 10), diversity (log₁₀(subreddits + 1) × 14) and momentum (trend boost from -10 to +20). Scores above 50 use asymptotic scaling to prevent ceiling clustering.

How is trend calculated?

Trend compares normalized Reddit activity for the current 3 UTC days with the previous 3 UTC days using a weighted activity score: 60% mentions ratio, 25% upvotes ratio, 15% subreddit spread. Result: rising (>+10%), falling (<-10%), or stable (±10%). It is an attention trend, not a price trend.

How often is data updated?

Our scraper runs every 60 minutes, processing posts and comments from all tracked subreddits. The worker health endpoint shows scrape status, success rate and last scrape timestamp. Historical data is available for up to 365 days.

What's included in the free tier?

The free tier includes 250 API calls per month, 100 requests per minute, access to the full base endpoint surface including market-wide sentiment snapshots, and 30 days historical data. Raw mention endpoints are Professional-only. Perfect for personal projects and prototyping. Upgrade for 250,000 Hobby requests/month or 2,500,000 Professional requests/month.

What format is the API response?

All responses are JSON (UTF-8). The /v1/stock/{ticker} endpoint returns the richest per-ticker data: daily_trend, top_subreddits, top_mentions and sentiment distribution counts. For a broader view, /v1/market-sentiment returns aggregate buzz, breadth and the top drivers of the current Reddit market mood. Professional accounts can also call /v1/stock/{ticker}/mentions for raw post/comment rows with count and results.

Is there rate limiting?

Yes. Free tier keys are limited to 100 requests per minute and 250 requests per month. Hobby allows 1000 requests per minute with 250,000 requests per month. Professional allows 2,500,000 requests per month. Rate limit headers (X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response. Exceeding limits returns HTTP 429.

How does the AI explanation work?

The /v1/stock/{ticker}/explain endpoint uses Groq's llama-3.1-8b-instant model to analyze top mentions and generate a 1-2 sentence explanation of why a stock is trending. Explanations are cached for 6 hours. Only available for tickers with ≥10 mentions.

Can I use this for trading decisions?

Our data is for informational purposes only. Sentiment is one signal among many. It reflects retail discussion, not institutional activity or fundamentals. Many traders use it as a contrarian indicator or for timing. Past sentiment is not indicative of future performance. Always do your own research.

For Professionals
Need more API requests?

Need a higher-volume or custom data setup? Contact us and we will help map the right access model.

View Pricing