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 enriched with real tweet engagement and sentiment signals.
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.
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.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
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,
"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 attention trend for current 3 UTC days vs previous 3 UTC days |
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) |
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.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
[
{
"sector": "Technology",
"buzz_score": 78.4,
"trend": "rising",
"trend_history": [45.2, 52.1, 48.7, 67.3, 72.1, 78.4, 78.4],
"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 | Sector attention trend for current 3 UTC days vs previous 3 UTC days |
trend_history | Daily sector buzz-score history, oldest to newest, length max(days, 7) |
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.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
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",
"trend_history": [76.4, 78.8, 81.2, 80.5, 82.1, 83.0, 82.3],
"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 | Country attention trend for current 3 UTC days vs previous 3 UTC days |
trend_history | Daily country buzz-score history, oldest to newest, length max(days, 7) |
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, daily trend history and enriched top author metrics.
ticker | Stock ticker symbol (1-10 uppercase letters, e.g., TSLA) |
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
{
"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"
}
]
}
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 attention trend for current 3 UTC days vs previous 3 UTC days |
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 |
daily_trend | Array of daily data with date, mentions, sentiment_score, buzz score and avg_rank |
top_authors | Top author contributors with mentions, sentiment and buzz score |
top_authors[].author | X/Twitter author username (e.g., "stockguru") |
top_authors[].mentions | Canonical mention count for this author |
top_authors[].sentiment_score | Author-level average sentiment (-1 to +1) |
top_authors[].buzz_score | Author-level buzz score (0-100) |
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. Search accepts only q and limit; summary metrics use a fixed last 7 UTC calendar days window.
q | Search query (ticker or company name, required) |
limit | Maximum result count (1-200, default: 50) |
{
"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
}
}
]
}
query | Original search query |
count | Number of results found |
period_days | Fixed 7 UTC calendar-day lookback 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 | Compact X discovery summary for the fixed last 7 UTC calendar days |
results[].summary.mentions | Tweet mentions in the last 7 UTC calendar days |
results[].summary.buzz_score | Buzz score over the last 7 UTC calendar days |
results[].summary.trend | X attention trend over current 3 UTC days vs previous 3 UTC days; not a price trend |
results[].summary.sentiment_score | Average sentiment over the last 7 UTC calendar days |
/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) |
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
{
"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 | Stock attention trend for current 3 UTC days vs previous 3 UTC days |
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.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
{
"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 | Service-level X attention trend for current 3 UTC days vs previous 3 UTC days |
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. 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.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
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 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.
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.
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, 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.
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.
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.
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.