Match overview (UAV)
One call for a whole match, from first listing to the final board. phase says where the match is: prematch, live or finished. MCP: v7_uav. The same match pushes on the WebSocket — subscribe with the ws.subscribe object in the response and ticks arrive as the board, events, odds and Flow plays change.
Match overview
Requires the Pro plan.
| Param | Type | Required | Description |
|---|---|---|---|
| sport | path | Yes | cs2, valorant, lol, dota2, cod, r6, mlbb, deadlock |
| match | query | Yes | kr_match_id or slug. Retired ids follow their redirect; pending ids return match_pending. |
| include | query | — | Comma blocks. Prematch: lines, prep, veto, maps, player_board, streams, h2h. Live: boxscore, events, frame, odds, odds_history. Any phase: flow. |
| fields | query | — | Comma list of top-level keys to keep. |
The match card and phaseare in every answer. Prematch blocks are the same ones Matches serves; live blocks are the same ones Live serves, with your plan's delay applied. lines, odds, odds_history and flow need Hobby+. Ask for them on Sandbox and the whole call answers 403, the same gate as the dedicated routes.
curl -H "X-API-Key: YOUR_API_KEY" \ "https://kashrock.up.railway.app/v7/cs2/uav?match=elite-klan-vs-passion-academy-18-10-2026"
{
"available": true,
"sport": "cs2",
"kr_match_id": "kr_cs2_elite-klan-vs-passion-academy-18-10-2026",
"slug": "elite-klan-vs-passion-academy-18-10-2026",
"phase": "prematch",
"match": {
"kr_match_id": "kr_cs2_elite-klan-vs-passion-academy-18-10-2026",
"team1": "Elite Klan",
"team2": "Passion Academy",
"team1_id": "kr_tm_fac53dcc91e5",
"team2_id": "kr_tm_d35cf9999a5f",
"status": "not_started",
"event_time": "2026-10-18T08:00:00Z",
"competition": "United21"
},
"ws": {
"url": "/v7/live/ws",
"subscribe": {
"op": "subscribe",
"sport": "cs2",
"game_id": "kr_cs2_elite-klan-vs-passion-academy-18-10-2026"
},
"ticks": "frame, boxscore, event, odds, meta, status, flow"
}
}{
"available": true,
"sport": "cs2",
"kr_match_id": "kr_cs2_voca-vs-liquid-23-09-2026",
"slug": "voca-vs-liquid-23-09-2026",
"phase": "live",
"match": {
"kr_match_id": "kr_cs2_voca-vs-liquid-23-09-2026",
"team1": "Voca",
"team2": "Liquid",
"status": "live",
"competition": "CCT Europe 2026 Series 10"
},
"live": {
"stats_available": true,
"live_state": "in_map",
"last_frame_at": "2026-09-23T18:04:41.870+00:00",
"boxscore": {
"boxscore": {
"map_name": "Anubis",
"round": 16,
"blue": {
"map_score": 10,
"kills": 69
},
"red": {
"map_score": 5,
"kills": 44
}
}
},
"events": {
"total": 1,
"events": [
{
"type": "KILL",
"side": "blue",
"map": 1,
"round": 16,
"killer": "Jorko",
"victim": "dare",
"weapon": "ak47",
"headshot": true,
"info": "Jorko killed dare with ak47 (headshot)",
"ts": "2026-09-23T18:04:11.402+00:00"
}
]
}
},
"flow": {
"total": 1,
"kind": "all",
"plays": [
{
"play_id": "kr_flow_9f2c1a04b3d7",
"kind": "volume",
"kr_match_id": "kr_cs2_voca-vs-liquid-23-09-2026",
"market": "match_winner",
"selection": "Voca",
"money_behind": 41250,
"side_share": 0.7813,
"best_decimal": 1.72,
"best_source": "thunderpick"
}
]
},
"ws": {
"url": "/v7/live/ws",
"subscribe": {
"op": "subscribe",
"sport": "cs2",
"game_id": "kr_cs2_voca-vs-liquid-23-09-2026"
},
"ticks": "frame, boxscore, event, odds, meta, status, flow"
}
}Push updates
The overview is read-only HTTP. For live push, connect to the WebSocket (Builder+) and send the subscribe object from the response. The wire then carries frame, boxscore, event (kills, bomb, round wins), odds and flow ticks for that match. A flowtick arrives whenever the match's Flow play set changes: a new volume, shift or steam indicator, or the set clearing.
{"op":"subscribe","sport":"cs2","game_id":"kr_cs2_voca-vs-liquid-23-09-2026"}
{"op":"update","type":"flow","sport":"cs2","game_id":"kr_cs2_voca-vs-liquid-23-09-2026","data":{"total":1,"plays":[...]},"ts":"..."}A match that is not on our schedule yet answers available: false with reason: match_not_found; a retired id answers 404 id_retired.
