MENTIONS ACROSS SYMBOLS TODAY

Stock News
Sentiment API

REST API for traders, fintech apps and AI agents. Query financial news buzz scores, mentions, source counts, bullish ratios, trend direction and historical rankings in JSON.

35,000+

Tracked tickers

10m

Update frequency

50+

News sources
Get API Key View News Top 20
The Problem

News moves fast. You can't scan every source manually.

Financial headlines, analyst notes and market summaries land all day. Important ticker clusters surface and fade within minutes. Reading terminals, publisher homepages and newsletters one by one is slow and inconsistent.

Too Many Sources

Curated financial news feeds publish thousands of ticker references every day. Manual monitoring does not scale.

Noisy Signals

The same story can be syndicated, reframed and repeated. Raw headline counts alone are misleading.

No Normalization

You need one normalized score that accounts for both mention volume and source diversity.

How It Works

Three API calls. Complete news sentiment.

Discover what's trending, analyze any ticker in detail, monitor the market-wide news 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/news/stocks/v1/trending
[{ "ticker": "TSLA", "buzz_score": 87.5, "trend": "rising", "mentions": 342, "source_count": 8 }]
# 2. Analyze specific stock
$ curl api.adanos.org/news/stocks/v1/stock/TSLA
{ "ticker": "TSLA", "buzz_score": 87.5, "trend": "rising", "bullish_pct": 45, "source_count": 8 }
# 3. Understand why it's trending
$ curl api.adanos.org/news/stocks/v1/stock/TSLA/explain
{ "explanation": "Tesla is trending after production headlines and analyst coverage..." }

Update Frequency

News data refreshes every 10 minutes. Today shows coverage so far, while trends are calculated on rolling 24h windows.

Source Awareness

Distinct publisher counts are included on trending, detail and market-sentiment endpoints so you can separate one-source noise from broad coverage.

Buzz Score Formula

Mention volume, sentiment, source diversity and momentum combine into one normalized 0-100 score.

Power your trading tools with financial news sentiment

Access structured stock sentiment analytics from 50+ financial news sources, including Reuters, Benzinga and Finviz, normalized into canonical source ids for trading tools, fintech apps and research workflows.

  • Curated financial news feeds with source-level aggregation
  • 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

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/news/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}

Return the detailed news sentiment report for one stock ticker.

Path Parameters

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

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": 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,
  "source_count": 8,
  "period_days": 7,
  "daily_trend": [
    { "date": "2026-03-05", "mentions": 52, "sentiment_score": 0.31, "buzz_score": 42.8 },
    { "date": "2026-03-04", "mentions": 48, "sentiment_score": 0.18, "buzz_score": 38.5 }
  ],
  "top_sources": [
    { "source": "reuters", "count": 89 },
    { "source": "benzinga", "count": 67 }
  ],
  "top_mentions": [
    {
      "text_snippet": "TSLA looking strong after production update...",
      "sentiment_score": 0.85,
      "sentiment_label": "positive",
      "source": "reuters",
      "created_utc": "2026-03-05T10:30:00+00: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 (rolling 24h window)
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
source_countNumber of sources with mentions
period_daysAnalysis period in days
daily_trendArray of daily mentions, sentiment_score and buzz score values
top_sourcesTop sources by mention count
top_mentionsTop recent mentions with source and sentiment labels

Error Codes

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

Generate or return a cached explanation for why a stock is trending in the news dataset.

Path Parameters

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

Response

{
  "ticker": "TSLA",
  "company_name": "Tesla, Inc.",
  "explanation": "Tesla is trending after a cluster of production headlines and renewed analyst coverage across major finance outlets.",
  "cached": true,
  "generated_at": "2026-03-05T12:30:00+00:00",
  "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 multiple stock tickers side by side using the news sentiment dataset and buzz score model.

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": 87.5,
      "trend": "rising",
      "mentions": 342,
      "source_count": 8,
      "sentiment_score": 0.23,
      "bullish_pct": 45,
      "bearish_pct": 18
    },
    {
      "ticker": "NVDA",
      "company_name": "NVIDIA Corporation",
      "buzz_score": 72.3,
      "trend": "stable",
      "mentions": 189,
      "source_count": 6,
      "sentiment_score": 0.45,
      "bullish_pct": 51,
      "bearish_pct": 16
    }
  ]
}

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 mentions
stocks[].source_countNumber of distinct sources with mentions in the period
stocks[].sentiment_scoreAverage sentiment (-1 to +1)
stocks[].bullish_pctPercentage of bullish mentions
stocks[].bearish_pctPercentage of bearish mentions

Error Codes

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

Returns a one-request snapshot of the full stock news dataset, including aggregate coverage intensity, publisher breadth, sentiment balance and the tickers driving headlines.

Query Parameters

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

Response

{
  "buzz_score": 58.6,
  "trend": "stable",
  "mentions": 6408,
  "unique_articles": 3917,
  "source_count": 214,
  "active_tickers": 287,
  "sentiment_score": 0.12,
  "positive_count": 2098,
  "negative_count": 1236,
  "neutral_count": 3074,
  "bullish_pct": 33,
  "bearish_pct": 19,
  "trend_history": [51.8, 53.4, 54.1, 55.3, 56.8, 57.9, 58.6],
  "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 news-market heat vs. the trailing 90-day news stocks baseline (~50 is normal)
trendrising, falling, or stable for the aggregate news snapshot
mentionsTotal stock news mentions across the selected window
unique_articlesNumber of distinct articles represented in the aggregate snapshot
source_countNumber of distinct publishers contributing to the aggregate snapshot
active_tickersNumber of tickers active in the selected window
sentiment_scoreAverage sentiment across all matched articles (-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 news universe
bearish_pctPercentage of bearish mentions across the whole news universe
trend_historyDaily aggregate buzz-score history (oldest to newest)
driversTop tickers currently driving market-wide news coverage
GET /v1/stock/{ticker}/mentions Pro

Returns raw news mention rows for one ticker within the live raw-data retention window. Use it when you need article-level snippets, original timestamps and publisher-level evidence behind the aggregate sentiment view.

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": "AAPL",
  "period_days": 7,
  "count": 1,
  "results": [
    {
      "article_id": "news-123",
      "source": "reuters",
      "url": "https://example.com/article",
      "title": "Apple supplier outlook lifts sentiment",
      "summary": "Suppliers signaled stronger-than-expected demand...",
      "text_snippet": "Suppliers signaled stronger-than-expected demand...",
      "author": "Jane Doe",
      "created_utc": "2026-03-20T09:03:00Z",
      "sentiment_score": 0.21,
      "sentiment_label": "positive"
    }
  ]
}

Response Fields

tickerResolved ticker symbol
period_daysApplied raw mention lookback window
countTotal matching raw article rows before the limit cut
resultsNewest-first raw article rows for the ticker
results[].article_idStable article row id
results[].sourceCanonical publisher/source id
results[].urlOriginal article URL
results[].titleArticle headline
results[].summaryShort summary or excerpt when available
results[].text_snippetShort text extract from the article row
results[].authorPublic byline/author when available
results[].created_utcOriginal UTC timestamp for the article row
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 Stock News Sentiment API.

Which sources do you track?

We ingest curated financial news feeds and canonicalize publishers into source ids. Coverage includes examples such as Reuters, Benzinga and Finviz, among other finance publishers and market news feeds. That lets you aggregate coverage broadly or filter down to a specific outlet on the supported trending endpoints via the optional source parameter.

How is sentiment calculated?

We use a hybrid VADER + Twitter-RoBERTa model. Each news mention gets a score from -1.0 to +1.0 and a positive, negative, or neutral label, which rolls up into sentiment_score, bullish_pct and bearish_pct for the selected news window.

How is buzz score calculated?

Buzz score (0-100) combines mention volume, sentiment, source diversity and momentum into a normalized ranking. For the news dataset, source breadth replaces social engagement as the main quality signal.

How is trend calculated?

Trend compares rolling 24h windows using a weighted activity score: 60% mentions ratio, 25% baseline ratio and 15% source ratio. Result: rising (>+10%), falling (<-10%), or stable (±10%).

How often is data updated?

The news dataset refreshes every 10 minutes. The public health endpoint exposes freshness and scheduler metadata. 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_sources, top_mentions and sentiment distribution counts. For a broader view, /v1/market-sentiment returns aggregate coverage intensity, source breadth and the tickers driving the current news cycle. Professional accounts can also call /v1/stock/{ticker}/mentions for raw article 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 summarize why a stock is trending in the news dataset. Explanations are cached for 6 hours to keep latency low.

Can I use this for trading decisions?

Our data is for informational purposes only. News sentiment is one signal among many. It reflects media coverage, not intrinsic value or future performance. Always combine it with your own research and risk controls.

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