Real-timeLive scores

CS2 WebSocket API: live matches, pushed.

Stop polling: open the CS2 live stream and every change to a match in progress arrives as it is synced, with the series score, the map, the map score and the round. Server-Sent Events work on every plan, the WebSocket comes with Scale, and webhooks with Pro.

  • SSE on every plan
  • WebSocket on Scale
  • Ping every 15 s
GET /cs2/live200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/live" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": [    {      "matchId": "cs2-match-2399431",      "eventName": "Elisa BreakOut Series 2",      "team1Name": "ENCE",      "team2Name": "Phantom",      "bestOf": 3,      "score": { "team1": 0, "team2": 1 },      "currentMap": "de_dust2",      "currentMapScore": { "team1": 11, "team2": 12 },      "currentRound": 24    }    ...  ]}

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

Four ways to get live CS2

From simplest to most real-time; all carry the same match objects.

Polling

GET /cs2/matches/live: every match in progress with series, map and round score.

SSE stream

GET /cs2/live/stream on every plan: cs2.live.update events, a ping every 15 seconds, matchId to follow one match.

WebSocket

/cs2/live/ws on Scale (or Pro with the add-on): a snapshot on subscribe, then updates as they sync.

Webhooks

Match events pushed to your URL on Pro and Scale; first delivery attempt about 1.2 s after the event at the median.

Round state

Live round number and the current map's score on every update.

Real-time on Pro

Pro and above get live data in real time; Free and Starter on a 60-second delay.

Real-time numbers

Measured on production.

  • Live CS2 match data on the CS2 API refreshes every 15 seconds at the median, measured over 22,479 live sync runs in the 7 days to 3 October 2026.
  • The CS2 API answered 197,791 requests in the 24 hours to 3 October 2026 with a median server response time of 227 ms.
  • The CS2 SSE stream sends a ping every 15 seconds and counts toward the monthly quota like polling: one request on connect, then one per 15 seconds open.

Which delivery on which plan

DeliveryPlans
Polling GET /cs2/matches/liveEvery plan (60-second delay on Free and Starter)
SSE GET /cs2/live/streamEvery plan
WebSocket /cs2/live/wsScale and Enterprise; Pro with the add-on
WebhooksPro and Scale

Endpoints you can ship with

The live group: polling, the stream and one match in full.

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; Pro with the Live WebSockets add-on.

Frequently asked questions

Streams, sockets and plans

Something missing? Email support@citoapi.com.

Does the CS2 API have a WebSocket?

Yes: /cs2/live/ws, included on Scale and Enterprise and available on Pro as an add-on. It sends a snapshot when you subscribe and then each update.

Is there a stream on cheaper plans?

Yes. GET /cs2/live/stream is a Server-Sent Events stream on every plan, with a ping every 15 seconds.

How real-time is it?

Live CS2 data syncs every 15 seconds at the median. Pro and above see it as it lands; Free and Starter on a 60-second delay.

Do streams count against my quota?

Yes, like polling: one request when the stream connects, then one for every 15 seconds it stays open.

Can I get pushed events instead?

Yes. Webhooks on Pro and Scale push match events to your URL.

See pricing

Push live scoreboards

Open the SSE stream on a free key today; move to Scale for the WebSocket.