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.
| # | Ticker | Company | Buzz | Trades | Sentiment | Trend |
|---|---|---|---|---|---|---|
| Loading trending stocks... | ||||||
The Trending API lets developers and traders retrieve all trending tickers, sectors & countries from Polymarket. See the full Polymarket Top 50 Stocks ranking. Need headline coverage alongside market-implied signals? Compare it with the Stock News Sentiment API.
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.
Hundreds of stock-related contracts across Polymarket. No unified view of which tickers are active.
Individual market probabilities lack context. You need aggregated sentiment across all contracts for a ticker.
You need a single score to compare $TSLA prediction activity vs $NVDA objectively.
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.
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.
Unlike social sentiment, prediction market prices are backed by real money. Higher conviction, less noise.
Trades, notional flow, breadth, liquidity, participation and high-confidence market-implied sentiment combined into one non-directional 0-100 heat score.
RESTful JSON API. All listed endpoints require authentication via X-API-Key. View full documentation → · BuzzScore Whitepaper →
https://api.adanos.org/polymarket/stocks
X-API-Key: sk_live_...
/v1/trending
Returns trending stocks based on Polymarket market activity, ranked by buzz score.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
type | Filter by asset type: stock, etf, or all (default: all) |
[
{
"ticker": "TSLA",
"company_name": "Tesla, Inc.",
"buzz_score": 71.4,
"trend": "rising",
"trade_count": 312,
"market_count": 27,
"current_market_count": 12,
"unique_traders": 119,
"sentiment_score": 0.34,
"bullish_pct": 67,
"bearish_pct": 33,
"total_liquidity": 94750,
"trend_history": [48.2, 51.0, 55.3, 61.1, 65.8, 69.2, 71.4]
}
]
ticker | Stock ticker symbol |
company_name | Company name (null if not found) |
buzz_score | Buzz score (0-100) |
trend | rising, falling, or stable flow trend for current 3 UTC days vs previous 3 UTC days |
trade_count | Total trade count for this ticker in the selected period |
market_count | Distinct markets active for this ticker in the selected period |
current_market_count | Currently active markets for this ticker in the latest UTC-day snapshot |
unique_traders | Unique traders in the selected period (nullable) |
sentiment_score | Implied sentiment (-1 to +1) |
bullish_pct | Share of markets with YES price > 0.5 |
bearish_pct | Share of markets with YES price < 0.5 |
total_liquidity | Total liquidity in USD across markets for this ticker |
trend_history | Daily buzz scores (oldest to newest) for the selected window (minimum 7 days) |
/v1/trending/sectors
Returns sector-level aggregation for Polymarket stocks, ranked by buzz score.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
[
{
"sector": "Technology",
"buzz_score": 72.8,
"trend": "rising",
"trend_history": [40.2, 45.6, 51.9, 58.4, 64.1, 69.5, 72.8],
"trade_count": 312,
"market_count": 147,
"current_market_count": 71,
"unique_tickers": 6,
"unique_traders": 211,
"sentiment_score": 0.22,
"bullish_pct": 61,
"bearish_pct": 39,
"top_tickers": ["AAPL", "MSFT", "NVDA", "TSLA", "AMD"],
"total_liquidity": 325000
}
]
sector | Industry sector name |
buzz_score | Aggregated buzz score (0-100) |
trend | Sector prediction-market flow trend for current 3 UTC days vs previous 3 UTC days |
trend_history | Daily sector buzz-score history, oldest to newest, for the selected window (minimum 7 days) |
trade_count | Total trade count in the selected period |
market_count | Sum of per-ticker distinct markets active in the selected period for this sector |
current_market_count | Sum of currently active markets for sector tickers in the latest UTC-day snapshot |
unique_tickers | Number of unique tickers in the sector |
unique_traders | Unique traders in the selected period (nullable) |
sentiment_score | Weighted implied sentiment (-1 to +1) |
bullish_pct | Bullish market share |
bearish_pct | Bearish market share |
top_tickers | Top 5 tickers by trade_count |
total_liquidity | Total liquidity across the sector (USD) |
/v1/trending/countries
Returns country-level aggregation for Polymarket stocks, ranked by buzz score.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
limit | Maximum results (1-100, default: 20) |
offset | Skip first N results for pagination (default: 0) |
[
{
"country": "United States",
"buzz_score": 70.1,
"trend": "stable",
"trend_history": [66.8, 68.2, 69.4, 70.8, 69.9, 70.5, 70.1],
"trade_count": 712,
"market_count": 265,
"current_market_count": 129,
"unique_tickers": 10,
"unique_traders": 402,
"sentiment_score": 0.18,
"bullish_pct": 58,
"bearish_pct": 42,
"top_tickers": ["AAPL", "TSLA", "NVDA", "AMZN", "GOOGL"],
"total_liquidity": 472000
}
]
country | Country name |
buzz_score | Aggregated buzz score (0-100) |
trend | Country prediction-market flow trend for current 3 UTC days vs previous 3 UTC days |
trend_history | Daily country buzz-score history, oldest to newest, for the selected window (minimum 7 days) |
trade_count | Total trade count in the selected period |
market_count | Sum of per-ticker distinct markets active in the selected period for this country dimension |
current_market_count | Sum of currently active markets for country tickers in the latest UTC-day snapshot |
unique_tickers | Number of unique tickers in the country aggregation |
unique_traders | Unique traders in the selected period (nullable) |
sentiment_score | Weighted implied sentiment (-1 to +1) |
bullish_pct | Bullish market share |
bearish_pct | Bearish market share |
top_tickers | Top 5 tickers by trade_count |
total_liquidity | Total liquidity across the country dimension (USD) |
/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.
ticker | Stock ticker symbol (^\\$?[A-Za-z]{1,10}$, e.g., TSLA, aapl, $GME) |
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
{
"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"
}
}
}
ticker | Stock ticker symbol |
company_name | Company name (null if not found) |
found | Whether prediction markets were found for this ticker |
buzz_score | Buzz score (0-100, null if not found) |
trend | Stock prediction-market flow trend for current 3 UTC days vs previous 3 UTC days |
period_days | Analysis period in days |
trade_count | Total trade count in the selected period (nullable) |
market_count | Distinct markets active for the ticker in the selected period (nullable) |
current_market_count | Currently active markets for the ticker in the latest UTC-day snapshot (nullable) |
unique_traders | Unique traders in the selected period (nullable) |
sentiment_score | Market-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_pct | Percentage implied bullish |
bearish_pct | Percentage implied bearish |
positive_count | Markets with YES price > 0.5 (nullable) (legacy; use bullish_pct/bearish_pct) |
negative_count | Markets with YES price < 0.5 (nullable) (legacy; use bullish_pct/bearish_pct) |
neutral_count | Markets near YES price 0.5 (nullable) (legacy; use bullish_pct/bearish_pct) |
total_liquidity | Total USD liquidity across all markets |
daily_trend | Array of daily data with date, trade_count, sentiment_score, buzz_score, bullish_pct and bearish_pct (nullable) |
top_mentions | Representative top prediction markets for the selected period, preferring current snapshot-backed markets when available |
top_mentions[].question | Market question (e.g., "Will TSLA close above $400?") |
top_mentions[].trade_count | 24h trade count for the market (nullable) |
top_mentions[].sentiment_score | Market-level sentiment signal (nullable) |
top_mentions[].buzz_score | Market-level buzz score for this market snapshot (nullable) |
top_mentions[].yes_price | YES probability (0-1) |
top_mentions[].no_price | NO probability (0-1) |
top_mentions[].liquidity | Market liquidity in USD |
top_mentions[].volume_24h | Market 24h volume in USD |
top_mentions[].end_date | Market expiration date |
top_mentions[].active | Whether the representative market state is open |
top_mentions[].market_status | Compact market status: tradable, open, resolved, expired, or inactive |
pulse | Compact 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. |
401 | Missing or invalid API key |
403 | Historical data limit exceeded for the current plan |
429 | Rate limit exceeded |
/v1/search
Search ticker metadata and enrich results with Polymarket discovery metrics. Search accepts only q and limit; summary metrics use a fixed last 7 UTC calendar days window.
q | Search query (ticker or company name, required) |
limit | Maximum result count (1-50, default: 20) |
{
"query": "tesla",
"count": 1,
"period_days": 7,
"results": [
{
"ticker": "TSLA",
"name": "Tesla Inc.",
"type": "Stock",
"exchange": "NASDAQ",
"sector": "Consumer Discretionary",
"country": "United States",
"aliases": ["Tesla", "Elon"],
"summary": {
"trade_count": 14,
"buzz_score": 71.4,
"trend": "rising",
"sentiment_score": 0.34
}
}
]
}
query | Original search query |
count | Number of results found |
period_days | Fixed 7 UTC calendar-day lookback used for each summary block |
results | Array of matching stocks |
results[].ticker | Stock ticker symbol |
results[].name | Company name |
results[].type | Asset type (e.g., Stock, ETF) |
results[].exchange | Exchange (e.g., NASDAQ, NYSE) |
results[].sector | Industry sector |
results[].country | Country of headquarters |
results[].aliases | Alternative names/aliases |
results[].summary | Compact Polymarket discovery summary for the fixed last 7 UTC calendar days |
results[].summary.trade_count | Trade count in the last 7 UTC calendar days |
results[].summary.buzz_score | Buzz score over the last 7 UTC calendar days |
results[].summary.trend | Polymarket flow trend over current 3 UTC days vs previous 3 UTC days |
results[].summary.sentiment_score | Probability-implied sentiment over the last 7 UTC calendar days |
/v1/compare
Compare up to 10 stocks side-by-side on Polymarket metrics.
tickers | Comma-separated list of tickers (max 10, required) |
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
{
"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
}
]
}
period_days | Analysis period in days |
stocks | Array of stock comparison data |
stocks[].ticker | Stock ticker symbol |
stocks[].company_name | Company name (null if not found) |
stocks[].buzz_score | Overall buzz score (0-100) |
stocks[].trend | Stock prediction-market flow trend for current 3 UTC days vs previous 3 UTC days |
stocks[].trade_count | Total trade count in the selected period |
stocks[].market_count | Distinct markets active in the selected period |
stocks[].current_market_count | Currently active markets in the latest UTC-day snapshot |
stocks[].unique_traders | Unique traders in the selected period (nullable) |
stocks[].sentiment_score | Probability-implied sentiment (-1 to +1) |
stocks[].bullish_pct | Percentage of bullish markets |
stocks[].bearish_pct | Percentage of bearish markets |
stocks[].total_liquidity | Total USD liquidity |
400 | Maximum 10 tickers allowed |
401 | Missing or invalid API key |
403 | Historical data limit exceeded for the current plan |
429 | Rate limit exceeded |
/v1/market-sentiment
Returns a market-wide Polymarket snapshot with aggregate trade activity, liquidity, sentiment balance and the tickers currently driving prediction-market positioning.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
{
"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 }
]
}
buzz_score | Relative prediction-market heat vs. the trailing 90-day Polymarket stocks baseline (~50 is normal) |
trend | Service-level Polymarket flow trend for current 3 UTC days vs previous 3 UTC days |
trade_count | Total trade count across all matched markets in the selected window |
market_count | Sum of per-ticker distinct markets active in the selected period |
current_market_count | Sum of currently active markets for all tickers in the latest UTC-day snapshot |
unique_traders | Number of distinct traders contributing to the aggregate snapshot |
total_liquidity | Total USD liquidity across all matched markets |
active_tickers | Number of tickers active in the selected window |
sentiment_score | Average probability-implied sentiment across all matched markets (-1 to +1) |
positive_count | Number of bullish markets in the aggregate window (legacy; use bullish_pct/bearish_pct) |
negative_count | Number of bearish markets in the aggregate window (legacy; use bullish_pct/bearish_pct) |
neutral_count | Number of neutral markets in the aggregate window (legacy; use bullish_pct/bearish_pct) |
bullish_pct | Percentage of bullish markets across the whole Polymarket stocks universe |
bearish_pct | Percentage of bearish markets across the whole Polymarket stocks universe |
trend_history | Daily aggregate buzz-score history (oldest to newest) |
drivers | Top tickers currently driving aggregate Polymarket positioning |
/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.
from | Inclusive UTC start date (YYYY-MM-DD) |
to | Inclusive 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 |
limit | Maximum raw snapshot rows to return (1-100, default: 50) |
offset | Skip first N raw snapshot rows for pagination (default: 0) |
{
"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"
}
]
}
ticker | Resolved ticker symbol |
period_days | Applied raw snapshot lookback window |
count | Total matching raw snapshot rows before the limit cut |
results | Newest-first Polymarket market snapshot rows for the ticker |
results[].condition_id | Polymarket condition id for the market |
results[].event_id | Polymarket event id |
results[].market_slug | Market slug used on Polymarket |
results[].question | Original market question |
results[].yes_price | Current YES price on that stored snapshot row |
results[].no_price | Current NO price on that stored snapshot row |
results[].liquidity | Liquidity captured on the raw row |
results[].volume_24h | 24h volume captured on the raw row |
results[].trade_count | Trade count captured on the raw row |
results[].buy_trades | Buy-side trade counter captured on the raw row |
results[].sell_trades | Sell-side trade counter captured on the raw row |
results[].unique_traders | Distinct traders captured on the raw row, when available |
results[].sentiment_score | Outcome-aware market sentiment score for that raw row (-1 to +1) |
results[].sentiment_label | Sentiment class for that raw row |
results[].end_date | Raw snapshot timestamp preserved from the source row |
results[].active | Whether the market is currently open in the latest stored state |
results[].market_status | Compact market status for the stored row: tradable, open, resolved, expired, or inactive |
401 | Missing or invalid API key |
403 | Professional plan required for raw mention access |
422 | Invalid ticker or query parameter |
All plans share the same base API. Professional adds raw market snapshot data, commercial rights and priority support.
Perfect for quick tests, API exploration and early prototypes. No credit card required.
For professional traders, personal trading bots, academic research & side projects
For hedge funds, fintech startups, trading platforms & commercial applications
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 →
Everything you need to know about the Polymarket Stock Sentiment API.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.