Live metricsFundamentals
Pantera Research LabPantera Research Lab built its study “Crypto on the Clock” on Surf prediction-market dataRead the study ↗

Fundamentals

The venue-level state of prediction markets across Polymarket & Kalshi — headline numbers, volume, open interest, activity, and fees, plus the live market board.

The only API that matches Polymarket and Kalshi markets to each other — with the spread, the depth history, and the smart money behind every price.

Pulse

The state of the market at a glance — headline numbers right now, and each venue's latest day, 7-day, and 30-day totals on one board.

24h Notional Volume
Open Interest
30d Notional Volume
Resolved Outcomes Scored
fetching…
Get the pulse dataFetch the live venue metrics and the scored-outcome count shown above.View requestHide request
2 cURL requestsPublic data
curl -s "https://api.asksurf.ai/gateway/v1/prediction-market/analytics" \
+  -H "Authorization: Bearer $SURF_API_KEY"

curl -s "$ORIGIN/api/pm/precompute/accuracy-by-venue"
The analytics response powers the first three tiles. The second request returns the exact scored-outcome snapshot used by tile four and needs no API key.

Venue Scoreboard

Latest, 7d and 30d performance by venue
SNAPSHOT

Volume

Weekly traded volume and matched trades across both venues since 2024 — with the sports flow stripped out, and each category's venue split.

Spot Volume

Weekly traded volume by venue, since 2024
onchain/sql
Run the source queryQuery the public warehouse data behind this chart.View requestHide request
Public SQL APISurf API key
curl -s -X POST "https://api.asksurf.ai/gateway/v1/onchain/sql" \
  -H "Authorization: Bearer $SURF_API_KEY" -H "Content-Type: application/json" \
  -d "{\"max_rows\":2000,\"sql\":\"SELECT toStartOfWeek(date) AS week, source, round(sum(notional_volume_usd)) AS volume_usd FROM agent.prediction_markets_daily GROUP BY week, source ORDER BY week\"}"
Returns weekly rows for both venues. This chart displays the series from 2024 onward.
PolymarketKalshi

Spot Transactions

Weekly matched trades by venue — Polymarket on-chain fills, Kalshi exchange fills
onchain/sql
Run the source queryQuery the public warehouse data behind this chart.View requestHide request
Public SQL APISurf API key
curl -s -X POST "https://api.asksurf.ai/gateway/v1/onchain/sql" \
  -H "Authorization: Bearer $SURF_API_KEY" -H "Content-Type: application/json" \
  -d "{\"max_rows\":2000,\"sql\":\"SELECT toStartOfWeek(block_date) AS week, sum(trade_count) AS trades FROM agent.polymarket_volume_daily GROUP BY week ORDER BY week\"}"

curl -s -X POST "https://api.asksurf.ai/gateway/v1/onchain/sql" \
  -H "Authorization: Bearer $SURF_API_KEY" -H "Content-Type: application/json" \
  -d "{\"max_rows\":2000,\"sql\":\"SELECT toStartOfWeek(created_time) AS week, count() AS trades FROM agent.kalshi_trades GROUP BY week ORDER BY week\"}"
Run both queries, align the results by week, then stack the two trade-count series.
PolymarketKalshi

Volume Without Sports

Weekly notional volume excluding the Sports category — the non-sports business
onchain/sql
Run the source queryQuery the public warehouse data behind this chart.View requestHide request
Public SQL APISurf API key
curl -s -X POST "https://api.asksurf.ai/gateway/v1/onchain/sql" \
  -H "Authorization: Bearer $SURF_API_KEY" -H "Content-Type: application/json" \
  -d "{\"max_rows\":2000,\"sql\":\"SELECT toStartOfWeek(date) AS week, source, round(sum(notional_volume_usd)) AS volume_usd FROM agent.prediction_markets_daily WHERE category != 'Sports' GROUP BY week, source ORDER BY week\"}"
Returns weekly volume for both venues after removing the Sports category.
PolymarketKalshi

Venue Share by Category

Weekly volume share, Polymarket vs Kalshi — Crypto
onchain/sql
Run the source queryQuery the public warehouse data behind this chart.View requestHide request
Public SQL APISurf API key
curl -s -X POST "https://api.asksurf.ai/gateway/v1/onchain/sql" \
  -H "Authorization: Bearer $SURF_API_KEY" -H "Content-Type: application/json" \
  -d "{\"max_rows\":2000,\"sql\":\"SELECT toStartOfWeek(date) AS week, source, round(sum(notional_volume_usd)) AS volume_usd FROM agent.prediction_markets_daily WHERE category = 'Crypto' GROUP BY week, source ORDER BY week\"}"
Change the category in WHERE to Crypto, Politics, Sports, Economics, Financials, Culture, or STEM.
PolymarketKalshi

Open interest

Money locked in open positions — daily by venue over the trailing year, and weekly with sports stripped out.

Open Interest by Venue

End-of-day open interest per venue · trailing 365d · drag the timeline below the chart to zoom
SNAPSHOT
PolymarketKalshi

Open Interest Without Sports

Open interest excluding Sports, measured at each week's end
onchain/sql
Run the source queryQuery the public warehouse data behind this chart.View requestHide request
Public SQL APISurf API key
curl -s -X POST "https://api.asksurf.ai/gateway/v1/onchain/sql" \
  -H "Authorization: Bearer $SURF_API_KEY" -H "Content-Type: application/json" \
  -d "{\"max_rows\":2000,\"sql\":\"SELECT toStartOfWeek(date) AS week, source, round(argMax(oi, date)) AS open_interest_usd FROM (SELECT date, source, sum(open_interest_usd) AS oi FROM agent.prediction_markets_daily WHERE category != 'Sports' GROUP BY date, source) GROUP BY week, source ORDER BY week\"}"
Open interest is a level: the query takes each week's last daily value instead of summing across days.
PolymarketKalshi

Activity, markets & fees

Who's active and what's tradable — daily active wallets and trades, markets that actually traded, and Polymarket's fee revenue.

Activity: Traders & Trades

Daily active wallets (Polymarket) and daily trades per venue
SNAPSHOT
Active wallets
Daily trades
PolymarketKalshi

Actively Traded Markets

Distinct markets with ≥1 trade that day, per venue · independent panels & scales · trailing 365d
SNAPSHOT

The Fee Switch

Daily protocol fee revenue + cumulative since the switch · Polymarket only
SNAPSHOT
Daily feesCumulative

Live market board

The highest-volume markets live on both venues right now.

Top Markets Now

Top markets by 24h volume
prediction-market/analytics
Get the market board dataFetch the live markets returned by the public analytics API.View requestHide request
Public APISurf API key
curl -s "https://api.asksurf.ai/gateway/v1/prediction-market/analytics" \
  -H "Authorization: Bearer $SURF_API_KEY"
Read data.top_markets[]. This board keeps markets with a current price, a 5–95¢ probability, and at least $100K of 24-hour volume.
Builders

Ship it on Surf's live API

The same tables and endpoints this page runs on — free tier, no card required.

API docs ↗
Funds & desks

Need a data feed, not a demo?

Talk to us about enterprise access, custom pipelines, and SLAs.

Talk to us