TRADES ACROSS TICKERS TODAY

Polymarket Stock
Sentiment API

The Polymarket API for traders and developers. Track trending prediction markets, probability-implied sentiment, liquidity and 24h volume per ticker as JSON. Real-money signals that go beyond social chatter.

35,000+

Tracked tickers

1h

Update frequency

Real $

Money-backed
Get API Key View Trending Tickers
The Problem

Why Track Polymarket Prediction Markets for Stocks?

Polymarket hosts thousands of stock-related prediction markets. Prices shift as real money flows in. Tracking which tickers are gaining attention across contracts takes time and you still miss signals buried in niche markets.

Scattered Markets

Hundreds of stock-related contracts across Polymarket. No unified view of which tickers are active.

Raw Prices Aren't Enough

Individual market probabilities lack context. You need aggregated sentiment across all contracts for a ticker.

No Normalization

You need a single score to compare $TSLA prediction activity vs $NVDA objectively.

The Solution

How the Polymarket API Works

The Polymarket API is a set of REST endpoints that fit into any trading workflow, from single-ticker analysis to market-wide positioning snapshots. Prediction-market data aggregated per ticker with cross-platform validation from Reddit and X.

api-demo.sh
# 1. Discover trending tickers on Polymarket
$ curl api.adanos.org/polymarket/stocks/v1/trending
[{ "ticker": "TSLA", "buzz_score": 72.5, "trend": "rising", "total_liquidity": 450000 }]
# 2. Analyze specific stock with market details
$ curl api.adanos.org/polymarket/stocks/v1/stock/TSLA
{ "ticker": "TSLA", "buzz_score": 72.5, "market_count": 27, "current_market_count": 12, "trade_count": 312 }
# 3. Cross-platform validation with Reddit
$ curl api.adanos.org/reddit/stocks/v1/stock/TSLA
{ "ticker": "TSLA", "sentiment_score": 0.23, "bullish_pct": 45, "source": "reddit" }

Update Frequency

Polymarket data fetched hourly. Today shows activity so far, while trend compares current 3 UTC days with the previous 3 UTC days using market flow signals.

Real-Money Signals

Unlike social sentiment, prediction market prices are backed by real money. Higher conviction, less noise.

Buzz Score Formula

Trades, notional flow, breadth, liquidity, participation and high-confidence market-implied sentiment combined into one non-directional 0-100 heat score.

Polymarket API Endpoints

RESTful JSON API. All listed endpoints require authentication via X-API-Key. View full documentation → · BuzzScore Whitepaper →

Base URL

https://api.adanos.org/polymarket/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}

Returns detailed Polymarket metrics for a ticker, including representative market-level buzz on top market snapshots. Longer historical windows can include representative markets for the selected period even when exact raw snapshots are no longer retained; use the raw mentions endpoint when exact retained rows are required. Returns HTTP 200 with found=false when no data is available for the symbol.

Path Parameters

tickerStock ticker symbol (^\\$?[A-Za-z]{1,10}$, e.g., TSLA, aapl, $GME)

Query Parameters

fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Earliest start date by plan, counted back from the current UTC date: Free 30 days, Hobby 90 days, Professional 365 days

Response

{
  "ticker": "TSLA",
  "company_name": "Tesla, Inc.",
  "found": true,
  "buzz_score": 68.9,
  "trend": "stable",
  "period_days": 7,
  "trade_count": 312,
  "market_count": 27,
  "current_market_count": 12,
  "unique_traders": 119,
  "sentiment_score": 0.28,
  "positive_count": 9,
  "negative_count": 5,
  "neutral_count": 2,
  "bullish_pct": 64,
  "bearish_pct": 36,
  "total_liquidity": 128000,
  "daily_trend": [
    { "date": "2026-02-13", "trade_count": 5, "sentiment_score": 0.25, "buzz_score": 64.1, "bullish_pct": 62, "bearish_pct": 38 },
    { "date": "2026-02-12", "trade_count": 7, "sentiment_score": 0.31, "buzz_score": 66.4, "bullish_pct": 66, "bearish_pct": 34 }
  ],
  "top_mentions": [
    {
      "condition_id": "0xabc...",
      "question": "Will TSLA close above $400 this week?",
      "market_type": "close_above",
      "trade_count": 42,
      "sentiment_score": 0.23,
      "buzz_score": 57.6,
      "yes_price": 0.68,
      "no_price": 0.32,
      "liquidity": 7905.52,
      "volume_24h": 2408.43,
      "end_date": "2026-02-28",
      "active": true,
      "market_status": "tradable"
    }
  ],
  "pulse": {
    "mood": "bullish",
    "confidence": 0.62,
    "thin_data": false,
    "why": ["directional_markets", "orderbook_midpoint"],
    "warnings": [],
    "evidence": {
      "directional_coverage": 0.80,
      "traded_market_pct": 0.65,
      "zero_trade_market_pct": 0.20,
      "avg_spread": 0.03,
      "snapshot_at": "2026-02-13T18:30:00Z"
    }
  }
}

Response Fields

tickerStock ticker symbol
company_nameCompany name (null if not found)
foundWhether prediction markets were found for this ticker
buzz_scoreBuzz score (0-100, null if not found)
trendStock prediction-market flow trend for current 3 UTC days vs previous 3 UTC days
period_daysAnalysis period in days
trade_countTotal trade count in the selected period (nullable)
market_countDistinct markets active for the ticker in the selected period (nullable)
current_market_countCurrently active markets for the ticker in the latest UTC-day snapshot (nullable)
unique_tradersUnique traders in the selected period (nullable)
sentiment_scoreMarket-implied sentiment (-1 to +1). Current snapshots prefer usable YES-token orderbook midpoint evidence; historical rows fall back to stored YES/NO price evidence.
bullish_pctPercentage implied bullish
bearish_pctPercentage implied bearish
positive_countMarkets with YES price > 0.5 (nullable) (legacy; use bullish_pct/bearish_pct)
negative_countMarkets with YES price < 0.5 (nullable) (legacy; use bullish_pct/bearish_pct)
neutral_countMarkets near YES price 0.5 (nullable) (legacy; use bullish_pct/bearish_pct)
total_liquidityTotal USD liquidity across all markets
daily_trendArray of daily data with date, trade_count, sentiment_score, buzz_score, bullish_pct and bearish_pct (nullable)
top_mentionsRepresentative top prediction markets for the selected period, preferring current snapshot-backed markets when available
top_mentions[].questionMarket question (e.g., "Will TSLA close above $400?")
top_mentions[].trade_count24h trade count for the market (nullable)
top_mentions[].sentiment_scoreMarket-level sentiment signal (nullable)
top_mentions[].buzz_scoreMarket-level buzz score for this market snapshot (nullable)
top_mentions[].yes_priceYES probability (0-1)
top_mentions[].no_priceNO probability (0-1)
top_mentions[].liquidityMarket liquidity in USD
top_mentions[].volume_24hMarket 24h volume in USD
top_mentions[].end_dateMarket expiration date
top_mentions[].activeWhether the representative market state is open
top_mentions[].market_statusCompact market status: tradable, open, resolved, expired, or inactive
pulseCompact current interpretation: mood (bullish/bearish/mixed/event_driven/illiquid/unclear), confidence, thin_data, stable why/warnings codes, and an evidence quality summary (directional_coverage, traded_market_pct, zero_trade_market_pct, avg_spread, snapshot_at). Nullable; does not duplicate top-level aggregates.

Error Codes

401Missing or invalid API key
403Historical data limit exceeded for the current plan
429Rate limit exceeded
GET /v1/compare

Compare up to 10 stocks side-by-side on Polymarket metrics.

Query Parameters

tickersComma-separated list of tickers (max 10, required)
fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Earliest start date by plan, counted back from the current UTC date: Free 30 days, Hobby 90 days, Professional 365 days

Response

{
  "period_days": 7,
  "stocks": [
    {
      "ticker": "AAPL",
      "company_name": "Apple Inc.",
      "buzz_score": 68.9,
      "trend": "stable",
      "trade_count": 312,
      "market_count": 27,
      "current_market_count": 12,
      "unique_traders": 119,
      "sentiment_score": 0.28,
      "bullish_pct": 64,
      "bearish_pct": 36,
      "total_liquidity": 128000
    }
  ]
}

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[].trendStock prediction-market flow trend for current 3 UTC days vs previous 3 UTC days
stocks[].trade_countTotal trade count in the selected period
stocks[].market_countDistinct markets active in the selected period
stocks[].current_market_countCurrently active markets in the latest UTC-day snapshot
stocks[].unique_tradersUnique traders in the selected period (nullable)
stocks[].sentiment_scoreProbability-implied sentiment (-1 to +1)
stocks[].bullish_pctPercentage of bullish markets
stocks[].bearish_pctPercentage of bearish markets
stocks[].total_liquidityTotal USD liquidity

Error Codes

400Maximum 10 tickers allowed
401Missing or invalid API key
403Historical data limit exceeded for the current plan
429Rate limit exceeded
GET /v1/market-sentiment

Returns a market-wide Polymarket snapshot with aggregate trade activity, liquidity, sentiment balance and the tickers currently driving prediction-market positioning.

Query Parameters

fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Earliest start date by plan, counted back from the current UTC date: Free 30 days, Hobby 90 days, Professional 365 days

Response

{
  "buzz_score": 57.9,
  "trend": "rising",
  "trade_count": 2841,
  "market_count": 318,
  "current_market_count": 190,
  "unique_traders": 902,
  "total_liquidity": 1842500,
  "active_tickers": 42,
  "sentiment_score": 0.16,
  "positive_count": 134,
  "negative_count": 96,
  "neutral_count": 88,
  "bullish_pct": 42,
  "bearish_pct": 30,
  "trend_history": [48.3, 50.2, 51.9, 53.6, 55.1, 56.4, 57.9],
  "drivers": [
    { "ticker": "TSLA", "trade_count": 312, "buzz_score": 68.9, "sentiment_score": 0.28 },
    { "ticker": "AAPL", "trade_count": 287, "buzz_score": 66.3, "sentiment_score": 0.22 }
  ]
}

Response Fields

buzz_scoreRelative prediction-market heat vs. the trailing 90-day Polymarket stocks baseline (~50 is normal)
trendService-level Polymarket flow trend for current 3 UTC days vs previous 3 UTC days
trade_countTotal trade count across all matched markets in the selected window
market_countSum of per-ticker distinct markets active in the selected period
current_market_countSum of currently active markets for all tickers in the latest UTC-day snapshot
unique_tradersNumber of distinct traders contributing to the aggregate snapshot
total_liquidityTotal USD liquidity across all matched markets
active_tickersNumber of tickers active in the selected window
sentiment_scoreAverage probability-implied sentiment across all matched markets (-1 to +1)
positive_countNumber of bullish markets in the aggregate window (legacy; use bullish_pct/bearish_pct)
negative_countNumber of bearish markets in the aggregate window (legacy; use bullish_pct/bearish_pct)
neutral_countNumber of neutral markets in the aggregate window (legacy; use bullish_pct/bearish_pct)
bullish_pctPercentage of bullish markets across the whole Polymarket stocks universe
bearish_pctPercentage of bearish markets across the whole Polymarket stocks universe
trend_historyDaily aggregate buzz-score history (oldest to newest)
driversTop tickers currently driving aggregate Polymarket positioning
GET /v1/stock/{ticker}/mentions Pro

Returns raw Polymarket market snapshot rows for one ticker within the live raw-data retention window. from/to date windows are interpreted as inclusive UTC calendar dates. Use it when you need market-level evidence behind aggregate ticker metrics, original timestamps and outcome-aware price sentiment on individual rows.

Query Parameters

fromInclusive UTC start date (YYYY-MM-DD)
toInclusive UTC end date (YYYY-MM-DD). If no date window is provided, the API uses the default 7-day lookback. Professional-only raw endpoint; earliest start date, counted back from the current UTC date: 90 days
limitMaximum raw snapshot rows to return (1-100, default: 50)
offsetSkip first N raw snapshot rows for pagination (default: 0)

Response

{
  "ticker": "NVDA",
  "period_days": 7,
  "count": 1,
  "results": [
    {
      "condition_id": "0xabc...",
      "event_id": "12345",
      "market_slug": "nvda-up-or-down-on-april-20-2026",
      "question": "NVDA up or down on April 20?",
      "market_type": "up_down",
      "yes_price": 0.63,
      "no_price": 0.37,
      "liquidity": 7905.52,
      "volume_24h": 2408.43,
      "trade_count": 42,
      "buy_trades": 23,
      "sell_trades": 19,
      "unique_traders": 31,
      "sentiment_score": 0.26,
      "sentiment_label": "positive",
      "end_date": "2026-04-20T23:59:00Z",
      "active": true,
      "market_status": "tradable"
    }
  ]
}

Response Fields

tickerResolved ticker symbol
period_daysApplied raw snapshot lookback window
countTotal matching raw snapshot rows before the limit cut
resultsNewest-first Polymarket market snapshot rows for the ticker
results[].condition_idPolymarket condition id for the market
results[].event_idPolymarket event id
results[].market_slugMarket slug used on Polymarket
results[].questionOriginal market question
results[].yes_priceCurrent YES price on that stored snapshot row
results[].no_priceCurrent NO price on that stored snapshot row
results[].liquidityLiquidity captured on the raw row
results[].volume_24h24h volume captured on the raw row
results[].trade_countTrade count captured on the raw row
results[].buy_tradesBuy-side trade counter captured on the raw row
results[].sell_tradesSell-side trade counter captured on the raw row
results[].unique_tradersDistinct traders captured on the raw row, when available
results[].sentiment_scoreOutcome-aware market sentiment score for that raw row (-1 to +1)
results[].sentiment_labelSentiment class for that raw row
results[].end_dateRaw snapshot timestamp preserved from the source row
results[].activeWhether the market is currently open in the latest stored state
results[].market_statusCompact market status for the stored row: tradable, open, resolved, expired, or inactive

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 market snapshot data, commercial rights and priority support.

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 Polymarket Stock Sentiment API.

What is Polymarket prediction data?

Polymarket is a prediction market platform where traders bet real money on future events, including stock price movements. Markets like "Will TSLA close above $400?" produce probabilities backed by real capital. We aggregate these markets per ticker to generate sentiment signals.

How is sentiment calculated?

Sentiment is derived from market-implied probabilities. Current snapshots prefer the YES-token orderbook midpoint when usable bid/ask evidence exists, weighted by spread, depth, order, liquidity and trade confidence. Historical rows fall back to stored YES/NO price evidence. Scores range from -1.0 bearish to +1.0 bullish.

How is buzz score calculated?

Buzz score (0-100) is a non-directional heat score based on trades, notional value, market breadth, liquidity and participation. Buzz V3 also adds bounded heat from abs(sentiment_score) when internal market-implied sentiment evidence is present, so strong bearish and bullish conviction can both raise activity heat. Use sentiment_score for direction.

How is trend calculated?

Trend compares normalized Polymarket flow for the current 3 UTC days with the previous 3 UTC days using trades, volume, active markets, unique traders and liquidity where available. Result: rising (>+10%), falling (<-10%), or stable (within ±10%). It is prediction-market activity flow, not a stock price trend. The trend_history array remains daily buzz-score history.

How often is data updated?

Polymarket data is fetched hourly. Trend uses the current 3 UTC days vs the previous 3 UTC days, while daily history uses completed UTC days plus the current live day. 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 the market-wide sentiment snapshot and 30 days historical data. Raw mention endpoints are Professional-only. Perfect for personal projects and prototyping.

What format is the API response?

All responses are JSON (UTF-8). The /v1/stock/{ticker} endpoint returns the richest per-ticker data: trade_count, market_count, current_market_count, daily_trend, representative top_mentions with market-level buzz_score, market_status and sentiment distribution. For longer windows, top_mentions are representative examples for the selected period; use /v1/stock/{ticker}/mentions when exact retained raw market snapshots are required. Sector and country trending responses include trend_history. Use market_count for selected-period market breadth and current_market_count for live-only active markets. For a broader view, /v1/market-sentiment returns aggregate trade activity, liquidity and the tickers driving current prediction-market positioning.

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. Monthly quota headers, including X-RateLimit-Remaining-Monthly and X-RateLimit-Reset-Monthly, are included in protected responses. Exceeding limits returns HTTP 429.

Why is prediction market data valuable?

Unlike social sentiment (Reddit, X), prediction market prices are backed by real money. Traders have "skin in the game," making probabilities more calibrated than opinion-based signals. This produces higher-conviction, lower-noise sentiment data.

Can I use this for trading decisions?

Our data is for informational purposes only. Prediction market probabilities reflect collective trader expectations, not guaranteed outcomes. Many traders use this as one signal among many. Past prediction market sentiment is not indicative of future performance. Always do your own research.

Enterprise
Built for teams running Adanos in production

Scaling across a team takes more than a higher request cap. Tell us how you consume the data and we will set up volume access, custom feeds and the support your workflows depend on.

View Pricing