Esports API.
Props & odds across 9 titles, 25 books.

What is the KashRock esports API?

The KashRock esports API returns matches, live scores, player stats, odds and DFS props for nine titles (CS2, Valorant, League of Legends, Dota 2, Call of Duty, Rainbow Six, Mobile Legends, Deadlock and Apex Legends) over REST, an SDK and MCP. Every match, team, player and prop keeps one permanent KashRock ID, so data from different sources joins cleanly. A free Sandbox key gives 500 requests a day with no card, and paid plans run from $29 to $199 a month.

You needEndpointWhat comes back
Schedule and resultsGET /v6/esports/{sport}/matchesUpcoming, live and finished matches, each with a kr_match_id
Final score and map resultsGET /v6/esports/{sport}/matches/{slug}/boxscoreSeries score, map results and player stats for a finished match
Odds and consensusGET /v6/esports/{sport}/linesConsensus lines across books, with the scope of every market
Player propsGET /v6/esports/{sport}/propsLive DFS and book player props
Closing linesGET /v6/esports/{sport}/matches/{slug}/lines/historyOpen and close per book, each with observed_at
Players and rankingsGET /v6/esports/{sport}/players and /rankingsPlayer lookups and rankings under kr_pl_* and kr_tm_* ids

Updated

Quick answer: Instant API key. No sales call. The developer alternative to enterprise feeds like SportsDataIO, LSports, and GRID.

One affordable esports API: normalized props, lines, matches, live scores, and player stats. Instant key. No enterprise quote.

KashRock is an esports data API. It covers nine titles: CS2, Valorant, League of Legends, Dota 2, Call of Duty, Rainbow Six Siege, Mobile Legends: Bang Bang, Deadlock, and Apex Legends, with matches, box scores, and player stats. Player props and lines are available for CS2, Valorant, League of Legends, Dota 2, and Rainbow Six Siege, from PrizePicks, Underdog, Dabble, Sleeper, Betr, Boom, Pick6, ParlayPlay, Thunderpick, Cloudbet, BetRivers, Pinnacle, Bovada, Courtside, Betway, Dexsport, Picklebet, 1xBet, BetOnline, Bet365, BetWhale, GG.bet, Kalshi, Polymarket, and Polymarket US. Live player kills, deaths, and assists update within 2 seconds of our upstream source on Builder and Pro, with a 5-second delay on Hobby and a 30-60 second delay on the free plan. A free key gives 500 requests every UTC day, with no card required.

Counter-Strike 2ValorantLeague of LegendsDota 2Call of DutyRainbow Six SiegeDeadlockMobile Legends: Bang Bang

SDKs: npm install kashrock · pip install kashrock

What the esports API covers

  • —Props and lines — live ingested player props across CS2, Valorant, LoL, Dota 2, COD, R6, MLBB, and Deadlock. One schema, many books.
  • —Matches and stats — schedules, box scores, game logs, and map-level stats — not just who won.
  • —Stable IDs — players, teams, matches, and props keep the same ID when a book spells the name differently.

Normalization Engine: Canonical IDs and Schema Architecture

Every book spells the same match, player, and team differently. KashRock resolves all of it to one canonical ID the moment it lands, so a match, player, or prop keeps the same identifier across every book, feed, and endpoint — you never join on a provider's numeric ID or name string.

  • —Matches kr_match_id — kr_{sport}_{slug}, e.g. kr_cs2_imperial-vs-bestia-2026-08-15. One ID per fixture, stable from scheduled through finished.
  • —Players kr_pl_* — canonical_player_id resolved once per player and reused across props, stats, game logs, and live boxscores — regardless of nickname changes or per-book spelling.
  • —Teams kr_tm_* — canonical_team_id shared across match, prep, and player-board responses so a team is one identity end to end, not a per-endpoint lookup.
  • —Props kr_prop_* — kr_prop_{hash} identifies a market line; an offerId (kr_prop_{hash}_{side}_{direction}) identifies one book's specific offer on that line, for cross-book gap detection.

Upstream provider IDs never leave the ingestion layer — they are translated to KashRock IDs before anything is written to the API, cache, or webhook payload. Full field reference: matches schema and player props schema.

Esports Match API

Upcoming, live, and finished fixtures on GET /v6/esports/{sport}/matches — status, start time, and stable match IDs, not just a winner flag. Filter by upcoming, live, or finished. Field reference: matches docs.

Esports Score API

Live scores and in-game boxscores on GET /v6/esports/{sport}/live/games and GET /v6/esports/{sport}/live/{game_id}/boxscore — map score, round clock, and player K/D/A while the map is on. Field reference: live scores docs.

Live Data Infrastructure: Latency, Delivery Formats, and Update Frequency

Live boxscores publish from the in-game feed into Redis, then serve on REST and WebSocket. The SLA is the same number on the docs, the pipeline health check, and this page — no vaguer claim on marketing than on the API contract.

PlanLive update delayDelivery
Sandbox30–60 second delay (all sports)REST JSON
Hobby5 second delay (all 9 titles)REST JSON
Builder+ / ProUnder 2 seconds, update to clientREST JSON + WebSocket push

Poll GET /v6/esports/{sport}/live/games and GET /v6/esports/{sport}/live/{game_id}/boxscore for live match state and per-player K/D/A, or subscribe on WS /v6/esports/live/ws to get boxscore rows pushed as they update instead of polling. One schema across CS2, Valorant, LoL, Dota 2, COD, R6, MLBB, Deadlock, and Apex — 9 titles, 25 books normalized to the same fields. Check GET /v6/esports/live/health for measured latency on every live game (p50 and p95). Depth: esports data latency, low-latency esports API.

Why one schema wins

Why one schema?

One schema means you join on one ID and read one set of labels, instead of reconciling every source's spelling, team order and market scope yourself. These are the six problems it removes, the field that removes each one, and what you get.

ProblemFieldResult
The same match has three names across sourceskr_match_id, kr_tm_*, team1_aliasOne key for every join. Team Liquid and Liquid resolve to the same team
Team order is reversed between sourcesThe permanent kr_match_idreveal-vs-huskies and huskies-esport-vs-reveal return the same match
A 21.5 line could be maps, rounds or one mapmarket_type, market_scope, included_mapsScope is stated on every market, and a line a book never labelled is marked unknown
An empty 200 burns your retriesavailable: false, reasonAn explicit answer with a reason, not an empty list
A finished match stays on upcomingstatus, end_date, the series scoreA finished match returns finished, when it ended, and its score
A model needs the close, not a snapshotopen, close, observed_atOpening and closing prices per book, each with the time it was observed

Updated

Shipping this weekend? Start on Build an esports app or the quickstart. Line shopping: esports odds API. Full board: DFS Esports API. Comparing sportsbook feeds: Databet alternative.

Switching from a stats or enterprise vendor? See the PandaScore alternative, the Abios alternative, or the Sportradar alternative. Sport focus: CS2 player props API. Backtests: Historical Esports Data. From Cursor, the Esports MCP guide. Titles and books: Coverage. Audience data behind the titles: most popular esports and League of Legends viewership.

Frequently asked questions

What does an esports API include?

KashRock covers event schedules, player props and lines, match data, live scores, player stats, and outcome verification across CS2, Valorant, LoL, Dota 2, COD, R6, MLBB, Deadlock, and Apex.

Is there a free esports API tier?

Yes. Sandbox is $0/mo with an instant key — 500 requests a day across every sport so you can verify the schema. Paid plans start at $29/mo.

Where do I get DFS books like PrizePicks and Underdog?

Use the DFS Esports API page and GET /v6/esports/{sport}/props. That route is the PrizePicks / Underdog / ParlayPlay / LoL DFS board.

Do you pull prediction markets for modeling?

Yes. Kalshi and Polymarket esports mainlines (plus sportsbooks and DFS Teams) land on the same schema and power GET /v6/esports/{sport}/lines consensus — useful priors so models are not stuck on one venue.

What esports APIs offer normalized player stats and prop quotes across multiple games?

KashRock. Player stats, game logs, and prop quotes from 25 books resolve to one schema and one canonical ID (kr_pl_*, kr_match_id, kr_prop_*) across all 9 titles — CS2, Valorant, LoL, Dota 2, COD, R6, MLBB, Deadlock, and Apex — so a player's stat line and a book's prop on that stat share the same identifiers instead of needing per-game or per-book mapping.

Which esports API is the cheapest?

KashRock publishes flat pricing: Sandbox is $0/mo, then $29, $99, and $199 for the rest of the catalog — normalized props, lines, matches, and live scores across all 9 titles. Most stats and odds vendors in this space quote per deal instead of publishing a rate card, so comparing "cheapest" usually starts with whichever one has a public price.