Esports data latency.
One SLA: under 2 seconds.

Quick answer: KashRock's live scoreboard SLA is 2 seconds on Builder+ — the same number on the homepage, the docs, and the pipeline health check.

Canonical live scoreboard SLA is 2 seconds — under 2 seconds for player K/D/A on REST and WebSocket. Same claim on the homepage, docs, and pipeline health. GET /v6/esports/live/health shows the measured latency for every live game (p50 and p95, from the source's frame time to our WebSocket publish).

What the live feed carries

Latency on KashRock is measured at the scoreboard: the time between an in-game frame landing and the player row reaching your client. Everything on the live board — games list, boxscore, frames, events, the WebSocket — is served off the same Redis write, so one SLA covers all of it.

  • —Live player kills, deaths, and assists updated in under 2 seconds on Builder and Pro
  • —Live scores, 30-60 second delay on the free tier — real data, delayed on purpose
  • —Live scores, 5-second delay on Hobby REST
  • —Measured p50/p95 published per live game on /v6/esports/live/health

Live endpoints

Every live surface reads the same write — which is why one SLA number covers REST, WebSocket, and every sport on the board.

EndpointWhat it returnsKey param
GET /v6/esports/{sport}/live/gamesEvery game currently on the live boardsport
GET /v6/esports/{sport}/live/{game_id}/boxscorePer-player K/D/A plus map, round, and clockgame_id (kr_match_id)
GET /v6/esports/{sport}/live/{game_id}/frameRound phase, economy, and board stategame_id
GET /v6/esports/{sport}/live/{game_id}/eventsKILL, ROUND_WIN, BOMB_PLANT, BOMB_DEFUSE, ROUND_STARTgame_id
WS /v6/esports/live/wsPush updates under 2 seconds after Redis write — Builder and Pro onlysubscribe by sport or kr_match_id
GET /v6/esports/live/healthMeasured p50/p95 latency per live gamenone

A real live boxscore

The payload your latency budget actually buys: a mid-map boxscore with ten player rows of live K/D/A. This capture is round 19 of Vitality vs magic on Mirage.

GET /v6/esports/cs2/live/kr_cs2_vitality-vs-magic-ru-17-09-2026/boxscore
{
  "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
      }
    ]
  }
}

Vitality vs magic, map 1 Mirage, 17 Sep 2026. Same KashRock ids and KDA fields as live REST.

Which sports publish live boards

Live K/D/A comes from in-game feeds on tournament matches. Where a title has no feed wired, the board stays empty — KashRock does not invent stats.

TitleLive statusWhat the board carries
CS2LiveKills, deaths, assists, headshots, ADR per map
ValorantLiveK/D/A per map on tournament games
League of LegendsLiveK/D/A per map on tournament games
Dota 2LiveK/D/A per map on tournament games
Rainbow SixLiveK/D/A per map on tournament games
Call of DutyLiveK/D/A per map on tournament games
DeadlockLiveK/D/A per map on tournament games
Mobile LegendsWaiting on feedLive boards stay empty until a feed is wired

How the latency SLA is enforced

The SLA is enforced by measurement, not aspiration. Each live game reports p50 and p95 from the source's frame timestamp to KashRock's WebSocket publish on GET /v6/esports/live/health. The 2-second number on this page, the docs, and the homepage is the same constant — there is one SLA, stated once, everywhere.

Practical rule: Latency you can measure beats latency you are promised. /live/health is the page of record.

Speed by plan

Live speed is a plan feature, not a different pipeline. Every tier reads the same Redis boards — cheaper plans are served a genuinely older snapshot instead of a relabeled real-time read.

PlanPriceLive speedMonthly requests
Sandbox$0Live scores, 30-60 second delay on REST500 requests / UTC day
Hobby$29Live scores, 5-second delay on REST2,160,000 requests / month
Builder$99Live player kills, deaths, and assists updated in under 2 seconds + WebSocket push4,320,000 requests / month
Pro$199Live player kills, deaths, and assists updated in under 2 seconds + WebSocket push10,800,000 requests / month

The delay on Sandbox and Hobby is a real older snapshot — not a real-time read relabeled to look free.

Start in minutes

  • —Create a free Sandbox key on Pricing — $0, no card, 500 requests every UTC day
  • —List what is live: GET /v6/esports/{sport}/live/games and copy the kr_match_id off a game
  • —Pull the board: GET /v6/esports/{sport}/live/{game_id}/boxscore
  • —Upgrade to Builder when you need real-time (no delay) or WebSocket push — Sandbox and Hobby are rejected at the WS handshake

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

How fast are live player stats?

Live player kills, deaths, and assists updated in under 2 seconds on Builder and Pro. Sandbox REST is live scores, 30-60 second delay, and Hobby is live scores, 5-second delay.

REST or WebSocket?

Both. REST reads Redis. WebSocket: Push updates under 2 seconds after Redis write — Builder and Pro only.

Which sports have live K/D/A today?

CS2, Valorant, LoL, Dota 2, Rainbow Six, Call of Duty, and Deadlock tournament games publish live K/D/A. Mobile Legends live boards stay empty until a feed is connected. We do not invent stats.

What ID do the live endpoints take?

The KashRock match id — kr_match_id — returned by GET /v6/esports/{sport}/live/games or any match listing. You never pass a provider's numeric id.

Is the under-2-second SLA measured or marketed?

Measured. GET /v6/esports/live/health reports p50 and p95 latency per live game, from the source frame time to the KashRock publish — the same numbers the SLA is checked against.

Why are Sandbox and Hobby slower?

On purpose — free and cheap tiers read a genuinely delayed cache snapshot (30–60s on Sandbox, 5s on Hobby). Real-time under 2 seconds is the paid feature on Builder and Pro.