CS2 results, down to every map.
Finished Counter-Strike 2 matches with the final series score and winner, each map's score and the team that picked it, and every player's kills, deaths, ADR, KAST and rating.
- Series and map scores
- Forfeits flagged, not guessed
- 500 free requests / month
{ "data": [ { "id": "cs2-match-2398803", "eventName": "CCT 2026 Challengers Europe Series 7", "team1Name": "Privateer", "team2Name": "mellren", "team1Score": 0, "team2Score": 2, "bestOf": 3, "status": "completed" } ... ]}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 serverEvery result, every map
The match, its maps, the players and the tournament it belongs to, linked by stable IDs.
Recent results
Finished matches with final series score and winner, newest first.
Map scores
Each map with its name, score, winner and the team that picked it.
Box scores
Per-player kills, deaths, ADR, KAST and rating for each map.
Team results
One team's finished matches, for form guides and profile pages.
Tournament placements
Final placements and prize money of an event.
Honest edge cases
Forfeits and unplayed maps are marked, with the reason stats are missing.
CS2 results in numbers
Measured on production, with the date each figure was taken.
- The CS2 API indexes 33,387 Counter-Strike 2 matches, 5,153 teams and 10,412 players across 2,467 tournaments (as of 11 November 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.
- 99.996% of CS2 API requests in the 24 hours to 3 October 2026 completed without a server error (7 errors in 197,791 requests).
Latest CS2 results
GET /cs2/matches/results at build time: the same rows your code gets.
| Match | Score | Event | Format |
|---|---|---|---|
| MOUZ vs G2 | 1–2 | BLAST Rivals 2026 Season 2 | Bo3 |
| ex-UPGRADE vs Butterfly | 0–2 | NODWIN Clutch Series 14 | Bo3 |
| ex-RUSTEC vs LFO 10 | 1–0 | CCT 2026 Europe Series 14 | Bo3 |
| Spirit vs FUT | 2–1 | BLAST Rivals 2026 Season 2 | Bo3 |
| Vitality vs Falcons | 2–0 | BLAST Rivals 2026 Season 2 | Bo3 |
| Legacy vs FURIA | 0–2 | BLAST Rivals 2026 Season 2 | Bo3 |
| QUINTESSÊNCIA vs RUSH | 0–2 | CCT 2026 South America Series 8 | Bo3 |
| 33 vs BASEMENT BOYS | 2–1 | PGL Cluj-Napoca 2027 Open Qualifier 1 | Bo3 |
| GameSport vs PCIFIC | 0–2 | PGL Cluj-Napoca 2027 Open Qualifier 1 | Bo3 |
| yngods vs BASEMENT BOYS | 0–1 | PGL Cluj-Napoca 2027 Open Qualifier 1 | Bo1 |
Endpoints you can ship with
Start with recent results, open a match, then its maps and player stats.
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.
- 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
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
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
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
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
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
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
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
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
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.
Frequently asked questions
Results, maps, box scores and history
Something missing? Email support@citoapi.com.
Does Steam provide CS2 match history?
No. Steam has no CS2 match history endpoint; GetMatchHistory exists only for Dota 2. Professional CS2 results and history come from a CS2 API: /cs2/matches/results, /cs2/teams/{slug}/results and /cs2/players/{slug}/matches.
How do I get CS2 match results?
GET /cs2/matches/recent returns finished matches with the final series score and winner. Open one with /cs2/matches/{matchId} for its maps.
Are map scores included?
Yes. Each match lists its maps with the map name, score, winner and the team that picked it; /cs2/matches/{matchId}/maps returns them on their own.
Can I get player stats for a match?
Yes. /cs2/matches/{matchId}/player-stats has kills, deaths, ADR, KAST and rating for each player on each map.
How are forfeits shown?
A forfeited match or map carries isForfeit: true and a reason, and no player stats are expected for it.
How far back do results go?
Match lists and in-depth stats cover the last 30 days on Free, 90 days on Starter and the full archive on Pro.
Next to results
- CS2 schedule APIUpcoming matches, today's slate and the tournament calendar.
- CS2 player stats APIRating, ADR, KAST and K/D per map, career and form.
- CS2 team APITeam profiles, current rosters, lineups and head-to-head.
- CS2 tournament APIBrackets, standings, prize pools and every match.
- CS2 map stats APIMap win rates, side splits, economy and veto history.
- CS2 API in Node.jsFetch CS2 data from JavaScript and TypeScript.
Build CS2 result feeds
Test results on a free key. The full archive is on Pro.