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)
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
| Parameter | Type | Description |
|---|---|---|
| matchId | string | Match id. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/stream" \
-H "x-api-key: YOUR_API_KEY"Live socket details
Connection details for subscribing to one live match over the live stream.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/socket" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
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
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| shape | string | Filter by shape. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/scoreboard" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
Round-by-round results so far in a live match: winner, side and how the round ended.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/rounds" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
Kills, bomb plants and defuses, and round ends recorded during a live match.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/events" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
Running per-player stats for a live match.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/player-stats" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
Map list for a live match with per-map score and status.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/maps" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
Timestamped snapshots of a live match (score, round, players) so the match can be replayed over time. Filter with `from` / `to`.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| from | string | Start of the date range (ISO 8601, UTC). |
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
| source | string | Ranking to use: omit for Valve Regional Standings, or world for the world ranking filtered to this region. |
| to | string | End of the date range (ISO 8601, UTC). |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/snapshots" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
The latest state of one live match: score, round, round timer, bomb status and players.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID/state" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
One live match with teams, series score and live-coverage details.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/live/MATCH_ID" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
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
curl "https://api.citoapi.com/api/v1/cs2/live" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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.
curl "https://api.citoapi.com/api/v1/cs2/live" \
-H "x-api-key: YOUR_API_KEY"