Historical esports data.
Without the scrape tax.

Builders looking for historical lines hit the same wall: books hide the past, stats sites omit the offer, and scrapers rot. KashRock keeps the quote tape, gamelogs, and settlements behind one key.

Why historical esports data is hard to find

If you searched for historical PrizePicks lines, CS2 kill tapes, or LoL prop backtests, you already know the gap. The pain is not "more scrapers." It is missing a vault that remembers what was offered and how it settled.

Books do not sell you a history API

PrizePicks, Underdog, and the rest show today's board. Yesterday's line is gone from the app. Scrapers that worked last month break when the payload or CDN changes.

Stats sites are not book-native

HLTV, VLR, and DatDota tell you what happened on the map. They do not tell you what line the DFS app posted at 2pm — so hit-rate models invent joins that never match production props.

IDs drift across every source

One player, five spellings. One market, six stat strings. Without stable prop and player IDs, historical joins silently miss rows and your backtest looks better than live.

How KashRock solves it

Workers ingest live boards and match stats continuously. History endpoints read what was stored — so your backtest uses the same contract IDs as production.

Quote tape per contract

GET /v6/esports/history/contract returns the vault tape for a market_key or prop_id+book — line, price, status — without live fan-out on the request.

Player map gamelogs

GET /v6/esports/{sport}/players/{slug}/gamelogs pulls vault-backed map rows so you can score a prop against what the player actually posted.

Settled results

The results feed grades props against outcomes so you can measure hit / miss / push on the same IDs you used for the live board.

Start with one contract

Pull the vault tape for a market you already saw on the live board:

curl -H "X-API-Key: YOUR_KEY" \
  "https://kashrock.up.railway.app/v6/esports/history/contract?market_key=kr_mk_…"

Then join player gamelogs and results. Coverage by title is on /coverage. Full route list on the esports data API page.

Frequently asked questions

What historical esports data does KashRock return?

Quote tape for a prop contract (line, price, status over time), player map gamelogs (kills, deaths, assists, and sport-specific fields), and settled prop results so you can measure hit rates against what the book actually offered.

Is this live scraping on every request?

No. History endpoints read from the vault and Redis cache. Workers ingest books and match stats ahead of time — the request path does not fan out to upstream sites.

Which sports have historical coverage?

Props and results cover CS2, Valorant, LoL, Dota 2, COD, R6, MLBB, and Deadlock where books post lines. Deep map gamelogs are strongest on CS2, Valorant, LoL, and Dota 2.

Can I backtest PrizePicks or Underdog lines?

Yes. Pull the history contract for a market_key or prop_id+book, join player gamelogs, and use the results feed for grades — without rebuilding scrapers per book.

Is there a free tier to try historical endpoints?

Yes. Sandbox is $0/mo with an instant key. Start with CS2 props and history, then upgrade when you need full sports and production volume.