DocsFull CS2 documentation

Every CS2 endpoint, one page.

The full Counter-Strike 2 API surface, grouped by job, with what each route returns. Base URL https://api.citoapi.com/api/v1, key in the x-api-key header, JSON everywhere.

  • 8 endpoint groups
  • Paged lists with meta
  • 500 free requests / month
GET /cs2/rankings/vrs?limit=3200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/rankings/vrs?limit=3" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": [    ...  ],  "meta": {    "count": 3,    "total": 359,    "page": 1,    "totalPages": 120,    "hasNext": true  }}

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

Built to be integrated

Conventions that stay the same across every CS2 route.

One base URL

https://api.citoapi.com/api/v1, with the key in x-api-key.

IDs and slugs

Teams, players and events accept an ID or a readable slug.

Paging

Lists take limit and page and return count, total and hasNext.

Clear errors

Limit errors name your plan, the limit and when it resets.

Push

SSE on every plan, WebSockets on Scale.

MCP

The same data as tools for AI agents.

All CS2 endpoints

GET routes under https://api.citoapi.com/api/v1. Send x-api-key on every request.

Live matches · Series, map and round score

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.

  • GET /api/v1/cs2/liveMatches in progress: series score, map in play, map score, current round.
  • GET /api/v1/cs2/live/{matchId}/stateOne live match: score, round, round timer, bomb status and players.
  • GET /api/v1/cs2/live/{matchId}/scoreboardSeries score, current map and round, and each player's kills, deaths, money and equipment.
  • GET /api/v1/cs2/live/{matchId}/roundsRound-by-round results so far: winner, side and how each round ended.
  • GET /api/v1/cs2/live/streamServer-Sent Events push of every live update. Every plan; counts like polling.
  • GET /api/v1/cs2/live/wsWebSocket with a room per match. Scale and Enterprise; Pro with the Live WebSockets add-on.

Results · Series and map scores, box scores

Finished matches with the series score and winner, every map and its score, and the player lines behind them.

  • GET /api/v1/cs2/matches/recentFinished matches with final series score and winner, newest first.
  • GET /api/v1/cs2/matches/{matchId}One match: event, teams, series score, and maps.
  • GET /api/v1/cs2/matches/{matchId}/mapsEach map: name, score, winner, and the team that picked it.
  • GET /api/v1/cs2/matches/{matchId}/player-statsPer-player stats for each map: kills, deaths, ADR, KAST and rating.
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/resultsOne team's finished matches, newest first.
  • GET /api/v1/cs2/events/{eventIdOrSlug}/resultsFinal placements and prize money of a tournament.

Schedule · Upcoming matches and events

What is on next: upcoming matches soonest first, today's slate, one team's fixtures, and the tournament calendar.

  • GET /api/v1/cs2/matches/upcomingScheduled matches, soonest first.
  • GET /api/v1/cs2/matches/todayMatches scheduled, live or finished today (UTC).
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/upcomingOne team's scheduled matches.
  • GET /api/v1/cs2/events/upcomingScheduled tournaments, soonest first.
  • GET /api/v1/cs2/events/calendarTournaments in a date range, with from and to.
  • GET /api/v1/cs2/matches/{matchId}/streamsBroadcast links for a match, when known.

Odds & models · Market prices, history, form, H2H

Match and map winner prices with implied probability, liquidity and spread, every price change since the market opened, and the team form, map stats and head-to-head a model needs next to them.

  • GET /api/v1/cs2/matches/upcoming?include=oddsUpcoming matches with each one's current market prices attached.
  • GET /api/v1/cs2/matches/{matchId}/oddsMatch and map winner odds: decimal price, implied probability, liquidity, spread, status.
  • GET /api/v1/cs2/matches/{matchId}/odds/historyEvery captured price change for the match and each map, oldest first.
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/formA team's recent results and win rate.
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/map-statsWin rate and matches played on each map.
  • GET /api/v1/cs2/h2h/{teamIdOrSlug}/{opponentIdOrSlug}Head-to-head record and the meetings behind it.

Positions & heatmaps · Grenades, kill spots, bomb plants

Where every grenade went off, where each kill and death happened, and where the bomb was planted, in game coordinates and already placed on the map's radar, plus heatmaps per map or per player.

  • GET /api/v1/cs2/maps/{mapId}/utilityEvery smoke, flash, HE and molotov on a map: landing spot, thrower, round, duration.
  • GET /api/v1/cs2/maps/{mapId}/positionsGrenades, bomb plants and kills with attacker and victim spots and callouts, in order.
  • GET /api/v1/cs2/maps/{mapId}/heatmap?kind=smokeCounts per radar cell for smokes, flashes, molotovs, plants, kills or deaths.
  • GET /api/v1/cs2/players/{playerIdOrSlug}/utility?map=MirageWhere one player's grenades land across recent maps, with a heatmap.
  • GET /api/v1/cs2/map-radarsRadar calibration per map to draw any point on a radar image.

Player stats · Rating, ADR, KAST, per map

K/D and rating per map played (ADR and KAST on over 95% of map lines), rolled up into career, yearly and recent-form views.

  • GET /api/v1/cs2/players/{playerIdOrSlug}Nickname, real name, photo, country, team, role and headline stats.
  • GET /api/v1/cs2/players/{playerIdOrSlug}/statsCareer totals plus a stat line per map played.
  • GET /api/v1/cs2/players/{playerIdOrSlug}/seasonsA player's stats by year.
  • GET /api/v1/cs2/players/{playerIdOrSlug}/formThe most recent maps with kills, deaths, ADR, KAST and rating.
  • GET /api/v1/cs2/leaderboards/{metric}Top players by rating, ADR, KAST, K/D, kills or opening kills.
  • GET /api/v1/cs2/players/search?q={name}Find a player by nickname or real name.

Teams & rosters · Rosters, transfers, map stats

Team profiles with the current roster, every past lineup, player moves between teams, and how each team plays each map.

  • GET /api/v1/cs2/teams/{teamIdOrSlug}Name, logo, country, region, world ranking and current roster.
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/roster-historyEvery player who has played for the team, with start and end dates.
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/map-statsPer-map win rate, rounds and pick/ban tendencies.
  • GET /api/v1/cs2/teams/{teamIdOrSlug}/vs/{opponentIdOrSlug}Record and past matches between two teams.
  • GET /api/v1/cs2/roster-changes/recentPlayers joining and leaving teams, newest first.
  • GET /api/v1/cs2/transfers/recentPlayer moves between teams, newest first.

Rankings · World ranking and VRS

The world team ranking and the Valve Regional Standings, with points and movement, plus one table per region.

  • GET /api/v1/cs2/rankings/worldThe latest world team ranking.
  • GET /api/v1/cs2/rankings/vrsThe latest Valve Regional Standings (VRS).
  • GET /api/v1/cs2/rankings/region/{region}One region, with each team's world and regional rank.
  • GET /api/v1/cs2/rankingsOne row per team, with points and change since the previous ranking.

Skin prices · Marketplaces, history, movers

The current price of a skin on each marketplace, its daily price history, sell listings across markets, and the week's biggest movers.

  • GET /api/v1/cs2/skins?q={name}Search skins by name, weapon, rarity or price range.
  • GET /api/v1/cs2/skins/{skinIdOrSlug}/pricesThe current price on each marketplace, cheapest first, with offer counts.
  • GET /api/v1/cs2/skins/{skinIdOrSlug}/historyDaily cheapest price across marketplaces, years back on long-listed skins.
  • GET /api/v1/cs2/skins/{skinIdOrSlug}/order-bookSell listings per marketplace with counts, and the lowest ask.
  • GET /api/v1/cs2/skins/trendingBiggest gainers and losers over 1 day to 1 year, with sparklines.
  • GET /api/v1/cs2/skins/{skinIdOrSlug}One skin: weapon, rarity, collection, image and price summary.

Tournaments · Brackets, standings, prize pools

Tournaments with dates, prize pool, tier and format, plus every match, the standings and the bracket.

  • GET /api/v1/cs2/events/liveTournaments being played now.
  • GET /api/v1/cs2/events/{eventIdOrSlug}Dates, location, prize pool, tier, teams and format.
  • GET /api/v1/cs2/events/{eventIdOrSlug}/matchesEvery match of the tournament.
  • GET /api/v1/cs2/events/{eventIdOrSlug}/standingsTeams with seed, final placement and prize.
  • GET /api/v1/cs2/events/{eventIdOrSlug}/bracketBracket, groups, play-in and Swiss, each slot with teams, scores and winner.

Endpoints you can ship with

The same routes by job. Pick a group to see what it returns.

Results

Finished matches with the series score and winner, every map and its score, and the player lines behind them.

View docs
  • GET/api/v1/cs2/matches/recent

    Finished matches with final series score and winner, newest first.

  • GET/api/v1/cs2/matches/{matchId}

    One match: event, teams, series score, and maps.

  • GET/api/v1/cs2/matches/{matchId}/maps

    Each map: name, score, winner, and the team that picked it.

  • GET/api/v1/cs2/matches/{matchId}/player-stats

    Per-player stats for each map: kills, deaths, ADR, KAST and rating.

  • GET/api/v1/cs2/teams/{teamIdOrSlug}/results

    One team's finished matches, newest first.

  • GET/api/v1/cs2/events/{eventIdOrSlug}/results

    Final placements and prize money of a tournament.

Frequently asked questions

Base URL, auth, paging and docs

Something missing? Email support@citoapi.com.

What is the CS2 API base URL?

https://api.citoapi.com/api/v1. CS2 routes start with /cs2, for example /cs2/live.

How do I authenticate?

Send your key in the x-api-key header on every request.

How does paging work?

List endpoints take limit and page and return meta with count, total, page, totalPages and hasNext.

Is there an OpenAPI spec?

Yes. The CS2 docs on citoapi.com are generated from it and list every route with its parameters.

What are the rate limits?

10 requests a minute on Free, 30 on Starter and 100 on Pro, with monthly totals of 500, 10,000 and 250,000.

See pricing

Integrate CS2 in Python

Every route above works on a free key.