Docs/CS2 API/CS2 Live Scores API

CS2 Live Scores API

Everything about matches in progress: the live list, per-match state and scoreboard, rounds, kill events, live player stats, and the push stream so you do not have to poll.

11 endpoints in this section. Authenticate with the x-api-key header; every response is { success, data, meta }. Other sections: Odds, Matches, Maps & rounds, Rankings, Teams, Players, Events, Stats & leaderboards, Skins, Transfers, Search & reference.

Live update stream (SSE)

GET/api/v1/cs2/live/stream

Server-Sent Events stream of live match updates, on every plan. Keep the connection open; each `cs2.live.update` event carries the changed match. Pass `matchId` to follow one match. Events: `ready` (sent first; carries `delay_seconds` and `billing`), `cs2.live.update`, `ping` every 15 seconds, and `error` just before the server closes the stream. **Billing.** An open stream counts toward your monthly quota like polling: one request when it connects, then one request for every 15 seconds it stays open (the same as polling `/cs2/live` every 15 seconds; 5,760 requests a day if held open around the clock). When the quota runs out the stream sends an `error` event with code `RATE_LIMIT_EXCEEDED` and closes; connecting with no quota left returns 429. **Delay.** Free and Starter plans receive every update 60 seconds late, the same delay as the polled live endpoints. Other plans are real-time. Room-based WebSockets (Scale and Enterprise, or the Live WebSockets add-on): `wss://api.citoapi.com/api/v1/cs2/live/ws`.

Query parameters

ParameterTypeDescription
matchIdstringMatch id.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/stream" \
  -H "x-api-key: YOUR_API_KEY"

Live socket details

GET/api/v1/cs2/live/{matchId}/socket

Connection details for subscribing to one live match over the live stream.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/socket" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_live_transport",
    "matchId": "cs2-match-2399309",
    "transports": {
      "websocket": {
        "url": "wss://api.citoapi.com/api/v1/cs2/live/ws?matchId=cs2-match-2399309",
        "auth": "x-api-key header, Authorization: Bearer, or ?apiKey=",
        "subscribe": {
          "action": "subscribe",
          "rooms": [
            "match:cs2-match-2399309"
          ]
        },
        "allLiveMatches": {
          "action": "subscribe",
          "rooms": [
            "all"
          ]
        },
        "messages": [
          "ready",
          "cs2.live.snapshot (on subscribe)"
        ],
        "plans": "Scale / Enterprise, or the Live WebSockets add-on"
      },
      "sse": {
        "url": "/api/v1/cs2/live/stream?matchId=cs2-match-2399309",
        "note": "Same events as the WebSocket. Connect with Accept: text/event-stream. Available on every plan.",
        "billing": "Counts like polling: one request at connect, then one for every 15 seconds the stream stays open. When the monthly qu…",
        "delay": "Free and Starter plans receive every update 60 seconds late, like the polled live endpoints. Other plans are real-time."
      }
    },
    "v2Shape": "Append ?shape=v2 on REST live endpoints or send Accept: application/vnd.cito.cs2.v2+json"
  },
  "meta": {}
}

Live scoreboard

GET/api/v1/cs2/live/{matchId}/scoreboard

Series score, current map and round, the round score (`game.score`, per team `mapScore`), and per-player kills, deaths, money and equipment for a live match.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.
shapestringFilter by shape.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/scoreboard" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "matchId": "cs2-match-2399309",
    "status": "live",
    "bestOf": 3,
    "currentGame": 3,
    "seriesScore": {
      "teamA": 1,
      "teamB": 1
    },
    "game": {
      "id": "cs2-match-2399309_de_dust2",
      "map": "de_dust2",
      "round": 11,
      "phase": "live",
      "clockSeconds": null,
      "bomb": null,
      "score": {
        "ct": 4,
        "t": 6
      },
      "sides": {
        "ctTeamId": "cs2-team-12889",
        "tTeamId": "cs2-team-11699"
      }
    },
    "teams": [
      {
        "id": "cs2-team-11699",
        "name": "BAKS",
        "side": "T",
        "score": 1,
        "mapScore": 6,
        "playersAlive": 5,
        "equipmentValue": null,
        "money": 24850,
        "timeoutsRemaining": null
      },
      {
        "id": "cs2-team-12889",
        "name": "G2 Ares",
        "side": "CT",
        "score": 1,
        "mapScore": 4,
        "playersAlive": 5,
        "equipmentValue": null,
        "money": 350,
        "timeoutsRemaining": null
      }
    ],
    "players": [
      {
        "id": "cs2-player-25509",
        "nickname": "turbo",
        "teamId": "cs2-team-11699",
        "side": "T",
        "alive": true,
        "hp": 100,
        "armor": null,
        "helmet": true,
        "money": 1350,
        "weapon": "ak47",
        "kills": 11,
        "assists": 4,
        "deaths": 7,
        "adr": 90.63636363636364,
        "kast": null,
        "rating": null
      },
      {
        "id": "cs2-player-21447",
        "nickname": "xdENiSZERA",
        "teamId": "cs2-team-11699",
        "side": "T",
        "alive": true,
        "hp": 100,
        "armor": null,
        "helmet": true,
        "money": 6250,
        "weapon": "ak47",
        "kills": 8,
        "assists": 1,
        "deaths": 4,
        "adr": 53.36363636363637,
        "kast": null,
        "rating": null
      }
    ],
    "lastEvent": {
      "id": null,
      "type": "BombPlanted",
      "round": 11,
      "clockSeconds": null,
      "killerPlayerId": null,
      "victimPlayerId": null,
      "weapon": null,
      "headshot": null,
      "throughSmoke": null
    },
    "meta": {
      "updatedAt": "2026-10-16T19:44:28.025Z",
      "latencyMs": null,
      "coverage": "realtime",
      "source": "live",
      "unavailableFields": [
        "game.clockSeconds"
      ]
    }
  },
  "meta": {}
}

Live rounds

GET/api/v1/cs2/live/{matchId}/rounds

Round-by-round results so far in a live match: winner, side and how the round ended.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/rounds" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_live_rounds",
    "matchId": "cs2-match-2399309",
    "rounds": [
      {
        "eventId": "dd61c4bfa7c8e725ff903f2c773c66f0",
        "eventType": "RoundEnd",
        "winner": "TERRORIST",
        "winType": "Target_Bombed",
        "terroristScore": 3,
        "counterTerroristScore": 0,
        "payload": {
          "counterTerroristScore": 0,
          "terroristScore": 3,
          "winner": "TERRORIST",
          "winType": "Target_Bombed"
        },
        "observedAt": "2026-10-16T17:17:19.687Z"
      },
      {
        "eventId": "4a7348cef8aa90b6a61ea57513268f1d",
        "eventType": "RoundEnd",
        "winner": "TERRORIST",
        "winType": "Target_Bombed",
        "terroristScore": 1,
        "counterTerroristScore": 0,
        "payload": {
          "counterTerroristScore": 0,
          "terroristScore": 1,
          "winner": "TERRORIST",
          "winType": "Target_Bombed"
        },
        "observedAt": "2026-10-16T17:17:19.687Z"
      }
    ],
    "currentRound": 11
  },
  "meta": {
    "count": 50,
    "limit": 50,
    "total": 50,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Live events

GET/api/v1/cs2/live/{matchId}/events

Kills, bomb plants and defuses, and round ends recorded during a live match.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/events" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_live_events",
    "matchId": "cs2-match-2399309",
    "events": [
      {
        "eventId": "622e44c37439a0ca61da5ca7f75f059d",
        "eventType": "BombPlanted",
        "playerName": "turbo",
        "playerNick": "turbo",
        "ctPlayers": 1,
        "tPlayers": 2,
        "bombSite": "A",
        "payload": {
          "playerName": "turbo",
          "playerNick": "turbo",
          "ctPlayers": 1,
          "tPlayers": 2,
          "bombSite": "A"
        },
        "source": "live",
        "observedAt": "2026-10-16T17:05:49.256Z"
      },
      {
        "eventId": "a8aff80eed92642133f00414f189f77b",
        "eventType": "BombPlanted",
        "playerName": "whisper",
        "playerNick": "whisper",
        "ctPlayers": 5,
        "tPlayers": 5,
        "bombSite": "B",
        "payload": {
          "playerName": "whisper",
          "playerNick": "whisper",
          "ctPlayers": 5,
          "tPlayers": 5,
          "bombSite": "B"
        },
        "source": "live",
        "observedAt": "2026-10-16T17:07:03.088Z"
      }
    ]
  },
  "meta": {
    "count": 87,
    "limit": 87,
    "total": 87,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Live player stats

GET/api/v1/cs2/live/{matchId}/player-stats

Running per-player stats for a live match.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/player-stats" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_live_player_stats",
    "matchId": "cs2-match-2399309",
    "status": "live",
    "isCurrent": true,
    "dataAvailable": true,
    "unavailableReason": null,
    "source": "live",
    "capturedAt": "2026-10-16T19:44:29.029Z",
    "players": [
      {
        "playerId": "cs2-player-25509",
        "name": "turbo",
        "nick": "turbo",
        "side": "T",
        "alive": true,
        "hp": 100,
        "money": 1350,
        "kills": 11,
        "assists": 4,
        "deaths": 7,
        "adr": 90.63636363636364,
        "weapon": "ak47",
        "weaponIconUrl": "/icons/cs2/weapons/ak47.png",
        "hasDefuseKit": false,
        "kevlar": true,
        "helmet": true
      },
      {
        "playerId": "cs2-player-21447",
        "name": "xdENiSZERA",
        "nick": "xdENiSZERA",
        "side": "T",
        "alive": true,
        "hp": 100,
        "money": 6250,
        "kills": 8,
        "assists": 1,
        "deaths": 4,
        "adr": 53.36363636363637,
        "weapon": "ak47",
        "weaponIconUrl": "/icons/cs2/weapons/ak47.png",
        "hasDefuseKit": false,
        "kevlar": true,
        "helmet": true
      }
    ],
    "lastVerified": "2026-10-16T19:44:29.089Z"
  },
  "meta": {
    "count": 10,
    "dataAvailable": true,
    "confirmationMaxAgeMs": 45000,
    "limit": 10,
    "total": 10,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Live maps

GET/api/v1/cs2/live/{matchId}/maps

Map list for a live match with per-map score and status.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/maps" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_map",
      "id": "cs2-match-2399309-map-1",
      "matchId": "cs2-match-2399309",
      "mapNumber": 1,
      "mapName": "Cache",
      "status": "completed",
      "team1Score": 13,
      "team2Score": 3,
      "team1Halves": null,
      "team2Halves": null,
      "winnerTeamId": "cs2-team-11699",
      "durationRounds": 16,
      "lastSyncedAt": "2026-10-16T19:41:47.748Z",
      "playerStats": [
        {
          "id": "live-source-match-2399309-map-1-Junyme",
          "mapId": "cs2-match-2399309-map-1",
          "matchId": "cs2-match-2399309",
          "playerId": "cs2-player-24111",
          "playerName": "Junyme",
          "teamId": "cs2-team-12889",
          "teamName": "G2 Ares",
          "kills": 11,
          "deaths": 12,
          "assists": 0,
          "plusMinus": -1,
          "adr": 69.4,
          "kast": 0.688,
          "rating": 0.89,
          "ratingVersion": "cito_rating_1",
          "headshots": 5,
          "headshotPercent": 0.455,
          "firstKills": 3,
          "firstDeaths": 4,
          "lastSyncedAt": "2026-10-16T19:41:48.574Z",
          "mapNameCanonical": null,
          "imageUrl": null,
          "mapImageUrl": null,
          "coverImageUrl": null,
          "…": "6 more fields"
        },
        {
          "id": "live-source-match-2399309-map-1-Norwi",
          "mapId": "cs2-match-2399309-map-1",
          "matchId": "cs2-match-2399309",
          "playerId": "cs2-player-19882",
          "playerName": "Norwi",
          "teamId": "cs2-team-11699",
          "teamName": "BAKS",
          "kills": 15,
          "deaths": 8,
          "assists": 2,
          "plusMinus": 7,
          "adr": 96.9,
          "kast": 1,
          "rating": 1.39,
          "ratingVersion": "cito_rating_1",
          "headshots": 10,
          "headshotPercent": 0.667,
          "firstKills": 3,
          "firstDeaths": 0,
          "lastSyncedAt": "2026-10-16T19:41:47.989Z",
          "mapNameCanonical": null,
          "imageUrl": null,
          "mapImageUrl": null,
          "coverImageUrl": null,
          "…": "6 more fields"
        }
      ],
      "bombEvents": [],
      "bombStats": [],
      "weaponAggregates": [],
      "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
      "pickTeamId": "cs2-team-11699",
      "objectiveStats": {
        "dataAvailable": false,
        "unavailableReason": "not_yet_indexed",
        "confidence": {
          "plants": "high",
          "defuses": "high",
          "explosions": "high",
          "clutchDefuse": "medium"
        },
        "teamStats": [],
        "roundEvents": []
      },
      "availableSubresources": [
        "player_stats"
      ],
      "unavailableSubresources": [
        "objective_stats"
      ],
      "unavailableFields": {},
      "dataQuality": "partial",
      "…": "12 more fields"
    },
    {
      "entityType": "cs2_map",
      "id": "cs2-match-2399309-map-2",
      "matchId": "cs2-match-2399309",
      "mapNumber": 2,
      "mapName": "Inferno",
      "status": "completed",
      "team1Score": 13,
      "team2Score": 16,
      "team1Halves": null,
      "team2Halves": null,
      "winnerTeamId": "cs2-team-12889",
      "durationRounds": 29,
      "lastSyncedAt": "2026-10-16T19:41:47.849Z",
      "playerStats": [
        {
          "id": "live-source-match-2399309-map-2-Junyme",
          "mapId": "cs2-match-2399309-map-2",
     
…

Live snapshots

GET/api/v1/cs2/live/{matchId}/snapshots

Timestamped snapshots of a live match (score, round, players) so the match can be replayed over time. Filter with `from` / `to`.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.
fromstringStart of the date range (ISO 8601, UTC).
limitintegerRows to return. Maximum 100; larger values are reduced to 100.
sourcestringRanking to use: omit for Valve Regional Standings, or world for the world ranking filtered to this region.
tostringEnd of the date range (ISO 8601, UTC).

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/snapshots" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_live_snapshot",
      "snapshotId": "7d290a85-157c-4531-8b4d-07be9f9d2a7a",
      "matchId": "cs2-match-2399309",
      "status": "live",
      "source": "live",
      "capturedAt": "2026-10-16T19:44:25.113Z",
      "teams": {
        "team1Name": "BAKS",
        "team2Name": "G2 Ares",
        "terroristTeamName": "BAKS",
        "counterTerroristTeamName": "G2 Ares"
      },
      "score": {
        "team1": 6,
        "team2": 4
      },
      "currentMap": "de_dust2",
      "currentRound": 11,
      "roundTimeSeconds": null,
      "currentScoreCt": 4,
      "currentScoreT": 6,
      "roundTimeLeft": null,
      "bombPlanted": false,
      "players": [
        {
          "playerId": "cs2-player-25509",
          "name": "turbo",
          "nick": "turbo",
          "side": "T",
          "alive": true,
          "hp": 100,
          "money": 1350,
          "kills": 11,
          "assists": 4,
          "deaths": 7,
          "adr": 90.63636363636364,
          "weapon": null,
          "weaponIconUrl": null,
          "hasDefuseKit": false,
          "kevlar": false,
          "helmet": false
        },
        {
          "playerId": "cs2-player-21447",
          "name": "xdENiSZERA",
          "nick": "xdENiSZERA",
          "side": "T",
          "alive": true,
          "hp": 100,
          "money": 6250,
          "kills": 8,
          "assists": 1,
          "deaths": 4,
          "adr": 53.36363636363637,
          "weapon": "mac10",
          "weaponIconUrl": "/icons/cs2/weapons/mac10.png",
          "hasDefuseKit": false,
          "kevlar": true,
          "helmet": true
        }
      ],
      "liveBombEvents": [
        {
          "eventId": "622e44c37439a0ca61da5ca7f75f059d",
          "eventType": "BombPlanted",
          "playerName": "turbo",
          "playerNick": "turbo",
          "ctPlayers": 1,
          "tPlayers": 2,
          "bombSite": "A",
          "observedAt": "2026-10-16T17:05:49.256Z"
        },
        {
          "eventId": "a8aff80eed92642133f00414f189f77b",
          "eventType": "BombPlanted",
          "playerName": "whisper",
          "playerNick": "whisper",
          "ctPlayers": 5,
          "tPlayers": 5,
          "bombSite": "B",
          "observedAt": "2026-10-16T17:07:03.088Z"
        }
      ],
      "roundEndEvents": [
        {
          "eventId": "dd61c4bfa7c8e725ff903f2c773c66f0",
          "winnerSide": "TERRORIST",
          "winnerSideIcon": "t",
          "winnerSideIconUrl": "/icons/cs2/t_win.svg",
          "winType": "Target_Bombed",
          "winKind": "bomb",
          "winKindIconUrl": "/icons/cs2/bomb_exploded.svg",
          "terroristScore": 3,
          "counterTerroristScore": 0,
          "observedAt": "2026-10-16T17:17:19.687Z"
        },
        {
          "eventId": "4a7348cef8aa90b6a61ea57513268f1d",
          "winnerSide": "TERRORIST",
          "winnerSideIcon": "t",
          "winnerSideIconUrl": "/icons/cs2/t_win.svg",
          "winType": "Target_Bombed",
          "winKind": "bomb",
          "winKindIconUrl": "/icons/cs2/bomb_exploded.svg",
          "terroristScore": 1,
          "counterTerroristScore": 0,
          "observedAt": "2026-10-16T17:17:19.687Z"
        }
      ]
    },
    {
      "entityType": "cs2_live_snapshot",
      "snapshotId": "cdc07125-f4e0-42db-80b6-8c5c4ef8354a",
      "matchId": "cs2-match-2399309",
      "status": "live",
      "source": "live",
      "capt
…

Live state

GET/api/v1/cs2/live/{matchId}/state

The latest state of one live match: score, round, round timer, bomb status and players.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/state" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_live_state",
    "matchId": "cs2-match-2399309",
    "status": "live",
    "source": "live",
    "teams": {
      "team1Id": "cs2-team-11699",
      "team1Name": "BAKS",
      "team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c925a6d446e66fd050c441c49c45bfc7.webp",
      "team1AlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d84c1b8d46388c816c5d5d91c108f22e.webp",
      "team1DarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d84c1b8d46388c816c5d5d91c108f22e.webp",
      "team2Id": "cs2-team-12889",
      "team2Name": "G2 Ares",
      "team2LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/13f552c6b4bac009b0d75635bae399d5.webp",
      "team2AlternateLogoUrl": null,
      "team2DarkUiLogoUrl": null
    },
    "score": {
      "team1": 6,
      "team2": 4
    },
    "currentMap": "de_dust2",
    "currentRound": 11,
    "roundTimeSeconds": null,
    "roundTimeLeft": null,
    "currentScoreCt": 4,
    "currentScoreT": 6,
    "bombPlanted": false,
    "players": [
      {
        "playerId": "cs2-player-25509",
        "name": "turbo",
        "nick": "turbo",
        "side": "T",
        "alive": true,
        "hp": 100,
        "money": 1350,
        "kills": 11,
        "assists": 4,
        "deaths": 7,
        "adr": 90.63636363636364,
        "weapon": "ak47",
        "weaponIconUrl": "/icons/cs2/weapons/ak47.png",
        "hasDefuseKit": false,
        "kevlar": true,
        "helmet": true
      },
      {
        "playerId": "cs2-player-21447",
        "name": "xdENiSZERA",
        "nick": "xdENiSZERA",
        "side": "T",
        "alive": true,
        "hp": 100,
        "money": 6250,
        "kills": 8,
        "assists": 1,
        "deaths": 4,
        "adr": 53.36363636363637,
        "weapon": "ak47",
        "weaponIconUrl": "/icons/cs2/weapons/ak47.png",
        "hasDefuseKit": false,
        "kevlar": true,
        "helmet": true
      }
    ],
    "liveBombEvents": [
      {
        "eventId": "622e44c37439a0ca61da5ca7f75f059d",
        "eventType": "BombPlanted",
        "playerName": "turbo",
        "playerNick": "turbo",
        "ctPlayers": 1,
        "tPlayers": 2,
        "bombSite": "A",
        "observedAt": "2026-10-16T17:05:49.256Z"
      },
      {
        "eventId": "a8aff80eed92642133f00414f189f77b",
        "eventType": "BombPlanted",
        "playerName": "whisper",
        "playerNick": "whisper",
        "ctPlayers": 5,
        "tPlayers": 5,
        "bombSite": "B",
        "observedAt": "2026-10-16T17:07:03.088Z"
      }
    ],
    "roundEndEvents": [
      {
        "eventId": "dd61c4bfa7c8e725ff903f2c773c66f0",
        "winnerSide": "TERRORIST",
        "winnerSideIcon": "t",
        "winnerSideIconUrl": "/icons/cs2/t_win.svg",
        "winType": "Target_Bombed",
        "winKind": "bomb",
        "winKindIconUrl": "/icons/cs2/bomb_exploded.svg",
        "terroristScore": 3,
        "counterTerroristScore": 0,
        "observedAt": "2026-10-16T17:17:19.687Z"
      },
      {
        "eventId": "4a7348cef8aa90b6a61ea57513268f1d",
        "winnerSide": "TERRORIST",
        "winnerSideIcon": "t",
        "winnerSideIconUrl": "/icons/cs2/t_win.svg",
        "winType": "Target_Bombed",
        "winKind": "bomb",
        "winKindIconUrl": "/icons/cs2/bomb_exploded.svg",
        "terroristScore": 1,
        "counterTerroristScore": 0,
        "observedAt": "2026-10-16T
…

Live match

GET/api/v1/cs2/live/{matchId}

One live match with teams, series score and live-coverage details.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_live_match",
    "id": "cs2-match-2399309",
    "matchId": "cs2-match-2399309",
    "status": "live",
    "eventId": "cs2-event-9442",
    "eventName": "CCT 2026 Europe Series 11",
    "eventSlug": "cct-2026-europe-series-11",
    "eventLogoUrl": null,
    "eventImageUrl": null,
    "eventBannerImageUrl": null,
    "event": {
      "eventId": "cs2-event-9442",
      "name": "CCT 2026 Europe Series 11",
      "slug": "cct-2026-europe-series-11",
      "logoUrl": null,
      "imageUrl": null,
      "bannerImageUrl": null
    },
    "bestOf": 3,
    "teams": {
      "team1Id": "cs2-team-11699",
      "team1Name": "BAKS",
      "team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c925a6d446e66fd050c441c49c45bfc7.webp",
      "team1AlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d84c1b8d46388c816c5d5d91c108f22e.webp",
      "team1DarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d84c1b8d46388c816c5d5d91c108f22e.webp",
      "team2Id": "cs2-team-12889",
      "team2Name": "G2 Ares",
      "team2LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/13f552c6b4bac009b0d75635bae399d5.webp",
      "team2AlternateLogoUrl": null,
      "team2DarkUiLogoUrl": null
    },
    "score": {
      "team1": 1,
      "team2": 1
    },
    "currentMapScore": {
      "team1": 6,
      "team2": 4
    },
    "team1Id": "cs2-team-11699",
    "team2Id": "cs2-team-12889",
    "team1Name": "BAKS",
    "team2Name": "G2 Ares",
    "team1Score": 1,
    "team2Score": 1,
    "liveSource": "live",
    "currentMap": "de_dust2",
    "currentRound": 11,
    "…": "11 more fields"
  },
  "meta": {
    "source": "live",
    "dataAvailable": true
  }
}

Live matches

GET/api/v1/cs2/live
GET/api/v1/cs2/matches/live

Matches in progress now. `score` / `team1Score` / `team2Score` are the series (maps won); the map being played is `currentMapScore`. Use a `matchId` with the `/cs2/live/{matchId}/…` endpoints for round-level detail. These routes are equivalent; use whichever reads best.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/live" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_live_match",
      "id": "cs2-match-2399309",
      "matchId": "cs2-match-2399309",
      "status": "live",
      "eventId": "cs2-event-9442",
      "eventName": "CCT 2026 Europe Series 11",
      "eventSlug": "cct-2026-europe-series-11",
      "eventLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ac4495c84752b25a0971c9e8d2a3001e.webp",
      "eventImageUrl": null,
      "eventBannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/84a93101c98246a52273c60574cefee6.webp",
      "event": {
        "eventId": "cs2-event-9442",
        "name": "CCT 2026 Europe Series 11",
        "slug": "cct-2026-europe-series-11",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ac4495c84752b25a0971c9e8d2a3001e.webp",
        "imageUrl": null,
        "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/84a93101c98246a52273c60574cefee6.webp"
      },
      "bestOf": 3,
      "teams": {
        "team1Id": "cs2-team-11699",
        "team1Name": "BAKS",
        "team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c925a6d446e66fd050c441c49c45bfc7.webp",
        "team1AlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d84c1b8d46388c816c5d5d91c108f22e.webp",
        "team1DarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d84c1b8d46388c816c5d5d91c108f22e.webp",
        "team2Id": "cs2-team-12889",
        "team2Name": "G2 Ares",
        "team2LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/13f552c6b4bac009b0d75635bae399d5.webp",
        "team2AlternateLogoUrl": null,
        "team2DarkUiLogoUrl": null
      },
      "score": {
        "team1": 1,
        "team2": 1
      },
      "currentMapScore": {
        "team1": 6,
        "team2": 4
      },
      "team1Id": "cs2-team-11699",
      "team2Id": "cs2-team-12889",
      "team1Name": "BAKS",
      "team2Name": "G2 Ares",
      "team1Score": 1,
      "team2Score": 1,
      "liveSource": "live",
      "currentMap": "de_dust2",
      "currentRound": 11,
      "…": "11 more fields"
    },
    {
      "entityType": "cs2_live_match",
      "id": "cs2-match-2399413",
      "matchId": "cs2-match-2399413",
      "status": "live",
      "eventId": "cs2-event-8932",
      "eventName": "Thunderpick World Championship 2026",
      "eventSlug": "thunderpick-world-championship-2026",
      "eventLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/72d09c8b47e6a587345d31df90aabb0a.webp",
      "eventImageUrl": null,
      "eventBannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ca4efb32a74416feba939918f7919aa8.webp",
      "event": {
        "eventId": "cs2-event-8932",
        "name": "Thunderpick World Championship 2026",
        "slug": "thunderpick-world-championship-2026",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/72d09c8b47e6a587345d31df90aabb0a.webp",
        "imageUrl": null,
        "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ca4efb32a74416feba939918f7919aa8.webp"
      },
      "bestOf": 3,
      "teams": {
        "team1Id": "cs2-team-12394",
        "team1Name": "BETBOOM",
        "team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/6e18a57cf1f31f12ce32b9665fa7943c.webp",
        "team1AlternateLogoUrl": null,
        "team1DarkUiLogoUrl": null,
        "team2Id": "cs2-team-1
…

Try the CS2 Live Scores API

Run a real request with your key, then wire the same call into your app. The free plan includes 500 requests a month.

bash
curl "https://api.citoapi.com/api/v1/cs2/live" \
  -H "x-api-key: YOUR_API_KEY"