Esports UAV API.
One match. Prematch through live. One call.
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.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/{sport}/uav | One-match overview (Quant+) | match= (required), include= |
| GET /v7/{sport}/matches/{ref} | Match card and includes without UAV bundle | include=prep,veto |
| WS /v7/live/ws | Push live updates for the match | subscribe hint from UAV |
| MCP v7_uav | Same overview from Cursor or Claude | sport, 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.
| Field | Example | Used for |
|---|---|---|
| phase | live | prematch | live | finished |
| kr_match_id | kr_cs2_… | Required join for every block |
| match.live_state | between_maps | In-play state when live |
| ws.subscribe | match:kr_… | Hint for the live WebSocket |
| include | lines,flow,… | Optional blocks on the same call |
{
"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.
| Source | Schema | Best use |
|---|---|---|
| Five separate endpoints | Client glue, racey | DIY dashboards |
| Broadcast overlays | No book joins | Fan tools |
| KashRock UAV | One overview + include blocks | Desks 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.