Getting Started
Quickstart
Fetch live prediction market data in under 5 minutes.
1
Get Your API Key
- Sign up at the pricing page
- Check your email for your API key
- Copy your API key — you'll need it in the next step
2
Fetch Live Prediction Markets
The simplest request — fetch open events from Kalshi and Polymarket:
Browser / curl
https://api.sportsgameodds.com/v2/events?apiKey=YOUR_API_KEY&bookmakerID=kalshi,polymarket&oddsAvailable=true&limit=10JavaScript
fetch("https://api.sportsgameodds.com/v2/events?bookmakerID=kalshi,polymarket&oddsAvailable=true&limit=10", {
headers: { "x-api-key": "YOUR_API_KEY" },
})
.then((res) => res.json())
.then((data) => console.log(data));Python
import requests
response = requests.get(
"https://api.sportsgameodds.com/v2/events",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"bookmakerID": "kalshi,polymarket",
"oddsAvailable": "true",
"limit": 10
}
)
print(response.json())3
Inspect the Response
A successful response looks like this:
{
"success": true,
"data": [
{
"eventID": "WILL_FED_CUT_RATES_JUNE_2025_KALSHI",
"leagueID": "KALSHI_ECONOMICS",
"status": {
"started": false,
"ended": false,
"startsAt": "2025-06-18T18:00:00Z"
},
"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 }
}
}
}
}
]
}4
Filter by Platform or Specific Markets
Use bookmakerID to target specific platforms, and oddIDs to fetch only the markets you care about:
# Only Kalshi, with odds available
/v2/events?bookmakerID=kalshi&oddsAvailable=true&limit=20
# Only Polymarket
/v2/events?bookmakerID=polymarket&oddsAvailable=true&limit=20
# Kalshi + Novig, specific oddID markets only
/v2/events?bookmakerID=kalshi,novig&oddIDs=probability-home-game-ml-yes,probability-home-game-ml-no&limit=20
# Resolved events for backtesting
/v2/events?bookmakerID=kalshi&finalized=true&limit=1005
Understanding oddIDs
Every odds market is identified by an oddID in this format:
{statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID}
# Example — yes side of a binary prediction market:
probability-home-game-ml-yes
# Example — no side:
probability-home-game-ml-noUse the oddIDs parameter to request only specific markets and keep response payloads small and fast.