Skip to main content
Markets are individual tradeable contracts listed on a prediction market platform. While events represent real-world questions, markets are the specific instruments you can buy and sell.

What is a venue market?

A venue market is a single tradeable contract on either Kalshi or Polymarket. Each market belongs to an event and has its own pricing, volume, and liquidity data. For example, the event “Super Bowl LIX 2025” might have these markets:
  • “Kansas City Chiefs to win” (on Kalshi)
  • “Chiefs win Super Bowl?” (on Polymarket)
  • “Philadelphia Eagles to win” (on Kalshi)
  • “Eagles win Super Bowl?” (on Polymarket)
  • “Super Bowl MVP - Patrick Mahomes” (on Kalshi)
{
  "venue": "kalshi",
  "venue_market_id": "SUPERBOWL-2025-KC",
  "venue_event_id": "SUPERBOWL-2025",
  "pear_event_id": "pear_3f8a1b2c",
  "title": "Kansas City Chiefs to win Super Bowl LIX",
  "description": "Resolves Yes if the Kansas City Chiefs win Super Bowl LIX.",
  "market_slug": "chiefs-win-superbowl-lix",
  "outcomes": ["Yes", "No"],
  "status": "active",
  "end_date_iso": "2025-02-10T00:00:00Z",
  "best_bid": 0.62,
  "best_ask": 0.64,
  "mid_price": 0.63,
  "spread": 0.02,
  "volume": 1845230,
  "volume_24h": 234500,
  "open_interest": 892100,
  "liquidity": 156000,
  "icon_url": null,
  "image_url": "https://example.com/images/chiefs.png"
}

Pricing fields

All prices are on a 0 to 1 scale, where 1.00 represents $1.00 (or 100% probability). Here is what each pricing field means:
FieldDescriptionExample
best_bidHighest price someone is willing to pay (buy).0.62
best_askLowest price someone is willing to sell at.0.64
mid_priceAverage of best bid and best ask. Often used as the market’s implied probability.0.63
spreadDifference between best ask and best bid. Lower spreads mean better liquidity.0.02
A mid_price of 0.63 on a Yes/No market means the market implies a 63% probability that the outcome will be “Yes.”

How to interpret prices

  • Tight spread (0.01-0.02): Well-traded market with good liquidity. Prices are more reliable.
  • Wide spread (0.05+): Less liquid market. The true probability likely falls somewhere between bid and ask.
  • No spread data (null): The market may be newly listed or have no active orders.

Volume and liquidity fields

FieldDescriptionExample
volumeTotal cumulative trading volume since the market opened.1,845,230
volume_24hTrading volume in the last 24 hours. Indicates current market activity.234,500
open_interestTotal number of outstanding (unsettled) contracts.892,100
liquidityTotal value available in the order book. Higher liquidity means easier execution.156,000
Use min_volume and min_liquidity filters on the /api/markets endpoint to exclude thin or inactive markets from your results.

Market status

StatusDescription
activeTrading is open. Prices and volume are being updated.
closedTrading has ended, but the market has not yet resolved.
resolvedThe outcome is determined and payouts have been (or are being) settled.

Fetching markets

By event

Get all markets for a specific event:
curl "http://localhost:8000/api/events/super-bowl-lix-2025/markets" \
  -H "Authorization: Bearer mk_live_..."
Filter by venue to see only one platform’s markets:
curl "http://localhost:8000/api/events/super-bowl-lix-2025/markets?venue=polymarket" \
  -H "Authorization: Bearer mk_live_..."

By direct lookup

Get a specific market by venue and ID:
curl "http://localhost:8000/api/markets/kalshi/SUPERBOWL-2025-KC" \
  -H "Authorization: Bearer mk_live_..."

By listing with filters

Browse all markets with optional filters:
# Active Polymarket markets with at least $10K volume
curl "http://localhost:8000/api/markets?venue=polymarket&status=active&min_volume=10000&limit=20" \
  -H "Authorization: Bearer mk_live_..."

Markets and events

Every venue market is linked to a Pear event through the pear_event_id field. Use this to:
  • Group markets by event for a unified view
  • Find the same question on different platforms
  • Compare pricing across venues for the same outcome
# Get an event's markets and compare pricing across venues
response = requests.get(
    "http://localhost:8000/api/events/bitcoin-100k-2025",
    headers={"Authorization": "Bearer mk_live_..."}
)
event = response.json()

for market in event["markets"]:
    print(f"{market['venue']}: mid_price={market['mid_price']}, "
          f"spread={market['spread']}, volume={market['volume']}")
For systematic cross-platform analysis, see the Comparisons guide.