How to Get Live CS2 Match Data (KDA, Events, Stats) in Real Time
Quick answer: KashRock returns live CS2 KDA and match events on REST, SDK, and MCP in under 2 seconds. Here is how to pull your first live event.
What is live CS2 match data?
Live CS2 match data is per-player kills, deaths, and assists plus round and bomb state while the map is still being played. It is not the schedule of series marked current, and it is not a finished-map boxscore. We searched for one API that shipped that board with KashRock IDs and a 2-second SLA, did not find it, and built GET /v6/esports/cs2/live/games, /boxscore, and /events. Sandbox keys call those CS2 REST paths today.
Live CS2 data points
| Data point | What it measures | Who it's for | Where it lives |
|---|---|---|---|
| Live KDA board | CS2 maps with an in-game KDA feed | Scoreboard apps | GET /v6/esports/cs2/live/games |
| Player KDA | kills, deaths, assists, alive, player_id | Overlays and live models | GET /v6/esports/cs2/live/{kr_match_id}/boxscore → players[] |
| Round + bomb | map, round, clock, bomb_planted, money, armor, weapon | HUD and economy trackers | boxscore.map_name, board.bomb_planted, player.money |
| Live events | KILL, ROUND_WIN, BOMB_PLANT, BOMB_DEFUSE, ROUND_START | Play-by-play feeds | GET /v6/esports/cs2/live/{kr_match_id}/events |
How to pull your first live CS2 event — step by step
- Create a Sandbox key — Open /pricing, start Sandbox, copy the key. Sandbox is $0: 500 CS2 requests every UTC day and 20 requests/minute. No card.
- Install the Python SDK — pip install kashrock installs PyPI 0.1.1. The live list method is live_games.
- List the live KDA board — kr = KashRock("YOUR_API_KEY"); games = kr.live_games("cs2"). That is GET /v6/esports/cs2/live/games. Copy kr_match_id from games[].
- Pull the live boxscore — GET /v6/esports/cs2/live/{kr_match_id}/boxscore. Read players[].kills, deaths, assists, alive, and the round clock.
- Pull live events on the same id — GET /v6/esports/cs2/live/{kr_match_id}/events. Event types are KILL, ROUND_WIN, BOMB_PLANT, BOMB_DEFUSE, and ROUND_START.
- Upgrade only if you need push — Builder or Pro: wss://kashrock.up.railway.app/v6/esports/live/ws then subscribe. Sandbox and Hobby are rejected at the WebSocket handshake.
from kashrock import KashRock
kr = KashRock("YOUR_API_KEY")
print(kr.live_games("cs2"))Vitality vs magic, map 1 Mirage, 17 Sep 2026. Same KashRock ids and KDA fields as live REST.
{
"sport": "cs2",
"total": 1,
"games": [
{
"game_id": "kr_cs2_vitality-vs-magic-ru-17-09-2026",
"match_id": "kr_cs2_vitality-vs-magic-ru-17-09-2026",
"number": 1,
"league": "StarLadder StarSeries Fall 2026",
"blue_code": "Vitality",
"red_code": "magic",
"start_time": "2026-09-17T13:10:00.000+00:00",
"blue_team_id": "kr_tm_e9ac39acbe73",
"red_team_id": "kr_tm_f1dece8bbb85"
}
]
}{
"sport": "cs2",
"game_id": "kr_cs2_vitality-vs-magic-ru-17-09-2026",
"boxscore": {
"map_name": "Mirage",
"map_number": 1,
"round": 19,
"blue": {
"kills": 82,
"map_score": 13,
"series_score": 1
},
"red": {
"kills": 52,
"map_score": 6,
"series_score": 0
},
"players": [
{
"player_id": "kr_pl_5ea13ced730e",
"nickname": "ropz",
"side": "blue",
"kills": 23,
"deaths": 10,
"assists": 3,
"headshots": 12,
"adr": 114.19999694824219
},
{
"player_id": "kr_pl_a9020751a3a8",
"nickname": "apEX",
"side": "blue",
"kills": 22,
"deaths": 11,
"assists": 7,
"headshots": 10,
"adr": 133.1999969482422
},
{
"player_id": "kr_pl_fd87dbd9d1c1",
"nickname": "flameZ",
"side": "blue",
"kills": 16,
"deaths": 13,
"assists": 8,
"headshots": 7,
"adr": 89.5
},
{
"player_id": "kr_pl_4764e4b8d73a",
"nickname": "ZywOo",
"side": "blue",
"kills": 11,
"deaths": 9,
"assists": 7,
"headshots": 3,
"adr": 57.400001525878906
},
{
"player_id": "kr_pl_36c966f11204",
"nickname": "mezii",
"side": "blue",
"kills": 10,
"deaths": 9,
"assists": 5,
"headshots": 8,
"adr": 54.5
},
{
"player_id": "kr_pl_2cc82eb14944",
"nickname": "MaSvAl",
"side": "red",
"kills": 17,
"deaths": 15,
"assists": 1,
"headshots": 13,
"adr": 87.9000015258789
},
{
"player_id": "kr_pl_5e5e69089419",
"nickname": "sFade8",
"side": "red",
"kills": 11,
"deaths": 17,
"assists": 4,
"headshots": 6,
"adr": 67.0999984741211
},
{
"player_id": "kr_pl_64ea67e35230",
"nickname": "eksiver",
"side": "red",
"kills": 10,
"deaths": 16,
"assists": 0,
"headshots": 2,
"adr": 45.20000076293945
},
{
"player_id": "kr_pl_218807e67435",
"nickname": "mo0n",
"side": "red",
"kills": 9,
"deaths": 15,
"assists": 6,
"headshots": 4,
"adr": 51.099998474121094
},
{
"player_id": "kr_pl_630e7229e428",
"nickname": "tENZY",
"side": "red",
"kills": 5,
"deaths": 19,
"assists": 7,
"headshots": 5,
"adr": 48.900001525878906
}
]
}
}Live CS2 REST vs live CS2 WebSocket
| REST live CS2 | WebSocket live CS2 | |
|---|---|---|
| First call | kr.live_games("cs2") or GET /live/games | Connect, then {"op":"subscribe","sport":"cs2"} |
| Plan | Sandbox CS2 REST (500 req/UTC day, 20 req/min) | Builder or Pro; Sandbox rejected at handshake |
| Latency | Live player kills, deaths, and assists updated in under 2 seconds | Push 2s after Redis write |
| Id | kr_match_id from live/games | Same kr_match_id, or * for the sport |
FAQ
How do I get live CS2 KDA in real time?
Call GET /v6/esports/cs2/live/games (SDK: live_games("cs2")), then /live/{kr_match_id}/boxscore and /events. Live player kills, deaths, and assists updated in under 2 seconds.
Which sports have live in-game stats on KashRock?
Sandbox live REST is CS2 only. Other sport paths on a Sandbox key return 403. Live WebSocket is Builder or Pro.
What is the live CS2 data latency?
GET /v6/esports/live/health returns scoreboard_sla_seconds: 2. Live player kills, deaths, and assists updated in under 2 seconds.
What are the KashRock free tier limits for live CS2 data?
Sandbox: 500 CS2 requests per UTC day, 20 requests/minute, live REST games/boxscore/events. Live odds and the WebSocket stay on Builder or Pro.
Last updated: 17 September 2026. Latency and plan limits from GET /v6/esports/live/health (scoreboard_sla_seconds 2) and the Sandbox plan (500 CS2 requests/UTC day, 20 req/min). JSON below is map 1 Mirage from kr_cs2_vitality-vs-magic-ru-17-09-2026.
SDK: SDK Docs. HTTP: Live Endpoint. Limits: Free Tier. Key: Pricing.