JSON API for traders, fintech apps, dashboards and AI agents. Pull FinTwit buzz scores, mentions, bullish ratios, trend direction and historical rankings via REST.
| # | Ticker | Company | Buzz | Mentions | Bullish | Trend |
|---|---|---|---|---|---|---|
| Loading trending stocks... | ||||||
Want the public live leaderboard? See the X Top 100 Stocks page. This section previews the raw JSON output for trending tickers, sectors and countries. Want news-driven coverage alongside FinTwit signals? Compare it with the Stock News Sentiment API.
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.
Thousands of FinTwit accounts posting daily. Impossible to track manually.
Hype, bots and duplicate posts make raw cashtag counts unreliable.
You need a single score to compare $TSLA buzz vs $PLTR buzz objectively.
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.
Grok analysis fetched hourly from X. Today shows activity so far, while trends are calculated on rolling 24h windows.
Tickers trending on both X and Reddit are flagged for higher confidence signals.
Grok ranking, mention frequency and trend momentum combined into one 0-100 score.
Integrate X/Twitter trending data into your trading algorithms, dashboards, or research tools. Our API provides clean, structured data updated every 60 minutes.
Fill out the form below. We'll send you a secure link to retrieve your API key.
We've sent a link to retrieve your API key. The link expires in 24 hours and can only be used once.
RESTful JSON API. All requests require authentication via X-API-Key header. View full documentation → · BuzzScore Whitepaper →
https://api.adanos.org/x/stocks
X-API-Key: sk_live_...
/v1/trending
Returns trending stocks from X/Twitter based on Grok analysis, ranked by buzz score.
days | Time period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 1) |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
type | Filter by asset type: stock, etf, or all (default: all) |
[
{
"ticker": "TSLA",
"company_name": "Tesla, Inc.",
"buzz_score": 100,
"trend": "rising",
"mentions": 4,
"sentiment_score": 0.45,
"bullish_pct": 72,
"bearish_pct": 12,
"total_upvotes": 8420,
"unique_tweets": 847,
"is_validated": true,
"trend_history": [92.0, 95.0, 97.0, 98.0, 99.0, 100.0, 100.0]
}
]
ticker | Stock ticker symbol |
company_name | Company name (null if not found) |
buzz_score | Buzz score (0-100) based on mentions, sentiment, quality and trend |
trend | rising, falling, or stable (rolling 24h window) |
mentions | Number of fetches where ticker appeared |
sentiment_score | Average sentiment (-1 to +1, null if unavailable) |
bullish_pct | Percentage of bullish mentions (0-100, null if unavailable) |
bearish_pct | Percentage of bearish mentions (0-100, null if unavailable) |
total_upvotes | Total upvotes/likes (null if unavailable) |
unique_tweets | Number of unique tweets (null if unavailable) |
is_validated | Also trending on Reddit (cross-platform validation) |
trend_history | Array of daily buzz scores (oldest to newest, 7 days) |
/v1/trending/sectors
Returns sectors with highest aggregated buzz on X/Twitter, ranked by buzz score. Combines all stock mentions per sector and includes the top 5 tickers per sector.
days | Time period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 1) |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
[
{
"sector": "Technology",
"buzz_score": 78.4,
"trend": "rising",
"mentions": 4523,
"unique_tickers": 34,
"sentiment_score": 0.28,
"bullish_pct": 54,
"bearish_pct": 22,
"total_upvotes": 128450,
"top_tickers": ["NVDA", "AAPL", "MSFT", "AMD", "GOOGL"]
}
]
sector | Industry sector name |
buzz_score | Aggregated buzz score (0-100) |
trend | rising, falling, or stable |
mentions | Total mentions across all tickers in sector |
unique_tickers | Number of unique tickers mentioned |
sentiment_score | Weighted average sentiment (-1 to +1) |
bullish_pct | Percentage of bullish mentions |
bearish_pct | Percentage of bearish mentions |
total_upvotes | Total likes across all mentions |
top_tickers | Top 5 tickers by mention count |
/v1/trending/countries
Returns countries with highest aggregated buzz on X/Twitter, ranked by buzz score. Combines all stock mentions per country and includes the top 5 tickers per country.
days | Time period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 1) |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
[
{
"country": "United States",
"buzz_score": 82.3,
"trend": "stable",
"mentions": 8934,
"unique_tickers": 156,
"sentiment_score": 0.21,
"bullish_pct": 48,
"bearish_pct": 26,
"total_upvotes": 245000,
"top_tickers": ["NVDA", "TSLA", "AAPL", "AMD", "PLTR"]
}
]
country | Country name |
buzz_score | Aggregated buzz score (0-100) |
trend | rising, falling, or stable |
mentions | Total mentions across all tickers from country |
unique_tickers | Number of unique tickers mentioned |
sentiment_score | Weighted average sentiment (-1 to +1) |
bullish_pct | Percentage of bullish mentions |
bearish_pct | Percentage of bearish mentions |
total_upvotes | Total likes across all mentions |
top_tickers | Top 5 tickers by mention count |
/v1/stock/{ticker}
Returns X/Twitter trending data for a specific ticker including buzz score, sentiment metrics and daily trend history.
ticker | Stock ticker symbol (1-10 uppercase letters, e.g., TSLA) |
days | Time period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 7) |
{
"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"
}
]
}
ticker | Stock ticker symbol |
company_name | Company name (null if not found) |
found | Whether ticker was found in X trending |
buzz_score | Buzz score (0-100, null if not found) |
trend | rising, falling, or stable (rolling 24h window) |
mentions | Total tweet mentions in the period |
sentiment_score | Average sentiment (-1 to +1, null if unavailable) |
bullish_pct | Percentage of bullish mentions (0-100, null if unavailable) |
bearish_pct | Percentage of bearish mentions (0-100, null if unavailable) |
positive_count | Number of bullish mentions (null if unavailable) |
negative_count | Number of bearish mentions (null if unavailable) |
neutral_count | Number of neutral mentions (null if unavailable) |
total_upvotes | Total likes across mentions (null if unavailable) |
unique_tweets | Number of unique tweets (null if unavailable) |
period_days | Time period analyzed |
is_validated | Whether ticker is also trending on Reddit |
daily_trend | Array of daily data with date, mentions, sentiment_score, buzz score and avg_rank |
top_tweets | Top tweets by engagement with likes, retweets and sentiment labels |
401 | Missing or invalid API key |
/v1/stock/{ticker}/explain
Returns an AI-generated summary of why a ticker is trending on X/Twitter, based on recent FinTwit activity.
ticker | Stock ticker symbol (1-10 uppercase letters, e.g., TSLA) |
{
"ticker": "TSLA",
"explanation": "Tesla is trending on X as traders discuss delivery expectations, options flow and renewed momentum in large-cap growth names."
}
ticker | Stock ticker symbol |
explanation | Concise AI-generated X/Twitter trend explanation |
401 | Missing or invalid API key |
404 | No explanation available for this ticker |
/v1/search
Search for stocks by ticker symbol or company name. Returns matching stocks with recent X summary metrics for the selected window.
q | Search query (ticker or company name, required) |
{
"query": "tesla",
"count": 1,
"period_days": 7,
"results": [
{
"ticker": "TSLA",
"name": "Tesla Inc.",
"type": "Stock",
"exchange": "NASDAQ",
"sector": "Consumer Discretionary",
"country": "United States",
"aliases": ["Tesla", "Elon"],
"summary": {
"mentions": 156,
"buzz_score": 72.5,
"trend": "rising",
"sentiment_score": 0.35,
"bullish_pct": 45,
"bearish_pct": 12,
"unique_tweets": 42,
"total_upvotes": 2847
}
}
]
}
query | Original search query |
count | Number of results found |
period_days | Lookback window used for each summary block |
results | Array of matching stocks |
results[].ticker | Stock ticker symbol |
results[].name | Company name |
results[].type | Asset type (e.g., Stock, ETF) |
results[].exchange | Exchange (e.g., NASDAQ, NYSE) |
results[].sector | Industry sector |
results[].country | Country of headquarters |
results[].aliases | Alternative names/aliases |
results[].summary | Recent-period X summary for the matching asset |
results[].summary.mentions | Tweet mentions in the selected period |
results[].summary.sentiment_score | Average sentiment in the selected period |
results[].summary.unique_tweets | Distinct tweet count in the selected period |
/v1/compare
Compare sentiment metrics for up to 10 stocks side by side using X/Twitter data.
tickers | Comma-separated list of tickers (max 10, required) |
days | Time period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 7) |
{
"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
}
]
}
period_days | Analysis period in days |
stocks | Array of stock comparison data |
stocks[].ticker | Stock ticker symbol |
stocks[].company_name | Company name (null if not found) |
stocks[].buzz_score | Overall buzz score (0-100) |
stocks[].trend | Recent activity trend |
stocks[].mentions | Total number of X mentions |
stocks[].unique_tweets | Distinct tweet count in the selected period |
stocks[].sentiment_score | Average sentiment (-1 to +1) |
stocks[].bullish_pct | Percentage of bullish mentions |
stocks[].bearish_pct | Percentage of bearish mentions |
stocks[].total_upvotes | Total likes across all mentions |
400 | Maximum 10 tickers allowed |
401 | Missing or invalid API key |
/v1/market-sentiment
Returns a market-wide X/Twitter sentiment snapshot with aggregate FinTwit activity, author breadth and the tickers currently driving the conversation.
days | Time period in days (Free: 1-30, Hobby: 1-90, Professional: 1-365; default: 1) |
{
"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 }
]
}
buzz_score | Relative FinTwit heat vs. the trailing 90-day X stocks baseline (~50 is normal) |
trend | rising, falling, or stable for the aggregate X market snapshot |
mentions | Total ticker mentions across the selected window |
unique_tweets | Number of distinct tweets represented in the aggregate snapshot |
unique_authors | Number of distinct authors contributing to the aggregate snapshot |
total_upvotes | Total likes across all matched tweets |
active_tickers | Number of tickers active in the selected window |
sentiment_score | Average sentiment across all matched X mentions (-1 to +1) |
positive_count | Number of bullish mentions in the aggregate window |
negative_count | Number of bearish mentions in the aggregate window |
neutral_count | Number of neutral mentions in the aggregate window |
bullish_pct | Percentage of bullish mentions across the whole X stocks universe |
bearish_pct | Percentage of bearish mentions across the whole X stocks universe |
trend_history | Daily aggregate buzz-score history (oldest to newest) |
drivers | Top tickers currently driving the broader X market mood |
/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.
days | Raw mention lookback window in days (Professional only, 1-90; default: 7) |
limit | Maximum raw rows to return (1-100, default: 50) |
{
"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"
}
]
}
ticker | Resolved ticker symbol |
period_days | Applied raw mention lookback window |
count | Total matching raw tweet rows before the limit cut |
results | Newest-first raw tweet rows for the ticker |
results[].tweet_id | X/Twitter tweet id |
results[].author | Public X/Twitter author name, when available |
results[].text_snippet | Short text extract from the tweet row |
results[].created_utc | Original UTC timestamp for the tweet row |
results[].likes | Like count captured on the raw row |
results[].retweets | Retweet count captured on the raw row |
results[].views | View count captured on the raw row, when available |
results[].is_reply | Whether the raw row is a reply |
results[].sentiment_score | Sentiment score for that raw row (-1 to +1) |
results[].sentiment_label | Sentiment class for that raw row |
401 | Missing or invalid API key |
403 | Professional plan required for raw mention access |
422 | Invalid ticker or query parameter |
All plans share the same base API. Professional adds raw mention data and commercial rights.
Perfect for quick tests, API exploration and early prototypes. No credit card required.
For professional traders, personal trading bots, academic research & side projects
For hedge funds, fintech startups, trading platforms & commercial applications
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 →
Everything you need to know about the X Stock Sentiment API.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Need a higher-volume or custom data setup? Contact us and we will help map the right access model.