BetaRead the CS2 API docs

CS2 live scores, round by round.

Every match in progress with the series score, the map being played, its score, and the round. Open one match for the timer, the bomb, and each player's money and equipment.

  • Round-level live state
  • SSE on every plan
  • Real-time from Pro
GET /cs2/live200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/live" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": [    {      "id": "cs2-match-2398703",      "status": "live",      "eventName": "ESEA Season 58 Europe Finals",      "bestOf": 3,      "team1Name": "Falcons Force",      "team2Name": "Young TigeRES",      "score": {        "team1": 1,        "team2": 1      },      "currentMap": "de_mirage",      "currentMapScore": {        "team1": 13,        "team2": 14      },      "currentRound": 28,      "liveSource": "live"    },    ...  ]}

Seamless Integration with our MCP Server

Give Claude, Cursor, and ChatGPT the CS2 data. One command writes the MCP config; agents call live scoreboard, team map stat, opening duel, and transfer tools instead of inventing match IDs, and your key stays on your machine.

MCPInstall the Cito MCP server
Claude
Cursor
OpenAI
Python
Cito API
Next.js
Discord
Slack
GitHub

What the live feed carries

The fields a live scoreboard, a bot, or a second-screen app needs, in the same shape on REST and on the stream.

Series, map, and round

score is maps won, currentMapScore is the map in play, and currentRound is the round being played.

Round timer and bomb

The round clock, whether the bomb is planted, and plants, defuses, and kills as they are recorded.

Every player's economy

Kills, deaths, money, equipment, armor, and health for all ten players on the live scoreboard.

Round-by-round log

Each finished round's winner, side, and how it ended, so you can draw the match as it happens.

Pushed over SSE

Keep /cs2/live/stream open for cs2.live.update events, on every plan. Pass matchId to follow one match.

A backup that says so

If a match's main feed goes quiet, a backup source keeps the score moving and liveSource reads live_backup.

Endpoints you can ship with

Start on the live group: list the matches, open one, then keep the stream open for updates.

Live matches

Poll the live list for every match in progress, open one match for its round, timer, bomb and players, or keep an SSE stream open and get each update pushed.

View docs
  • GET/api/v1/cs2/live

    Matches in progress: series score, map in play, map score, current round.

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

    One live match: score, round, round timer, bomb status and players.

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

    Series score, current map and round, and each player's kills, deaths, money and equipment.

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

    Round-by-round results so far: winner, side and how each round ended.

  • GET/api/v1/cs2/live/stream

    Server-Sent Events push of every live update. Every plan; counts like polling.

  • GET/api/v1/cs2/live/ws

    WebSocket with a room per match. Scale and Enterprise.

FAQs

Delay, the stream, WebSockets, and billing

Can't find what you're looking for? Contact our customer support team

Read the live docs

Ship live scoreboards

Create a free key, list the matches in progress, and have a live score on screen in minutes.