All notable changes to the Stock Sentiment API.
Format: Keep a Changelog
Versioning: Semantic Versioning
GET /market-sentiment endpoint on all public platform namespaces:/reddit/stocks/v1/market-sentiment
- /x/stocks/v1/market-sentiment
- /news/stocks/v1/market-sentiment
- /polymarket/stocks/v1/market-sentiment
- /reddit/crypto/v1/market-sentiment
trend_history, and top drivers ranked by current asset buzz_score.market-sentiment uses a hybrid read path in V1: completed-day history comes from platform *_daily_stats, while the current live slot is computed from raw mentions/live snapshots for parity with existing trending endpoints.trend_history now use the same calendar-day semantics as Reddit: completed UTC days stay intact and today's live buzz is appended in the final slot instead of overwriting the last completed day.trend_history consistently as completed UTC calendar days plus the current live-day value.yes, yep, and ok now stay neutral instead of inheriting or drifting positive on their own.covered calls, cash secured puts, and straddles are handled as contextual instead of blindly directional.trend, trend_history, sentiment percentages, and platform-specific volume metrics.sentiment -> sentiment_score, upvotes -> total_upvotes.
sentiment_score, while keepingsentiment as a deprecated /v1 alias.
mentions, while keeping legacy total_mentions as a deprecated /v1 alias.
is_validated is not part of /x/stocks/v1/compare, while remaining available on X trending and X stock-detail responses.summary blocks and explicit days / limit query parameters.$ query characters after trimming; results are limited to the top ranked matches for the query.mention_count or trade_count; platform activity metrics now live inside results[].summary.api_keys.newsletter_unsubscribed_at, preserved across recovery/key rotation flows.buzz_score was recalibrated to be activity-first: trade_count now carries the most weight, market_count stays the main breadth signal, and total_liquidity is treated as a secondary windowed depth signal instead of dominating the rank.total_liquidity as a windowed aggregated liquidity signal over the selected days period, not a live snapshot.unique_traders as a best-effort participation signal that can overcount across markets and days.top_mentions on /polymarket/stocks/v1/stock/{ticker} now uses a hybrid relevance order: traded markets first, then trade_count, then volume_24h, then liquidity, so inactive but deep markets no longer dominate the detail view.null instead of price-derived sentiment when no trades exist in the relevant period, day, or market snapshot.null sentiment contract consistently.source is no longer accepted on stock, stock/{ticker}/explain, search, compare, and stats, and unsupported usage now returns 422 instead of being silently ignored.source parameters from public helper methods and endpoint metadata.Professional now shows $249/mo./news/stocks/v1 with endpoint parity:GET /trending
- GET /trending/sectors
- GET /trending/countries
- GET /stock/{ticker}
- GET /stock/{ticker}/explain
- GET /search
- GET /compare
- GET /stats
- GET /health (public)
worker --mode=news) with dedicated heartbeat/job-state tracking.news_mentions
- news_daily_stats
/openapi.news.yaml.client.news.*
- TypeScript SDK client.news.*
- CLI platform news-stocks for trending, search, compare, stats, health
news-stocks.source_count, top_sources) instead of Reddit-only fields like unique_posts, total_upvotes, and top_subreddits.trend_history and daily buzz behavior now follow the Reddit daily-stats model, with the latest value computed live for parity.worker-news, News volume in daily ops reporting, and a dedicated deploy workflow.worker_job_state./reddit/crypto/v1 with endpoint parity:GET /trending
- GET /token/{symbol}
- GET /compare
- GET /search
- GET /stats
- GET /health (public)
worker --mode=crypto-reddit) with dedicated heartbeat (worker_type='crypto_reddit').crypto_reddit_mentions
- crypto_reddit_daily_stats
- crypto_reference
- crypto_unknown_coins
/polymarket/stocks/v1/trending
- /polymarket/stocks/v1/trending/sectors
- /polymarket/stocks/v1/trending/countries
- /polymarket/stocks/v1/stock/{ticker}
- /polymarket/stocks/v1/compare
mentions, total_upvotes, total_mentions with:trade_count
- market_count
- unique_traders (nullable where source data is unavailable)
volume_24h from trending and compare responses.daily_trend[] now uses trade_count (instead of mentions).top_mentions[] now includes trade_count and sentiment_score while keeping market-level volume_24h./polymarket/stocks/v1 with Reddit/X-parity endpoint set:GET /trending
- GET /trending/sectors
- GET /trending/countries
- GET /stock/{ticker}
- GET /search
- GET /compare
- GET /stats
- GET /health (public)
--mode=polymarket with hourly ingest and daily maintenance window.polymarket_mentions (append-only snapshots)
- polymarket_daily_stats (daily API read model)
worker-polymarket.polymarket.openapi.polymarket.yaml.worker_type='polymarket'.trend, bullish_pct, bearish_pct fields on /stock/{ticker} endpoint (Reddit + X)buzz_score in daily_trend items for historical buzz visibility (Reddit + X)SENTIMENT_USE_ENSEMBLE config flag for runtime toggle (production compose: disabled for API only)analyze_sentiment_batch()POST /auth/v1/key-token - Create one-time token for secure API key delivery (Bearer auth)GET /auth/v1/key-token/{token} - Redeem token to retrieve API key (no auth, token is auth)/) response docs.swagger and docs.redoc replaced with docs.api_referencePOST /auth/v1/provision - Internal API key provisioning (Bearer auth)external_order_id, source/auth/v1/register (old /reddit/stocks/v1/register removed)trend_history field in /reddit/stocks/v1/trending response - daily buzz scores (length = max(days, 7))type query parameter for /reddit/stocks/v1/trending - filter by stock, etf, or allf915c0f)6148ca4)GOOGL → GOOG) (fdaa403)GET /reddit/stocks/v1/trending/sectors - Trending by GICS sector (6876724)GET /reddit/stocks/v1/trending/countries - Trending by country (6876724)GET /reddit/stocks/v1/stock/{ticker}/explanation - AI trend explanations (a05d7be)sector and country fields in /search response (48b5646)abc76df)bb37679)5926828)983fc55)offset parameter for pagination on /trending endpoints (5e8a300)/openapi.yaml (41be106)c68946b)6da430d)4cb7866)stock_* → reddit_* (a3eb28b)/x/stocks/v1 (39c1735)GET /x/stocks/v1/trending - Trending stocks from Grok
- GET /x/stocks/v1/stock/{ticker} - X data for ticker
- GET /x/stocks/v1/stats - Service statistics
- GET /x/stocks/v1/health - Health check
api.adanos.org/reddit/stocks/v1 (c1696c3)8c7ca64)65beeb4)6ee12df)177ca90)company_name field in API responses (958b4b0)617ee3f)b28a79a)80c6a20)free, premium (6021563)4e261e9)$TICKER detection in posts (9b938a3)c87a5ad)GET /reddit/stocks/v1/trending - Trending stocks by buzz score
- GET /reddit/stocks/v1/stock/{ticker} - Stock sentiment report
- GET /reddit/stocks/v1/search - Search by ticker/name
- POST /reddit/stocks/v1/register - Self-service API key registration
- GET /reddit/stocks/v1/health - Health check