Data Types

Prediction Markets

Prediction market platforms are identified by their bookmakerID — the same parameter used across the API. Pass one or more as a comma-separated list to filter results to specific platforms.

Supported Platforms

KalshibookmakerID=kalshi

US-regulated prediction market exchange. CFTC-regulated. Covers politics, economics, weather, finance, and more.

politicseconomicsweatherfinancescience
PolymarketbookmakerID=polymarket

Decentralised prediction market on the Polygon blockchain. Broad coverage across global news and events.

politicscryptosciencesportsworld
NovigbookmakerID=novig

No-vig prediction exchange focused on removing the house edge. Tight markets on major events.

politicseconomicsfinance

Filtering by Platform

Use the bookmakerID parameter to target one or more platforms:

# Single platform
/v2/events?bookmakerID=kalshi&oddsAvailable=true

# Multiple platforms
/v2/events?bookmakerID=kalshi,polymarket&oddsAvailable=true

# All three platforms
/v2/events?bookmakerID=kalshi,polymarket,novig&oddsAvailable=true

Event Response Structure

Each event object contains an odds field keyed by oddID, with per-platform prices nested under byBookmaker:

{
  "eventID": "WILL_FED_CUT_RATES_JUNE_2025_KALSHI",
  "leagueID": "KALSHI_ECONOMICS",
  "status": { "started": false, "ended": false },
  "odds": {
    "probability-home-game-ml-yes": {
      "oddID": "probability-home-game-ml-yes",
      "fairOdds": "+185",
      "bookOdds": "+180",
      "byBookmaker": {
        "kalshi":     { "odds": "+180", "available": true },
        "polymarket": { "odds": "+190", "available": true }
      }
    },
    "probability-home-game-ml-no": {
      "oddID": "probability-home-game-ml-no",
      "fairOdds": "-220",
      "bookOdds": "-225",
      "byBookmaker": {
        "kalshi":     { "odds": "-220", "available": true },
        "polymarket": { "odds": "-230", "available": true }
      }
    }
  }
}

Fetching Specific Markets with oddIDs

Use the oddIDs parameter to return only the markets you need, keeping payloads small:

# Fetch only the yes/no sides
/v2/events?bookmakerID=kalshi&oddIDs=probability-home-game-ml-yes,probability-home-game-ml-no

# Use includeOpposingOdds=true to get both sides automatically
/v2/events?bookmakerID=kalshi&oddIDs=probability-home-game-ml-yes&includeOpposingOdds=true

Need a platform not listed here? Contact us and we'll discuss adding it.