Docs/CS2 API

Counter-Strike 2 API

Beta

Live matches down to the round, results with every map score, per-map player stats, teams, players, events, and the world and VRS rankings. This is the endpoint reference; the CS2 API overview covers plans, coverage and skin prices.

CS2 is in beta. The data is live and checked continuously, but if something looks wrong (a score, a stat line, a roster, a missing match), email support@citoapi.com with the endpoint you called and the match, team or player id. Reports go straight to the people fixing it.

BASEhttps://api.citoapi.com/api/v1
CS2 API RootAppend any endpoint path below.

Quick start

Bash
curl "https://api.citoapi.com/api/v1/cs2/matches/recent?limit=5" \
  -H "x-api-key: YOUR_API_KEY"

Every response is { success, data, meta }. Ids look like cs2-match-2398421, cs2-team-9565 and cs2-player-11893; teams and players also accept their slug (vitality, zywoo). Times are ISO 8601 in UTC.

Full endpoint reference

Every CS2 endpoint, with parameters, a curl example and a real response, grouped by area.

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.
CS2 Matches API
Schedules, results and everything recorded about a single series: maps played, player stats per map, lineup form, head-to-head history, streams and demo links.
CS2 Maps and Rounds API
Map-level data: the active duty pool, the map catalog, and for each map played in a series its player stats, round history and events.
CS2 Rankings API
Team rankings: the world ranking, Valve Regional Standings, and regional boards.
CS2 Teams API
Team profiles by id or slug ("vitality", "natus-vincere"): roster and roster history, results, upcoming matches, form, map stats and head-to-head.
CS2 Player Stats API
Player profiles by id or slug ("donk", "zywoo"): headline stats, career and seasons, map and weapon splits, clutches and flash assists, form and team history.
CS2 Tournaments API
Tournaments and events (the two route families are equivalent): calendar, participants, matches, standings, brackets, results and event-level stats.
CS2 Stats and Leaderboards API
Aggregated leaders and scene-wide stats: leaderboards by metric, and deep dives into duels, clutches, utility and economy.
CS2 Skin Prices API
The skin market: search and filter skins, compare prices across marketplaces, read order books and price history, and track movers.
CS2 Transfers API
Roster moves across the scene, filterable by player, team, status and date range.
CS2 Search and Reference API
Search across teams, players, events and matches, the reference catalogs, webhook event types and freshness endpoints.

Endpoints

GET/api/v1/cs2/live
Live MatchesMatches in progress: series score, map in play, map score and round.

Summary

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

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/live" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/live/{matchId}/state
StateOne live match: round, round score, sides, players, bomb.

Summary

One live match: round, round score, sides, players, bomb.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/live/{matchId}/state" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/live/stream
StreamServer-Sent Events push of live updates. Every plan; billed like polling (see below).

Summary

Server-Sent Events push of live updates. Every plan; billed like polling (see below).

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/live/stream" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/matches/upcoming
Upcoming ScheduleThe schedule, soonest first.

Summary

The schedule, soonest first.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/matches/upcoming" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/matches/recent
Recent MatchesLatest results with every map and its score.

Summary

Latest results with every map and its score.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/matches/recent" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/matches/{matchId}
MatchIdOne match: maps, veto, event, streams.

Summary

One match: maps, veto, event, streams.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/matches/{matchId}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/matches/{matchId}/player-stats
Player StatsPer-map player lines: kills, deaths, assists, ADR, KAST, rating.

Summary

Per-map player lines: kills, deaths, assists, ADR, KAST, rating.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/matches/{matchId}/player-stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/teams/{teamIdOrSlug}
TeamIdOrSlugTeam profile, current roster (players and coach) and recent results.

Summary

Team profile, current roster (players and coach) and recent results.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/teams/{teamIdOrSlug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/players/{playerIdOrSlug}
PlayerIdOrSlugPlayer profile and current team.

Summary

Player profile and current team.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/players/{playerIdOrSlug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/players/{playerIdOrSlug}/stats
PlayerIdOrSlug StatsCareer totals and per-map stat lines.

Summary

Career totals and per-map stat lines.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/players/{playerIdOrSlug}/stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/rankings
RankingsWorld ranking. Add ?source=vrs for Valve's VRS ranking.

Summary

World ranking. Add ?source=vrs for Valve's VRS ranking.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/rankings" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/events/upcoming
Upcoming ScheduleTournaments starting soon. Also /events/live and /events/recent.

Summary

Tournaments starting soon. Also /events/live and /events/recent.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/events/upcoming" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/cs2/search?q=vitality
SearchTeams, players, events and matches by name.

Summary

Teams, players, events and matches by name.

REST
Bash
curl "https://api.citoapi.com/api/v1/cs2/search?q=vitality" \
  -H "x-api-key: YOUR_API_KEY"

These are the main ones. Every CS2 route, with its parameters and a real example response, is in the OpenAPI document (tag CS2).

Live data

Poll GET /cs2/live for everything in progress, then GET /cs2/live/{matchId}/state for one match. In the live list, score is the series (maps won) and currentMapScore is the map being played.

Push instead of polling. GET /cs2/live/stream sends every update as it happens (Server-Sent Events, add ?matchId= to follow one match). An open stream counts toward your monthly quota like polling: one request when it connects, then one for every 15 seconds it stays open. When the quota runs out it sends an error event and closes.

Bash
curl -N "https://api.citoapi.com/api/v1/cs2/live/stream" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: text/event-stream"

Live data comes from the in-game feed. If that feed goes quiet for a match, a backup feed takes over within about a minute and the state says source: "live_backup": series score and the map in play, without rounds or players, until the main feed returns.

Plans

Free
500 requests a month, 30 days of in-depth history, live data 60 seconds behind.
Starter ($15/mo)
Pick CS2 as your game: 10,000 requests a month, 90 days of history, live data 60 seconds behind.
Pro and up
Every game, real-time live data, the full archive.
Live WebSockets
Included on Scale and Enterprise; on Pro with the Live WebSockets add-on.

Choose a plan or read rate limits and pricing.