Prediction market API.
Kalshi + Polymarket, one esports schema.
Prediction markets price outcomes in probability space. Sportsbooks price them in odds. If you scrape each venue separately, you rebuild de-vig and team identity forever. A prediction market API for esports should hand you normalized probabilities — and a consensus path when you want books and markets in one response.
Why prediction markets need a schema
Kalshi and Polymarket do not share team strings, contract IDs, or probability conventions with Thunderpick. Without a schema, every model rebuilds de-vig and fuzzy name matching.
Practical rule: treat prediction-market probabilities as first-class inputs — convert sportsbook odds to the same de-vigged space before you average anything.
What we normalize
We normalize match/map mainlines into a common outcome list with per-source probability, American/decimal where available, and volume/OI/liquidity fields when the venue provides them (null when not — never invented).
Props board vs consensus lines
/props?book=kalshi|polymarket is the venue board. /lines is the cross-venue consensus layer (Hobby+).
Core endpoints
Sport path-style routes under /v6/esports/{sport}/. Same auth header as the rest of KashRock.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v6/esports/{sport}/lines | Consensus + per-source probs (Hobby+) | sport path: cs2, lol, … |
| GET /v6/esports/{sport}/props?book=kalshi | Kalshi board as normalized props | book=kalshi |
| GET /v6/esports/{sport}/props?book=polymarket | Polymarket board as normalized props | book=polymarket |
| GET /v6/esports/cs2/props?book=thunderpick | Sportsbook mainlines | book=thunderpick |
Identity and join keys
- —event_id / matchup_key for series joins across venues
- —outcome name normalized for consensus buckets
- —source + type (prediction_market vs sportsbook)
Sample JSON (live Kalshi + Polymarket)
Live CS2 match_winner slice with both Kalshi and Polymarket on the same event (from /v6/esports/cs2/lines).
| Field | Example | Used for |
|---|---|---|
| outcomes[].consensus_probability | 0.61156 | De-vig weighted mean |
| sources[].source | kalshi / polymarket | Venue |
| sources[].type | prediction_market | Venue class |
| sources[].probability | 0.6154 | De-vigged source prob |
| sources[].american | -160 | American quote when present |
| top_edges[].edge_pct | 1.33 | Informational EV vs consensus |
{
"source": "kashrock",
"sport": "cs2",
"event_id": "kr_ev_4209ed58edd7",
"home_team": "NRG Esports",
"away_team": "Liquid",
"market": "match_winner",
"outcomes": [
{
"name": "team liquid",
"consensus_probability": 0.61156,
"sources": [
{
"source": "kalshi",
"type": "prediction_market",
"probability": 0.6154,
"american": -160
},
{
"source": "polymarket",
"type": "prediction_market",
"probability": 0.605,
"american": -153
}
]
},
{
"name": "nrg",
"consensus_probability": 0.38844,
"sources": [
{
"source": "kalshi",
"type": "prediction_market",
"probability": 0.3802,
"american": 163
},
{
"source": "polymarket",
"type": "prediction_market",
"probability": 0.395,
"american": 153
}
]
}
]
}Markets vs sportsbooks
Prediction markets for crowd/exchange probability. Sportsbooks for traditional prices. Consensus when you want both without maintaining three clients.
| Source | Schema | Best use |
|---|---|---|
| Raw Kalshi / Polymarket APIs | Venue-native | Single-market bots |
| Sportsbook-only odds API | No PM probs | Book shopping |
| KashRock prediction market API | PM + book, one schema | Calibration & consensus |
Using consensus responsibly
Consensus edge fields are informational. Quality flags (unreliable, suspect_edge) exist so you can drop noisy prints — not so you can treat every edge as a bet.
Practical rule: settle outcomes from finalized match results, not from a live probability tick.
Operational practices
- —Prefer /lines for multi-venue reads (one request)
- —Null liquidity/OI means the venue did not publish it
- —Hobby+ required for /lines; props boards follow plan gates
Quick reference
Board: /props?book=kalshi or polymarket. Consensus: /lines. Deep dive: esports consensus API.
If you need a normalized feed instead of another UI wrapper, KashRock exposes live boards, schedules, and history on one schema — with the IDs and outcome patterns that keep backtests and grading honest. Start free on Sandbox, or see published pricing.