Esports backtest API.
Replay openers that beat the close.
Why this surface exists
If you cannot replay open vs close on stable IDs, your edge story is not falsifiable. Backtest is the falsifier.
What the record represents
Response includes strategy, date_range, summary (bets, hit rate, PnL, drawdown), and bets[] rows.
Core endpoints
GET /v7/{sport}/backtest or MCP v7_backtest.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/{sport}/backtest | Strategy replay on settled matches (Quant+) | date_from, date_to, min_edge |
| GET /v7/{sport}/clv | Per-match CLV detail | match= |
| MCP v7_backtest | Same backtest from Cursor or Claude | sport |
Canonical IDs
- —bets[].kr_match_id
- —bets[].book
- —market
Sample payload
Live CS2 window: 730 simulated bets, 47.1% hit rate, ROI and drawdown on the summary — plus per-bet open/close decimals.
| Field | Example | Used for |
|---|---|---|
| strategy | open_beats_close_hindsight | Which rule was simulated |
| summary.roi_pct | -24.0 | Flat-stake ROI over the window |
| summary.hit_rate_pct | 47.1 | Win rate on graded bets |
| bets[].edge_pct | 7.01 | Open vs close edge on that bet |
| bets[].open_decimal | 1.429 | Price at open |
{
"available": true,
"sport": "cs2",
"market": "match_winner",
"strategy": "open_beats_close_hindsight",
"summary": {
"total_bets": 730,
"hit_rate_pct": 47.1,
"total_pnl": -17116.4,
"roi_pct": -24,
"avg_edge_pct": 14.34
},
"bets": [
{
"kr_match_id": "kr_cs2_nexvoid-vs-rare-atom-23-10-2026-2",
"book": "polymarket us",
"side": "home",
"edge_pct": 7.01,
"open_decimal": 1.429,
"close_decimal": 1.588
}
]
}Comparing sources
Vault closing lines and openings — the same tape behind /clv and history.
| Source | Schema | Best use |
|---|---|---|
| Spreadsheet exports | Manual joins | One-off studies |
| Single-book CSVs | Incomplete closes | Narrow books |
| KashRock /backtest | Vault open/close, one schema | Repeatable research |
How to use it
Backtest uses settled matches. It is not a live tip feed.
Operational practices
- —Set min_edge and date_from/date_to explicitly for comparable runs.
- —Read summary before cherry-picking bets[].
- —Quant unlocks backtest; free Sandbox first for IDs.
Quick reference
GET /v7/cs2/backtest returns summary PnL and per-bet open/close rows. Get your free key.
If you need a normalized feed instead of another UI wrapper, the esports api 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.