Esports UAV API.
One match. Prematch through live. One call.

UAV is the match overview: the card, the phase (prematch, live, finished), a WebSocket subscribe hint, and optional blocks for lines, prep, veto, maps, player board, boxscore, events, odds, and flow. One kr_match_id — not five endpoints glued in the client.

Why this surface exists

A trading desk does not want to fan out five HTTP calls per match and reconcile clocks. UAV returns the card and phase once, then lets include= pull the blocks you need for that phase.

Practical rule: match= is required. Without it there is no overview.

What the record represents

Top-level fields: available, sport, kr_match_id, slug, phase, match, optional prematch/live/flow blocks, and ws. include= selects which blocks to hydrate.

Core endpoints

GET /v7/{sport}/uav?match={kr_match_id} with optional include=. MCP v7_uav takes the same arguments.

EndpointPurposeKey filters
GET /v7/{sport}/uavOne-match overview (Quant+)match= (required), include=
GET /v7/{sport}/matches/{ref}Match card and includes without UAV bundleinclude=prep,veto
WS /v7/live/wsPush live updates for the matchsubscribe hint from UAV
MCP v7_uavSame overview from Cursor or Claudesport, match

Canonical IDs

  • —kr_match_id or slug — required match key
  • —kr_tm_* on the card — team joins
  • —ws.subscribe — live channel hint

Sample payload

Live CS2: paiN vs Imperial on Circuit X Curitiba 4, phase=live, series 1–1 between maps, with a WS subscribe hint on the row.

FieldExampleUsed for
phaseliveprematch | live | finished
kr_match_idkr_cs2_…Required join for every block
match.live_statebetween_mapsIn-play state when live
ws.subscribematch:kr_…Hint for the live WebSocket
includelines,flow,…Optional blocks on the same call
GET /v7/cs2/uav?match=kr_cs2_imperial-esports-vs-pain-gaming-23-10-2026&include=lines,flow
{
  "available": true,
  "sport": "cs2",
  "phase": "live",
  "kr_match_id": "kr_cs2_imperial-esports-vs-pain-gaming-23-10-2026",
  "slug": "imperial-esports-vs-pain-gaming-23-10-2026",
  "match": {
    "team1": "paiN Gaming",
    "team2": "Imperial Esports",
    "competition": "Circuit X Curitiba 4",
    "live_state": "between_maps",
    "team1_score": 1,
    "team2_score": 1
  },
  "ws": {
    "subscribe": "match:kr_cs2_imperial-esports-vs-pain-gaming-23-10-2026"
  },
  "include_hint": "lines,prep,veto,maps,player_board,boxscore,events,odds,flow"
}

Comparing sources

UAV composes KashRock match, lines, prep, live, and flow surfaces — one response shape instead of stitching them client-side.

SourceSchemaBest use
Five separate endpointsClient glue, raceyDIY dashboards
Broadcast overlaysNo book joinsFan tools
KashRock UAVOne overview + include blocksDesks and agents

How to use it

UAV is situational awareness. Settlement still lands on /results; CLV on /clv; ticket tracking on /portfolio.

Operational practices

  • —Always pass match= as kr_match_id when you have it.
  • —Request only the include blocks you need — keep payloads small.
  • —Quant unlocks UAV; free Sandbox teaches the ID schema on CS2.

Quick reference

GET /v7/cs2/uav?match={kr_match_id} returns phase, card, and optional include blocks. 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.

Frequently asked questions

What is the UAV endpoint?

UAV is a one-match overview from prematch through live. Pass match= as a kr_match_id or slug. Optional include blocks add lines, prep, veto, maps, player_board, boxscore, events, odds, and flow.

Which plan unlocks UAV?

UAV is on Quant. Sandbox is a free CS2 eval key so you can learn match IDs and the schema before you upgrade.

How do I keep the overview live?

Use the ws subscribe hint from the UAV response on WS /v7/live/ws, or re-poll /uav with include= as the phase changes.