MENTIONS ACROSS SYMBOLS TODAY

X Stock
Sentiment API

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

35,000+

Tracked tickers

1h

Update frequency

Grok

AI-powered analysis
Get API Key View X Top 20
The Problem

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

Traders share ideas across thousands of accounts. Trending tickers surface and fade within hours. Scanning cashtags and influencer posts takes time and you still miss signals from smaller accounts.

Too Many Sources

Thousands of FinTwit accounts posting daily. Impossible to track manually.

Noisy Signals

Hype, bots and duplicate posts make raw cashtag counts unreliable.

No Normalization

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

The Solution

How It Works

REST endpoints that fit into any trading workflow, from single-ticker analysis to market-wide sentiment snapshots. Grok-powered analysis from X enriched with real tweet engagement and sentiment signals.

api-demo.sh
# 1. Discover trending tickers
$ curl api.adanos.org/x/stocks/v1/trending
[{ "ticker": "TSLA", "buzz_score": 100, "trend": "rising", "mentions": 156 }]
# 2. Analyze specific stock
$ curl api.adanos.org/x/stocks/v1/stock/TSLA
{ "ticker": "TSLA", "buzz_score": 100, "trend": "rising", "bullish_pct": 72 }
# 3. Cross-check Reddit context
$ curl api.adanos.org/reddit/stocks/v1/stock/TSLA
{ "ticker": "TSLA", "sentiment_score": 0.23, "bullish_pct": 68, "source": "reddit" }

Update Frequency

Grok analysis fetched hourly from X. Today shows activity so far, while trend compares the current 3 UTC days with the previous 3 UTC days.

Cross-Platform Validation

Tickers trending on both X and Reddit are flagged for higher confidence signals.

Buzz Score Formula

Grok ranking, mention frequency and trend momentum combined into one 0-100 score.

Power your trading tools with X sentiment data

Integrate X/Twitter trending data into your trading algorithms, dashboards, or research tools. Our API provides clean, structured data updated every 60 minutes.

  • Trending tickers from FinTwit
  • Buzz scores & trend detection
  • X-native buzz, engagement and sentiment signals
  • Grok-powered analysis from X/Twitter
  • Free tier: 250 requests/month
  • 35,000+ tracked tickers
  • Reddit Stock 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/x/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 X/Twitter trending data for a specific ticker including buzz score, sentiment metrics, daily trend history and enriched top author metrics.

Path Parameters

tickerStock ticker symbol (1-10 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": 72.5,
  "trend": "rising",
  "mentions": 156,
  "sentiment_score": 0.35,
  "bullish_pct": 45,
  "bearish_pct": 12,
  "positive_count": 70,
  "negative_count": 19,
  "neutral_count": 67,
  "total_upvotes": 2847,
  "unique_tweets": 42,
  "period_days": 7,
  "daily_trend": [
    { "date": "2025-12-28", "mentions": 42, "sentiment_score": 0.15, "buzz_score": 52.3, "avg_rank": 3.5 },
    { "date": "2025-12-27", "mentions": 38, "sentiment_score": 0.22, "buzz_score": 48.1, "avg_rank": 5.2 }
  ],
  "top_authors": [
    { "author": "stockguru", "mentions": 18, "sentiment_score": 0.42, "buzz_score": 36.8 },
    { "author": "marketwatcher", "mentions": 11, "sentiment_score": 0.28, "buzz_score": 29.4 }
  ],
  "top_tweets": [
    {
      "text_snippet": "$TSLA breaking out! 🚀",
      "sentiment_score": 0.85,
      "sentiment_label": "positive",
      "likes": 1247,
      "retweets": 89,
      "views": 52340,
      "author": "stockguru",
      "created_at": "2025-12-28T14:32:00Z"
    }
  ]
}

Response Fields

tickerStock ticker symbol
company_nameCompany name (null if not found)
foundWhether ticker was found in X trending
buzz_scoreBuzz score (0-100, null if not found)
trendrising, falling, or stable attention trend for current 3 UTC days vs previous 3 UTC days
mentionsTotal tweet mentions in the period
sentiment_scoreAverage sentiment (-1 to +1, null if unavailable)
bullish_pctPercentage of bullish mentions (0-100, null if unavailable)
bearish_pctPercentage of bearish mentions (0-100, null if unavailable)
positive_countNumber of bullish mentions (null if unavailable)
negative_countNumber of bearish mentions (null if unavailable)
neutral_countNumber of neutral mentions (null if unavailable)
total_upvotesTotal likes across mentions (null if unavailable)
unique_tweetsNumber of unique tweets (null if unavailable)
period_daysTime period analyzed
daily_trendArray of daily data with date, mentions, sentiment_score, buzz score and avg_rank
top_authorsTop author contributors with mentions, sentiment and buzz score
top_authors[].authorX/Twitter author username (e.g., "stockguru")
top_authors[].mentionsCanonical mention count for this author
top_authors[].sentiment_scoreAuthor-level average sentiment (-1 to +1)
top_authors[].buzz_scoreAuthor-level buzz score (0-100)
top_tweetsTop tweets by engagement with likes, retweets and sentiment labels

Error Codes

401Missing or invalid API key
GET /v1/stock/{ticker}/explain

Returns an AI-generated summary of why a ticker is trending on X/Twitter, based on recent FinTwit activity.

Path Parameters

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

Response

{
  "ticker": "TSLA",
  "explanation": "Tesla is trending on X as traders discuss delivery expectations, options flow and renewed momentum in large-cap growth names."
}

Response Fields

tickerStock ticker symbol
explanationConcise AI-generated X/Twitter trend explanation

Error Codes

401Missing or invalid API key
404No explanation available for this ticker
GET /v1/compare

Compare sentiment metrics for up to 10 stocks side by side using X/Twitter data.

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": 72.5,
      "trend": "rising",
      "mentions": 156,
      "unique_tweets": 42,
      "sentiment_score": 0.35,
      "bullish_pct": 45,
      "bearish_pct": 12,
      "total_upvotes": 2847
    },
    {
      "ticker": "NVDA",
      "company_name": "NVIDIA Corporation",
      "buzz_score": 85.2,
      "trend": "stable",
      "mentions": 121,
      "unique_tweets": 31,
      "sentiment_score": 0.29,
      "bullish_pct": 41,
      "bearish_pct": 15,
      "total_upvotes": 1985
    }
  ]
}

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 attention trend for current 3 UTC days vs previous 3 UTC days
stocks[].mentionsTotal number of X mentions
stocks[].unique_tweetsDistinct tweet count in the selected period
stocks[].sentiment_scoreAverage sentiment (-1 to +1)
stocks[].bullish_pctPercentage of bullish mentions
stocks[].bearish_pctPercentage of bearish mentions
stocks[].total_upvotesTotal likes across all mentions

Error Codes

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

Returns a market-wide X/Twitter sentiment snapshot with aggregate FinTwit activity, author breadth and the tickers currently driving the conversation.

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": 61.7,
  "trend": "rising",
  "mentions": 9210,
  "unique_tweets": 2814,
  "unique_authors": 1649,
  "total_upvotes": 149320,
  "active_tickers": 236,
  "sentiment_score": 0.21,
  "positive_count": 3776,
  "negative_count": 1542,
  "neutral_count": 3892,
  "bullish_pct": 41,
  "bearish_pct": 17,
  "trend_history": [49.4, 52.1, 54.2, 56.9, 58.5, 60.3, 61.7],
  "drivers": [
    { "ticker": "TSLA", "mentions": 156, "buzz_score": 72.5, "sentiment_score": 0.35 },
    { "ticker": "NVDA", "mentions": 121, "buzz_score": 85.2, "sentiment_score": 0.29 }
  ]
}

Response Fields

buzz_scoreRelative FinTwit heat vs. the trailing 90-day X stocks baseline (~50 is normal)
trendService-level X attention trend for current 3 UTC days vs previous 3 UTC days
mentionsTotal ticker mentions across the selected window
unique_tweetsNumber of distinct tweets represented in the aggregate snapshot
unique_authorsNumber of distinct authors contributing to the aggregate snapshot
total_upvotesTotal likes across all matched tweets
active_tickersNumber of tickers active in the selected window
sentiment_scoreAverage sentiment across all matched X 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 X stocks universe
bearish_pctPercentage of bearish mentions across the whole X stocks universe
trend_historyDaily aggregate buzz-score history (oldest to newest)
driversTop tickers currently driving the broader X market mood
GET /v1/stock/{ticker}/mentions Pro

Returns raw X/Twitter 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 tweet-level snippets, original timestamps and engagement counters on the raw rows.

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)

Response

{
  "ticker": "NVDA",
  "period_days": 7,
  "count": 1,
  "results": [
    {
      "tweet_id": "1901234567890",
      "author": "marketwatcher",
      "text_snippet": "$NVDA still has room after the pullback...",
      "created_utc": "2026-03-20T14:11:02Z",
      "likes": 942,
      "retweets": 88,
      "views": 52110,
      "is_reply": false,
      "sentiment_score": 0.44,
      "sentiment_label": "positive"
    }
  ]
}

Response Fields

tickerResolved ticker symbol
period_daysApplied raw mention lookback window
countTotal matching raw tweet rows before the limit cut
resultsNewest-first raw tweet rows for the ticker
results[].tweet_idX/Twitter tweet id
results[].authorPublic X/Twitter author name, when available
results[].text_snippetShort text extract from the tweet row
results[].created_utcOriginal UTC timestamp for the tweet row
results[].likesLike count captured on the raw row
results[].retweetsRetweet count captured on the raw row
results[].viewsView count captured on the raw row, when available
results[].is_replyWhether the raw row is a reply
results[].sentiment_scoreSentiment score for that raw row (-1 to +1)
results[].sentiment_labelSentiment class for that raw row

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 X Stock Sentiment API.

What data sources do you track?

We use a two-layer pipeline for X/Twitter. Grok identifies which cashtags ($TSLA, $NVDA, etc.) are currently trending, then we enrich those symbols with real tweets and direct replies collected from FinTwit via twscrape. This includes posts from traders, financial news sources, influential accounts and broader market discussions.

How is sentiment calculated?

We use a hybrid VADER + Twitter-RoBERTa model, with VADER enhanced by a finance-specific lexicon of terms like moon, tendies, bearish and short squeeze. Emojis are also analyzed, such as 🚀, 🐻 and 💎🙌. Scores range from -1.0 (bearish) to +1.0 (bullish) and bullish_pct / bearish_pct show the positive/negative share. Non-English tweets are usually skipped.

How is buzz score calculated?

Buzz score (0-100) combines five weighted factors from real tweet data: mentions (20), sentiment (20), quality (10), author diversity (14, HHI-based) and trend (-10 to +20). Scores above 50 use asymptotic scaling to prevent ceiling clustering.

How is trend calculated?

Trend compares normalized X attention for the current 3 UTC days with the previous 3 UTC days using mentions, engagement and author breadth where available. Result: rising (>+10%), falling (<-10%), or stable (within ±10%). It is no longer a Grok-rank-only signal and it is not a price trend. The trend_history array remains daily buzz-score history.

How often is data updated?

Grok analysis is fetched hourly from X/Twitter. Trend uses the current 3 UTC days vs the previous 3 UTC days, while daily history uses completed UTC days plus the current live day. 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 the market-wide sentiment snapshot and 30 days historical data. Raw mention endpoints are Professional-only. Perfect for personal projects and prototyping. Paid plans extend historical access up to 365 days.

What format is the API response?

All responses are JSON (UTF-8). The /v1/stock/{ticker} endpoint returns detailed per-ticker data: daily_trend, sentiment metrics, engagement and author breadth. For a broader view, /v1/market-sentiment returns aggregate buzz, author breadth and the tickers driving the current FinTwit mood. Professional accounts can also call /v1/stock/{ticker}/mentions for raw tweet 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.

Does X include Reddit validation?

No. X/Twitter responses no longer include a Reddit validation flag. Use X-native fields such as buzz_score, mentions, unique_tweets, total_upvotes, trend, trend_history and sentiment metrics for X ranking and confidence decisions.

Can I use this for trading decisions?

Our data is for informational purposes only. Sentiment is one signal among many. It reflects social media 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