Esports consensus odds.
Fair lines, gated edges.

De-vig Thunderpick, Kalshi, and Polymarket into one fair probability per outcome. Surface only edges that clear liquidity and agreement gates — GET /v6/esports/{sport}/lines.

Why consensus odds beat a single book

If you searched for fair esports odds, prediction-market priors, or a Kalshi + Polymarket + sportsbook join — this is the product. Not another scrape. A consensus layer.

One venue is not a fair price

A single sportsbook or DFS board can lag, shade, or thin out. Models that anchor to one feed inherit that bias and call it edge.

Prediction markets and books do not share a schema

Kalshi and Polymarket speak probability. Thunderpick speaks American. Without de-vig and join keys, you cannot build a real consensus.

Raw edge spam is noise

Huge gaps usually mean bad joins, dead liquidity, or two-source accidents — not alpha. Ungated feeds train models on garbage.

How KashRock builds consensus

Workers keep venue boards warm. The /lines request reads Redis, joins matchups, de-vigs, and ranks — no live upstream fan-out on the call path.

De-vig + weighted consensus

Each venue is normalized to probabilities that sum to 1.0. Consensus is a weighted mean (prediction markets default weight 1.5).

Hard quality gates

Liquidity floors, ≥3 sources for top_edges, disagreement ≤12 pts, raw edge ≤8%. Ranked by confidence × liquidity × edge.

One route, four markets

match_winner, map_winner, total_maps, and map_handicap on GET /v6/esports/{sport}/lines — CS2, Valorant, LoL, Dota 2.

Call consensus in one request

Hobby key or higher. Response includes full events with quality flags plus a gated top_edges feed.

curl -H "X-API-Key: YOUR_KEY" \
  "https://kashrock.up.railway.app/v6/esports/cs2/lines?market=match_winner"

Venue pages: Thunderpick, Kalshi, Polymarket. Cross-book props: esports odds API. Field reference: /docs/endpoints/lines.

Frequently asked questions

What is an esports consensus odds API?

It turns multiple venues into one fair probability per outcome. KashRock de-vigs Thunderpick sportsbook prices plus Kalshi and Polymarket prediction-market prices, then returns a weighted consensus and edge vs that fair number.

Which endpoint returns consensus lines?

GET /v6/esports/{sport}/lines. Pass market=match_winner, map_winner, total_maps, or map_handicap. Hobby plan or higher.

How is consensus calculated?

Each source is de-vigged so outcomes sum to 1.0. Consensus is a weighted mean — prediction markets default to weight 1.5 vs the sportsbook. Edge is consensus × decimal − 1 (informational EV, not betting advice).

Why mix sportsbooks and prediction markets?

A single book can be stale or skewed. Kalshi and Polymarket are probability-priced; Thunderpick is a live sportsbook. Together they reduce single-venue bias and calibrate models better than one scrape.

What quality gates keep bad edges out?

Liquidity floors on Kalshi and Polymarket, at least three sources for top_edges, max disagreement of 12 points, and raw edge capped at 8%. Ranking uses confidence × liquidity × edge — not raw edge alone.

Is there a free tier for /lines?

Sandbox cannot call /lines. Hobby and up can. Start free on props, then upgrade to Hobby for consensus.