Why Is a Stock Trending? Ask News, Reddit and X Separately

News, Reddit and X often talk about the same stock for different reasons. Each source has an endpoint that says why in one or two sentences. A 26-line Python script puts the three answers side by side.

6 min read

What's in here

  • A real split: why Amazon trended in the news and why it trended on Reddit and X on the same day
  • The endpoint: what /explain returns and which fields to check
  • The script: 26 lines of Python that ask all three sources about the top five news stocks
  • How to read it: agreement, a split and silence, plus what the endpoint cannot tell you
Sources
News, Reddit, X
Requests per run
16
Language
Python
Plan
Free tier works

The script runs on a free key. Get one at registration, then copy the code in section three.

One ticker, three reasons

In the days up to November 11, 2026, Amazon was trending in financial news, on Reddit and on X. We asked the explain endpoint of each source why. These are the three answers, word for word after the opening "AMZN is trending because":

SourceExplanation, November 11, 2026
NewsIts cloud unit posted its fastest growth in nearly five years, strengthening the company's cloud story in the latest quarterly earnings report.
RedditAmazon added Uber Eats ordering into Prime, giving members a delivery-fee waiver on qualifying orders placed through Amazon without an Uber account.
XAmazon made Uber Eats the official food delivery partner for Prime members, alongside discussion of its cloud disclosure call and data center capacity constraints.

Both stories are real. Amazon reported on October 29 that AWS sales grew 39.3% in the third quarter, its fastest growth in nearly five years (Amazon investor relations). On November 5 it announced restaurant delivery through Uber Eats with no delivery fee for Prime members on orders of $25 or more (Amazon press release).

The news answer is about the quarter. The Reddit answer is about the Prime perk. X leads with the perk and mentions the cloud only in passing. Asked one source at a time, the API shows both stories and which crowd talks about which.

What the explain endpoint returns

Each source has the same path: /news/stocks/v1/stock/{ticker}/explain, /reddit/stocks/v1/stock/{ticker}/explain and /x/stocks/v1/stock/{ticker}/explain. It takes the ticker and nothing else (API reference). The answer is small:

Code
{
  "ticker": "AMZN",
  "company_name": "Amazon.com Inc",
  "explanation": "AMZN is trending because its cloud unit posted its fastest growth in nearly five years, strengthening the company's cloud story in the latest quarterly earnings report.",
  "cached": true,
  "generated_at": "2026-11-11T04:04:46.683510+00:00",
  "model": "deepseek-ai/DeepSeek-V4.1-Flash-1017"
}

Four fields matter. explanation is the text. model names the language model that wrote it. It reads fallback when there is no clear catalyst. The text then says the stock "shows mixed sentiment without a clear catalyst". cached and generated_at tell you how fresh the answer is.

The script in 26 lines

The script takes the five most covered stocks in the news, then asks all three sources why each one is trending. It needs Python 3.8 or newer, requests and an API key in ADANOS_API_KEY. Save it as why_trending.py and run python why_trending.py:

Code
pip install requests
export ADANOS_API_KEY=your_key
Code
import os
import textwrap
import requests

API = "https://api.adanos.com"
HEADERS = {"X-API-Key": os.environ["ADANOS_API_KEY"]}
wrap = textwrap.TextWrapper(width=88, subsequent_indent=" " * 9)


def get(path, **params):
    r = requests.get(API + path, headers=HEADERS, params=params, timeout=60)
    r.raise_for_status()
    return r.json()


for stock in get("/news/stocks/v1/trending", limit=5, type="stock"):
    ticker = stock["ticker"]
    print(f"\n{ticker}  {stock['company_name']}")
    for source in ("news", "reddit", "x"):
        try:
            why = get(f"/{source}/stocks/v1/stock/{ticker}/explain")["explanation"]
        except requests.HTTPError as err:
            if err.response.status_code != 404:
                raise
            why = "no mentions in the last 7 days (404)"
        print(wrap.fill(f"  {source:<7}{why}"))

One run makes 16 requests: one for the trending list, then three per ticker. Every request counts against the monthly quota, cached answers included. The free tier has 250 requests a month, enough for about 15 runs. A run took about six seconds in our test.

The try block catches one case. A source with no mentions of the ticker in the last 7 days answers with 404. The script prints that and moves on. Any other error stops the script, for example 401 for a wrong key or 429 when the quota is used up. That way a used-up quota never looks like a quiet stock.

What a run looks like

Here are two of the five tickers from a run on November 11, 2026:

Code
CRWV  CoreWeave, Inc.
  news   CRWV is trending because CoreWeave reported stronger-than-expected quarterly
         results, raised its full-year guidance and cited a large revenue backlog, which
         it said reinforced demand for its AI compute capacity.
  reddit CRWV is trending because CoreWeave reported better-than-expected revenue and
         raised its guidance, which was described as easing concerns about a slowdown in
         AI spending.
  x      CRWV is trending because CoreWeave is due to report earnings after a sharp
         multi-month share decline, with discussion framing a beat and raised guidance
         as a signal of accelerating AI infrastructure demand.

ANT  Anthropic, PBC
  news   ANT is trending because Anthropic is seeking a multitrillion-dollar valuation
         in its imminent stock market flotation, with shares expected to be priced
         within a disclosed range.
  reddit no mentions in the last 7 days (404)
  x      no mentions in the last 7 days (404)

CoreWeave had reported the evening before. Revenue beat estimates and the company raised its full-year guidance (CNBC). News and Reddit say exactly that. X still describes the report as upcoming, probably because its explanation also draws on posts from before the release.

Anthropic shows the other case. The news explanation is about its planned IPO. Reddit and X return 404 with the message "No mentions found for $ANT in the last 7 days."

How to read three answers

  • All three agree. The event is the story. CoreWeave's earnings are the example above. Check whether one source is behind the others, as X was here.
  • News and the crowd split. The articles and the posts are about different things, as with Amazon. This is the case worth a closer look. Flag these tickers in your script, then read the top_mentions of each source for them.
  • One source has nothing. A 404 means that source tracked no mentions of the ticker in the last 7 days, as with Anthropic on Reddit and X. A fallback answer is a different case. The stock is discussed there, just without a clear catalyst.

What the endpoint does not tell you

The explanation summarizes what a source says. It is not a fact check. On X that includes rumors. Treat each answer as a pointer to the coverage, then read the coverage. The stock endpoint of each source returns top_mentions with the posts or articles behind the number.

One or two sentences also leave things out. The Amazon news answer names the cloud growth. It says nothing about how the share price reacted to the quarter. The window is also fixed. The endpoint explains the recent period, so you cannot ask why a stock trended last month. For a fixed window, use the stock endpoint with from and to.

FAQ

How do I find out why a stock is trending?

Call the explain endpoint for the ticker. GET /news/stocks/v1/stock/{ticker}/explain returns one or two sentences on why the stock is trending in financial news. The same path under /reddit and /x answers for those platforms. Read the three answers together. Where they differ, the sources are reacting to different things.

Who writes the explanation?

A language model writes it from the posts or articles of that source. The model field names the model. When there is no clear catalyst, the field reads fallback and the text says the stock shows mixed sentiment without a clear catalyst. The text repeats what the source says, rumors included. Check facts against the articles before you act on them.

Is the explain endpoint on the free plan?

Yes. Explain is not a Pro endpoint, so every plan has it, including the free tier with 250 requests per month. Every call counts against the monthly quota, cached answers included. The script in this article makes 16 requests per run, so the free tier covers about 15 runs a month.

Why does the endpoint return 404 for some tickers?

A 404 means that source tracked no mentions of the ticker in the last 7 days. The message reads, for example, "No mentions found for $ANT in the last 7 days." Treat it as no signal from that source. Treat other errors such as 401 or 429 as failures that stop your code.

Can I choose the time window of the explanation?

No. The endpoint takes only the ticker and explains the recent period. The response carries generated_at and cached, so you can see how old the answer is. For a fixed window, use the stock endpoint of each source with from and to.

Keep reading

  • How the Adanos Fear & Greed Index Is Built: Dumb Money vs Smart MoneyThe index takes the daily bullish shares of Reddit and X and ranks each against its own history as of that day. The CNN index stands in for smart money. Calendar rules and a band decide when one side leads.Read the older article
  • Build a WallStreetBets Sentiment Dashboard in 50 Lines of PythonSkip the Reddit scraping and the DIY NLP. Build a live WSB sentiment dashboard with Streamlit and one API call in about 50 lines of Python.Read the article
  • AAII vs CNN Fear & Greed vs Adanos: Investor Sentiment Indicators ComparedAAII asks people, CNN reads the market and Adanos reads the posts against the market. We compare what each gauge measures, how often it updates, its contrarian record and which question it answers.Read the article
  • Market Movers TodayThe most active stocks, biggest gainers and biggest losers of the last US trading day, each with a one-line explanation.Open the live data