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 /v7/meta 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, 15-second delay on Hobby REST — Sandbox has no live desk
  • —Measured p50/p95 published per live game on /v7/meta

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 /v7/{sport}/liveEvery game currently on the live boardsport
GET /v7/{sport}/live/{game_id}/boxscorePer-player K/D/A plus map, round, and clockgame_id (kr_match_id)
GET /v7/{sport}/live/{game_id}/frameRound phase, economy, and board stategame_id
GET /v7/{sport}/live/{game_id}/eventsKILL, ROUND_WIN, BOMB_PLANT, BOMB_DEFUSE, ROUND_STARTgame_id
WS /v7/live/wsPush updates under 2 seconds after Redis write — Builder and Pro onlysubscribe by sport or kr_match_id
GET /v7/metaMeasured 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 /v7/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 /v7/meta. 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$0No live desk — CS2 props and match discovery1,500 credits / UTC day
Hobby$29.99Live scores, 15-second delay on REST300,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
Quant$299Live player kills, deaths, and assists updated in under 2 seconds + WebSocket push21,600,000 requests / month

The delay on Hobby is a real older snapshot — not a real-time read relabeled to look cheaper. Sandbox has no live desk.

Start in minutes

  • —Create a Hobby key on Pricing — live REST starts here (live scores, 15-second delay). Sandbox is CS2 eval only, no live desk
  • —List what is live: GET /v7/{sport}/live and copy the kr_match_id off a game
  • —Pull the board: GET /v7/{sport}/live?include=boxscore
  • —Upgrade to Builder when you need real-time (no delay) or WebSocket push — Hobby is 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. Hobby is live scores, 15-second delay. Sandbox has no live desk — live scores start at Hobby.

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 /v7/{sport}/live or any match listing. You never pass a provider's numeric id.

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

Measured. GET /v7/meta 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 is Hobby slower than Builder?

On purpose — Hobby reads a genuinely delayed cache snapshot (15s). Sandbox has no live desk. Real-time under 2 seconds is the paid feature on Builder and Pro.