News & Sentiment

Aggregate real-time equity news and intraday sentiment from 50+ publishers, analyst consensus, and X/Twitter social volume—everything you need to spot catalysts and measure market sentiment.

What's inside#

  • Real-time newswire — Benzinga + Unusual Whales cross-publisher headlines (seconds-to-minutes fresh) with vendor sentiment, publisher, and tickers per item
  • News aggregation — StockNews API daily rollup, trending stories, topic-based feeds, earnings calendar
  • Analyst consensus — Buy/hold/sell counts from Finnhub + recent rating changes and price targets (composite 1–5 scale)
  • X/Twitter sentiment — Daily mention volume and follower count per ticker (Quiver Quant)
  • Market sentiment — Aggregate daily sentiment (-1.5 to +1.5) across all tickers or per-ticker breakdowns

Coverage: StockNews (50M+ articles), Benzinga newswire (1000+ daily updates), Unusual Whales flow (seconds-fresh), Finnhub analyst consensus, Quiver Quant Twitter (daily volume).

Access#

2 credits/call · Starter and up

Endpoints#

MethodPathDescription
GET/api/v3/intel/news_headlinesLive cross-publisher newswire (Unusual Whales): headline, publisher, tickers, is_major, vendor sentiment. Seconds-fresh, optional server-side ticker filter.
GET/api/v3/intel/analyst_consensus/{ticker}Composite analyst consensus + recent rating actions + price-target bands (buy/hold/sell counts, weighted score, PT avg/hi/lo).
GET/api/v3/intel/twitter/{ticker}Daily Twitter mention volume + follower count (Quiver Quant, up to 1 year history).
GET/api/v3/news/sentiment_statsDaily sentiment rollup per ticker (-1.5 to +1.5 with counts); configurable date range.
GET/api/v3/news/aggregatedStockNews equity news index—trending, trending gainers/losers, sentiment breakdown.
GET/api/v3/news/latestLatest 50 stories across all tickers; optional date range filter.
GET/api/news/{ticker}(Legacy) News snapshot for one ticker from silver.news_items + StockNewsAPI fallback.

Examples#

Pull news headlines and analyst consensus for a ticker:

Shell
1curl -H "Authorization: Bearer $TENGU_API_KEY" \2  "https://firm.tengu.co/api/v3/intel/news_headlines?ticker=AAPL&limit=10"
Python
1import os, requests2 3r = requests.get(4    "https://firm.tengu.co/api/v3/intel/analyst_consensus/AAPL",5    headers={"Authorization": f"Bearer {os.environ['TENGU_API_KEY']}"},6    timeout=30,7)8r.raise_for_status()9data = r.json()  # envelope: {"ok": true, "timestamp": "...", "consensus": {...}, "recent_actions": [...], ...}10print(f"Rating score: {data['consensus']['rating_score']}")11print(f"Recent actions: {data['recent_actions'][:3]}")