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 with cross-platform Reddit validation.

api-demo.sh
# 1. Discover trending tickers
$ curl api.adanos.org/x/stocks/v1/trending
[{ "ticker": "TSLA", "buzz_score": 100, "trend": "rising", "is_validated": true }]
# 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-platform validation
$ 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 trends are calculated on rolling 24h windows.

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.

  • Top 100 trending tickers from FinTwit
  • Buzz scores & trend detection
  • Cross-platform validation with Reddit
  • 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 and daily trend history.

Path Parameters

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

Query Parameters

daysTime period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 7)

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,
  "is_validated": true,
  "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_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 (rolling 24h window)
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
is_validatedWhether ticker is also trending on Reddit
daily_trendArray of daily data with date, mentions, sentiment_score, buzz score and avg_rank
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)
daysTime period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 7)

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[].trendRecent activity trend
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

daysTime period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 1)

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)
trendrising, falling, or stable for the aggregate X market snapshot
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. Use it when you need tweet-level snippets, original timestamps and engagement counters on the raw rows.

Query Parameters

daysRaw mention lookback window in days (Professional only, 1-90; default: 7)
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 rolling 24h windows based on X ranking history. Result: rising (>+10% improvement vs 24h ago), falling (<-10% decline), or stable (within ±10%). The trend_history array shows completed UTC days plus Today so far.

How often is data updated?

Grok analysis is fetched hourly from X/Twitter. Trends are calculated on rolling 24h windows, 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 and cross-platform validation status. 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.

What is cross-platform validation?

Tickers that appear on both X/Twitter and Reddit trending lists are marked as is_validated: true. This provides higher confidence that a stock is genuinely trending across multiple platforms, filtering out platform-specific noise.

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