---
title: "Compare stocks"
method: GET
path: "/reddit/stocks/v1/compare"
tags: ["Reddit Stocks"]
---

# Compare stocks

`GET /reddit/stocks/v1/compare`

Compare up to 10 stock or ETF tickers side by side over the same UTC calendar-day period.

Results are sorted by `buzz_score` descending and return the same core analytics used by
`/trending`: `buzz_score`, `trend`, `trend_history`, `mentions`, `unique_posts`,
`subreddit_count`, `sentiment_score`, `bullish_pct`, `bearish_pct` and `total_upvotes`.
`trend` is activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today).

If a requested ticker is supported but has no qualifying data in the period, it is still returned with zeroed metrics.

`mentions` includes inherited thread-context mentions. Use raw `/mentions` without
`include_inherited` for explicit-only rows.

## Query parameters

- `from` string, date, nullable — Start date in YYYY-MM-DD. Inclusive UTC date.
- `to` string, date, nullable — End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date.
- `days` integer — Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows.
- `tickers` string, required — Comma-separated list of ticker symbols (e.g., TSLA,NVDA,AMD)

## Response `200`

Successful Response

- CompareResponse — Comparison of multiple stocks.
  - `period_days` integer, required — Analysis period in days
  - `stocks` CompareStockItem[], required — Stocks sorted by buzz_score descending
    - `ticker` string, required — Stock ticker symbol
    - `company_name` string, nullable — Company name from ticker_reference
    - `buzz_score` number, nullable, required — Buzz Score (0-100). Asymptotic scaling above 50.
    - `trend` 'rising' | 'falling' | 'stable', nullable — Activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). Null when no qualifying Reddit data exists.
    - `mentions` integer, required — Total attributed mentions in period, including inherited thread-context mentions
    - `unique_posts` integer, required — Number of unique posts in period
    - `subreddit_count` integer, required — Number of subreddits with mentions in period
    - `sentiment_score` number, nullable — Average sentiment (-1 to +1, null if no mentions)
    - `bullish_pct` integer, nullable — Percentage of bullish mentions
    - `bearish_pct` integer, nullable — Percentage of bearish mentions
    - `total_upvotes` integer, required — Total upvotes from attributed mentions
    - `trend_history` number[] — Daily buzz scores (oldest→newest). Length follows the resolved period, with a minimum of 7 values when data exists. Empty when no qualifying data exists.

## Other responses

- `400` — Invalid compare item list
- `401` — Authentication failed
- `403` — Historical data limit exceeded
- `422` — Invalid period or query parameters
- `429` — Rate limit exceeded
- `503` — Database temporarily unavailable
- `504` — Analytics request deadline exceeded

---

[API](https://skmtc.net/adanos/apis/adanos-market-sentiment-api.md) · [All operations](https://skmtc.net/adanos/apis/adanos-market-sentiment-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adanos/adanos-market-sentiment-api/revisions/351caf64ba81/schema)
