What the Steam API does not give you.
Valve's Steam Web API covers accounts, inventories and some game stats, and Game State Integration streams your own game client. Neither covers pro matches, and the Steam Market is one price among many.
- Pro esports data
- Skin prices across markets
- 500 free requests / month
{ "data": { "gainers": [ ... { "marketHashName": "★ StatTrak™ Shadow Daggers | Crimson Web (Battle-Scarred)", "currentPrice": 145.68, "change7d": 47.82 } ] }}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 serverThe CS2 data Steam does not have
Pair Steam for accounts and inventories with this API for esports and prices.
Pro match data
Results, maps and box scores from pro matches.
Live pro scores
Every tracked match in progress, not just your client.
Player stats
Ratings, ADR and KAST for pro players.
Cross-market prices
Steam and third-party marketplaces side by side.
Price history
Daily prices going back years on long-listed skins.
No inventories
Inventories stay with Steam; this API prices what is in them.
Steam, GSI and a CS2 API
| Need | Steam Web API / GSI | CS2 API (Cito) |
|---|---|---|
| Pro match results | Not covered | Yes, with box scores |
| Match history | No endpoint; your own games only, one share code at a time | Per team, player and tournament |
| Rate limit | 100,000 calls a day per key | Per plan, with Retry-After on 429 |
| Live pro scores | GSI streams only a client you run | Every tracked match |
| Player inventories | Yes | No |
| Skin prices | Steam Community Market only | Steam plus third-party markets |
| Price history | Steam Market only | Daily cheapest across markets |
| Pro player ratings | Not covered | Rating, ADR, KAST per map |
Does the Steam Web API have CS2 match history?
No. In Valve's catalogue of Steam Web API methods, GetMatchHistory exists only for Dota 2. CS:GO never had one, and neither does CS2.
The closest thing is ICSGOPlayers_730/GetNextMatchSharingCode. Give it your Steam ID, your game authentication code and the share code of one match you know, and it returns the next share code, or "n/a" when there is no newer match. It only covers the account's own matchmaking games, one code per call, and a share code holds no scores: the stats have to be parsed out of the replay demo.
Professional matches are not in Steam at all. A CS2 esports API holds them indexed by team, player and tournament, so a team's last 50 results is one request.
Valve's CS2 interfaces on the Steam Web API
What each one returns, from Valve's own method catalogue (checked 3 October 2026).
| Interface | What it covers |
|---|---|
| ICSGOPlayers_730 | GetNextMatchSharingCode: your next match share code, with your game authentication code. |
| ICSGOServers_730 | Game server and matchmaking status. |
| ICSGOTournaments_730 | Major pick'em layouts and predictions. |
| IEconItems_730 | Item schema and related item data. |
| IGCVersion_730 | Game coordinator version info. |
Endpoints you can ship with
Esports and skin prices: the parts Steam leaves out.
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
Steam, GSI, inventories and prices
Something missing? Email support@citoapi.com.
Does Valve have a CS2 API?
Valve's Steam Web API covers accounts, inventories and some game stats. It does not provide pro esports matches or player ratings.
Does Steam still provide CS2 match history?
Steam never had a CS2 match history endpoint: GetMatchHistory exists only for Dota 2. For your own matchmaking games, GetNextMatchSharingCode returns share codes one at a time; pro match history comes from a CS2 esports API.
What is the Steam Web API rate limit?
100,000 calls per key per day under Valve's Steam Web API Terms of Use. Steam answers 429 Too Many Requests when you are throttled.
What is CS2 Game State Integration?
GSI makes a CS2 client send its own game state to a local endpoint, which is useful for overlays of a game you are playing or observing. It does not list other matches.
Can I get CS2 skin prices from Steam?
Steam covers its own market. This API adds third-party marketplaces, sell listings and daily history for each skin.
Does this API read Steam inventories?
No. Fetch the inventory from Steam, then price each item with /cs2/skins.
Is this API affiliated with Valve?
No. CS2 API is operated by Cito API and is not affiliated with Valve Corporation.
Next steps
- Steam Web API for CS2 tutorialStep by step through Steam's CS2 methods, and where they stop.
- CS2 match history not foundThere is no Steam match history endpoint for CS2. What to call instead.
- Steam API rate limitsThe Steam Web API's limits, what happens past them, and how to stay under.
- How to get CS2 match dataResults, maps and player lines for any pro match in three requests.
- CS2 match results APIFinal series scores, map scores and box scores.
- CS2 API comparisonEvery CS2 data provider side by side: access, pricing, delivery and coverage.
Add to Steam pro results
Keep Steam for accounts. Use this for everything else CS2.