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: 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-2398068",
"transports": {
"websocket": {
"url": "wss://api.citoapi.com/api/v1/cs2/live/ws?matchId=cs2-match-2398068",
"auth": "x-api-key header, Authorization: Bearer, or ?apiKey=",
"subscribe": {
"action": "subscribe",
"rooms": [
"match:cs2-match-2398068"
]
},
"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-2398068",
"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-2398520",
"status": "live",
"bestOf": null,
"currentGame": 3,
"seriesScore": {
"teamA": 1,
"teamB": 1
},
"game": {
"id": "cs2-match-2398520_de_dust2",
"map": "de_dust2",
"round": 1,
"phase": "live",
"clockSeconds": null,
"bomb": null,
"score": {
"ct": 0,
"t": 0
},
"sides": {
"ctTeamId": "cs2-team-11955",
"tTeamId": "cs2-team-12164"
}
},
"teams": [
{
"id": "cs2-team-11955",
"name": "LAG",
"side": "CT",
"score": 1,
"mapScore": 0,
"playersAlive": 4,
"equipmentValue": null,
"money": 13100,
"timeoutsRemaining": null
},
{
"id": "cs2-team-12164",
"name": "Zomblers",
"side": "T",
"score": 1,
"mapScore": 0,
"playersAlive": 1,
"equipmentValue": null,
"money": 14350,
"timeoutsRemaining": null
}
],
"players": [
{
"id": "cs2-player-20273",
"nickname": "CAJUN",
"teamId": "cs2-team-12164",
"side": "T",
"alive": false,
"hp": 0,
"armor": null,
"helmet": false,
"money": 3250,
"weapon": null,
"kills": 1,
"assists": 0,
"deaths": 4,
"adr": 100,
"kast": null,
"rating": null
},
{
"id": "cs2-player-23410",
"nickname": "CoolComs",
"teamId": "cs2-team-12164",
"side": "T",
"alive": true,
"hp": 100,
"armor": null,
"helmet": false,
"money": 3550,
"weapon": null,
"kills": 0,
"assists": 0,
"deaths": 0,
"adr": 0,
"kast": null,
"rating": null
}
],
"lastEvent": {
"id": null,
"type": "BombPlanted",
"round": 1,
"clockSeconds": null,
"killerPlayerId": null,
"victimPlayerId": null,
"weapon": null,
"headshot": null,
"throughSmoke": null
},
"meta": {
"updatedAt": "2026-09-23T03:14:58.810Z",
"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-2398520",
"rounds": [
{
"eventId": "b9b7ddfa1ac438bc372af0aecee74d9e",
"eventType": "RoundEnd",
"winner": "CT",
"winType": "CTs_Win",
"terroristScore": 9,
"counterTerroristScore": 9,
"payload": {
"counterTerroristScore": 9,
"terroristScore": 9,
"winner": "CT",
"winType": "CTs_Win"
},
"webhookEligible": true,
"observedAt": "2026-09-23T02:49:58.502Z"
},
{
"eventId": "402ca7aa8bca01623a10d2377fa2748d",
"eventType": "RoundEnd",
"winner": "CT",
"winType": "CTs_Win",
"terroristScore": 9,
"counterTerroristScore": 8,
"payload": {
"counterTerroristScore": 8,
"terroristScore": 9,
"winner": "CT",
"winType": "CTs_Win"
},
"webhookEligible": true,
"observedAt": "2026-09-23T02:49:58.502Z"
}
],
"currentRound": 1
},
"meta": {
"count": 44,
"limit": 44,
"total": 44,
"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-2398520",
"events": [
{
"eventId": "8aedca15ed03f6cbf683ce5d92ae430e",
"eventType": "BombPlanted",
"playerName": "Zoker",
"playerNick": "Zoker",
"ctPlayers": 4,
"tPlayers": 4,
"bombSite": "A",
"payload": {
"playerName": "Zoker",
"playerNick": "Zoker",
"ctPlayers": 4,
"tPlayers": 4,
"bombSite": "A"
},
"source": "live",
"webhookEligible": true,
"observedAt": "2026-09-23T02:49:58.502Z"
},
{
"eventId": "ed4ddb86ad56fd364e84cd32ab4c0cbf",
"eventType": "BombPlanted",
"playerName": "CoolComs",
"playerNick": "CoolComs",
"ctPlayers": 4,
"tPlayers": 5,
"bombSite": "B",
"payload": {
"playerName": "CoolComs",
"playerNick": "CoolComs",
"ctPlayers": 4,
"tPlayers": 5,
"bombSite": "B"
},
"source": "live",
"webhookEligible": true,
"observedAt": "2026-09-23T02:49:58.502Z"
}
]
},
"meta": {
"count": 70,
"limit": 70,
"total": 70,
"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-2398520",
"status": "live",
"isCurrent": true,
"dataAvailable": true,
"unavailableReason": null,
"source": "live",
"capturedAt": "2026-09-23T03:15:13.832Z",
"players": [
{
"playerId": "cs2-player-20273",
"name": "CAJUN",
"nick": "CAJUN",
"side": "T",
"steamId": "1:1:40089995",
"alive": false,
"hp": 57,
"money": 3250,
"kills": 1,
"assists": 0,
"deaths": 4,
"adr": 100,
"weapon": null,
"weaponIconUrl": null,
"hasDefuseKit": false,
"kevlar": false,
"helmet": false
},
{
"playerId": "cs2-player-23410",
"name": "CoolComs",
"nick": "CoolComs",
"side": "T",
"steamId": "1:1:188019378",
"alive": true,
"hp": 100,
"money": 3550,
"kills": 0,
"assists": 0,
"deaths": 0,
"adr": 0,
"weapon": null,
"weaponIconUrl": null,
"hasDefuseKit": false,
"kevlar": false,
"helmet": false
}
],
"lastVerified": "2026-09-23T03:15:14.115Z"
},
"meta": {
"count": 9,
"dataAvailable": true,
"confirmationMaxAgeMs": 45000,
"limit": 9,
"total": 9,
"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-2398520-map-1",
"matchId": "cs2-match-2398520",
"mapNumber": 1,
"mapName": "Mirage",
"status": "completed",
"team1Score": 13,
"team2Score": 8,
"team1Halves": [
7,
6
],
"team2Halves": [
5,
3
],
"winnerTeamId": "cs2-team-11955",
"durationRounds": 21,
"lastSyncedAt": "2026-09-23T03:14:03.598Z",
"playerStats": [
{
"id": "live-source-match-2398520-map-1-Bwills",
"mapId": "cs2-match-2398520-map-1",
"matchId": "cs2-match-2398520",
"playerId": "cs2-player-16647",
"playerName": "Bwills",
"teamId": "cs2-team-11955",
"teamName": "LAG",
"kills": 9,
"deaths": 17,
"assists": 3,
"plusMinus": -8,
"adr": null,
"kast": null,
"rating": 0.5,
"ratingVersion": "source_rating_3_0",
"headshots": 4,
"headshotPercent": null,
"firstKills": 0,
"firstDeaths": 3,
"source": "live",
"lastSyncedAt": "2026-09-23T03:04:10.092Z",
"mapNameCanonical": null,
"imageUrl": null,
"mapImageUrl": null,
"…": "7 more fields"
},
{
"id": "live-source-match-2398520-map-1-CAJUN",
"mapId": "cs2-match-2398520-map-1",
"matchId": "cs2-match-2398520",
"playerId": "cs2-player-20273",
"playerName": "CAJUN",
"teamId": "cs2-team-12164",
"teamName": "Zomblers",
"kills": 11,
"deaths": 19,
"assists": 8,
"plusMinus": -8,
"adr": null,
"kast": null,
"rating": 0.73,
"ratingVersion": "source_rating_3_0",
"headshots": 7,
"headshotPercent": null,
"firstKills": 2,
"firstDeaths": 2,
"source": "live",
"lastSyncedAt": "2026-09-23T03:04:10.832Z",
"mapNameCanonical": null,
"imageUrl": null,
"mapImageUrl": null,
"…": "7 more fields"
}
],
"bombEvents": [],
"bombStats": [],
"weaponAggregates": [],
"mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/mirage.png",
"pickTeamId": "cs2-team-12164",
"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-2398520-map-2",
"matchId": "cs2-match-2398520",
"mapNumber": 2,
"mapName": "Inferno",
"status": "completed",
"team1Score": 11,
"team2Score": 13,
"team1Halves": [
6
],
"team2Halves": [
6
],
"winnerTeamId": "cs2-team-12164",
"durationRounds": 24,
"lastSyncedAt": "2026-09-23T03:14:03.631Z",
"playerStats": [
{
"id": "live-source
…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": "56a8f338-abb9-41ff-b77f-5479dec17966",
"matchId": "cs2-match-2398520",
"status": "live",
"source": "live",
"capturedAt": "2026-09-23T03:15:13.928Z",
"teams": {
"team1Name": "LAG",
"team2Name": "Zomblers",
"terroristTeamName": "Zomblers",
"counterTerroristTeamName": "LAG"
},
"score": {
"team1": 0,
"team2": 0
},
"currentMap": "de_dust2",
"currentRound": 1,
"roundTimeSeconds": null,
"currentScoreCt": 11,
"currentScoreT": 13,
"roundTimeLeft": null,
"bombPlanted": false,
"players": [
{
"playerId": "cs2-player-20273",
"name": "CAJUN",
"nick": "CAJUN",
"side": "T",
"steamId": "1:1:40089995",
"alive": false,
"hp": 57,
"money": 3250,
"kills": 1,
"assists": 0,
"deaths": 4,
"adr": 100,
"weapon": null,
"weaponIconUrl": null,
"hasDefuseKit": false,
"kevlar": false,
"helmet": false
},
{
"playerId": "cs2-player-23410",
"name": "CoolComs",
"nick": "CoolComs",
"side": "T",
"steamId": "1:1:188019378",
"alive": true,
"hp": 100,
"money": 3550,
"kills": 0,
"assists": 0,
"deaths": 0,
"adr": 0,
"weapon": null,
"weaponIconUrl": null,
"hasDefuseKit": false,
"kevlar": false,
"helmet": false
}
],
"liveBombEvents": [
{
"eventId": "8aedca15ed03f6cbf683ce5d92ae430e",
"eventType": "BombPlanted",
"playerName": "Zoker",
"playerNick": "Zoker",
"ctPlayers": 4,
"tPlayers": 4,
"bombSite": "A",
"observedAt": "2026-09-23T02:49:58.502Z"
},
{
"eventId": "ed4ddb86ad56fd364e84cd32ab4c0cbf",
"eventType": "BombPlanted",
"playerName": "CoolComs",
"playerNick": "CoolComs",
"ctPlayers": 4,
"tPlayers": 5,
"bombSite": "B",
"observedAt": "2026-09-23T02:49:58.502Z"
}
],
"roundEndEvents": [
{
"eventId": "b9b7ddfa1ac438bc372af0aecee74d9e",
"winnerSide": "CT",
"winnerSideIcon": "ct",
"winnerSideIconUrl": "/icons/cs2/ct_win.svg",
"winType": "CTs_Win",
"winKind": "elim",
"winKindIconUrl": "/icons/cs2/ct_win.svg",
"terroristScore": 9,
"counterTerroristScore": 9,
"observedAt": "2026-09-23T02:49:58.502Z"
},
{
"eventId": "402ca7aa8bca01623a10d2377fa2748d",
"winnerSide": "CT",
"winnerSideIcon": "ct",
"winnerSideIconUrl": "/icons/cs2/ct_win.svg",
"winType": "CTs_Win",
"winKind": "elim",
"winKindIconUrl": "/icons/cs2/ct_win.svg",
"terroristScore": 9,
"counterTerroristScore": 8,
"observedAt": "2026-09-23T02:49:58.502Z"
}
]
},
{
"entityType": "cs2_live_snapshot",
"snapshotId": "4ff63372-5eff-40e2-97ad-eb8ab913adbc",
"matchId": "cs2-match-2398520",
"status": "live",
"source": "live",
"capturedAt": "2026-09-23
…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-2398520",
"status": "live",
"source": "live",
"teams": {
"team1Id": "cs2-team-11955",
"team1Name": "LAG",
"team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/297f07ea26dbfe4dc4342ad164a661e2.webp",
"team1AlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8bb92ff4ccd53fb7cc88c565b3ddbd92.webp",
"team1DarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8bb92ff4ccd53fb7cc88c565b3ddbd92.webp",
"team2Id": "cs2-team-12164",
"team2Name": "Zomblers",
"team2LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f04294231ef12b6d1f708e5ec505209e.webp",
"team2AlternateLogoUrl": null,
"team2DarkUiLogoUrl": null
},
"score": {
"team1": 0,
"team2": 0
},
"currentMap": "de_dust2",
"currentRound": 1,
"roundTimeSeconds": null,
"roundTimeLeft": null,
"currentScoreCt": 11,
"currentScoreT": 13,
"bombPlanted": false,
"players": [
{
"playerId": "cs2-player-20273",
"name": "CAJUN",
"nick": "CAJUN",
"side": "T",
"steamId": "1:1:40089995",
"alive": false,
"hp": 57,
"money": 3250,
"kills": 1,
"assists": 0,
"deaths": 4,
"adr": 100,
"weapon": null,
"weaponIconUrl": null,
"hasDefuseKit": false,
"kevlar": false,
"helmet": false
},
{
"playerId": "cs2-player-23410",
"name": "CoolComs",
"nick": "CoolComs",
"side": "T",
"steamId": "1:1:188019378",
"alive": true,
"hp": 100,
"money": 3550,
"kills": 0,
"assists": 0,
"deaths": 0,
"adr": 0,
"weapon": null,
"weaponIconUrl": null,
"hasDefuseKit": false,
"kevlar": false,
"helmet": false
}
],
"liveBombEvents": [
{
"eventId": "8aedca15ed03f6cbf683ce5d92ae430e",
"eventType": "BombPlanted",
"playerName": "Zoker",
"playerNick": "Zoker",
"ctPlayers": 4,
"tPlayers": 4,
"bombSite": "A",
"observedAt": "2026-09-23T02:49:58.502Z"
},
{
"eventId": "ed4ddb86ad56fd364e84cd32ab4c0cbf",
"eventType": "BombPlanted",
"playerName": "CoolComs",
"playerNick": "CoolComs",
"ctPlayers": 4,
"tPlayers": 5,
"bombSite": "B",
"observedAt": "2026-09-23T02:49:58.502Z"
}
],
"roundEndEvents": [
{
"eventId": "b9b7ddfa1ac438bc372af0aecee74d9e",
"winnerSide": "CT",
"winnerSideIcon": "ct",
"winnerSideIconUrl": "/icons/cs2/ct_win.svg",
"winType": "CTs_Win",
"winKind": "elim",
"winKindIconUrl": "/icons/cs2/ct_win.svg",
"terroristScore": 9,
"counterTerroristScore": 9,
"observedAt": "2026-09-23T02:49:58.502Z"
},
{
"eventId": "402ca7aa8bca01623a10d2377fa2748d",
"winnerSide": "CT",
"winnerSideIcon": "ct",
"winnerSideIconUrl": "/icons/cs2/ct_win.svg",
"winType": "CTs_Win",
"winKind": "elim",
"winKindIconUrl": "/icons/cs2/ct_win.svg",
"terroristScore": 9,
"counterTerroristScore": 8,
"observedAt": "2026-09-23T02:49:58.502Z"
}
],
"latestSnapsh
…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-2398520",
"matchId": "cs2-match-2398520",
"status": "live",
"eventId": "cs2-event-9356",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-2",
"eventLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cd79123cf4afe29db63f20edda3125dc.webp",
"eventImageUrl": null,
"eventBannerImageUrl": null,
"event": {
"eventId": "cs2-event-9356",
"name": "ESL Challenger League Season 52 North America Cup 2",
"slug": "esl-challenger-league-season-52-north-america-cup-2",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cd79123cf4afe29db63f20edda3125dc.webp",
"imageUrl": null,
"bannerImageUrl": null
},
"bestOf": null,
"teams": {
"team1Id": "cs2-team-11955",
"team1Name": "LAG",
"team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/297f07ea26dbfe4dc4342ad164a661e2.webp",
"team1AlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8bb92ff4ccd53fb7cc88c565b3ddbd92.webp",
"team1DarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8bb92ff4ccd53fb7cc88c565b3ddbd92.webp",
"team2Id": "cs2-team-12164",
"team2Name": "Zomblers",
"team2LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f04294231ef12b6d1f708e5ec505209e.webp",
"team2AlternateLogoUrl": null,
"team2DarkUiLogoUrl": null
},
"score": {
"team1": 1,
"team2": 1
},
"currentMapScore": {
"team1": 0,
"team2": 0
},
"team1Id": "cs2-team-11955",
"team2Id": "cs2-team-12164",
"team1Name": "LAG",
"team2Name": "Zomblers",
"team1Score": 1,
"team2Score": 1,
"currentMap": "de_dust2",
"currentRound": 1,
"roundTimeSeconds": null,
"…": "10 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-2398520",
"matchId": "cs2-match-2398520",
"status": "live",
"eventId": "cs2-event-9356",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-2",
"eventLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/738f1b6567ed5bf2813a2ef99b09ecfd.webp",
"eventImageUrl": null,
"eventBannerImageUrl": null,
"event": {
"eventId": "cs2-event-9356",
"name": "ESL Challenger League Season 52 North America Cup 2",
"slug": "esl-challenger-league-season-52-north-america-cup-2",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/738f1b6567ed5bf2813a2ef99b09ecfd.webp",
"imageUrl": null,
"bannerImageUrl": null
},
"bestOf": null,
"teams": {
"team1Id": "cs2-team-11955",
"team1Name": "LAG",
"team1LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/297f07ea26dbfe4dc4342ad164a661e2.webp",
"team1AlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8bb92ff4ccd53fb7cc88c565b3ddbd92.webp",
"team1DarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8bb92ff4ccd53fb7cc88c565b3ddbd92.webp",
"team2Id": "cs2-team-12164",
"team2Name": "Zomblers",
"team2LogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f04294231ef12b6d1f708e5ec505209e.webp",
"team2AlternateLogoUrl": null,
"team2DarkUiLogoUrl": null
},
"score": {
"team1": 1,
"team2": 1
},
"currentMapScore": {
"team1": 0,
"team2": 0
},
"team1Id": "cs2-team-11955",
"team2Id": "cs2-team-12164",
"team1Name": "LAG",
"team2Name": "Zomblers",
"team1Score": 1,
"team2Score": 1,
"currentMap": "de_dust2",
"currentRound": 1,
"roundTimeSeconds": null,
"…": "10 more fields"
}
],
"meta": {
"count": 1,
"source": "live",
"filteredUnconfirmedLive": 0,
"confirmationMaxAgeMs": 45000,
"limit": 1,
"total": 1,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}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"