csstats.org APIcsstats.org ↗
Access CS2 player profiles, match history, leaderboards, ban stats, and heatmap data from csstats.gg via a single structured API.
curl -X POST 'https://api.parse.bot/scraper/8e04485d-f2ca-441f-a18c-e1d6ac48b195/search_player' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "76561198012345678"
}'Search for a player by Steam ID, Steam Profile Link, or Custom Steam URL. Returns the player's full profile including stats, weapon stats, map stats, and rank history. Players without CS2 match data will return empty stats and rank_history.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Steam ID (e.g. 76561198088771412), Steam Profile Link, or Custom Steam URL |
{
"type": "object",
"fields": {
"stats": "object containing overall stats, totals, weapons, maps, past10, best, and matches",
"avatar": "string or null, avatar image URL",
"steam_id": "string, the player's SteamID64",
"username": "string or null, player display name",
"ban_status": "string, ban status such as 'Clean'",
"rank_history": "array of rank history entries with date, adr, premier, csrank, faceit"
},
"sample": {
"data": {
"stats": {
"overall": {
"hs": 56,
"wr": 74,
"adr": 98,
"kpd": 1.57,
"rating": 1.51
}
},
"avatar": null,
"steam_id": "76561198088771412",
"username": "AceaS",
"ban_status": "Clean",
"rank_history": [
{
"adr": 86,
"date": 1695850598000,
"csrank": null,
"faceit": null,
"premier": 0
}
]
},
"status": "success"
}
}About the csstats.org API
The csstats.gg API exposes 7 endpoints covering CS2 player profiles, match history, leaderboards, and ban statistics. The get_player_profile endpoint returns a detailed stats object including weapon breakdowns, map performance, recent 10-match trends, rank history with ADR and Premier rating over time, and a player's current ban status — all keyed by SteamID64.
Player Profiles and Stats
Use search_player or get_player_profile to retrieve a full CS2 player profile by SteamID64, Steam profile URL, or custom URL. Both endpoints return the same response shape: a stats object with sub-keys for totals, weapons, maps, past10, best, and matches, plus avatar, username, ban_status, and a rank_history array. Each rank_history entry includes date, adr, premier, csrank, and faceit fields, letting you reconstruct a player's rating trajectory. Players with no recorded CS2 matches return empty stats and rank_history without an error.
Match History and Heatmaps
get_player_matches returns a paginated list of recent match IDs and a total_matches count for a given SteamID64. Feed those match_id values into get_match_details to retrieve per-match heatmap coordinate arrays — kills, deaths, shots, damage, hurt, smoke, flash, and he — useful for spatial analysis or visualization. Match info includes a match_title via the match_info object.
Leaderboards and Ban Statistics
get_leaderboard returns a ranked list of players for the premier leaderboard type, with each entry containing rank, steam_id, and username. get_ban_stats returns 30 days of global daily VAC and Game Ban counts as a daily_bans array of {date, num} objects, giving a rolling view of ban activity across the CS2 player base.
Social Graph
get_player_played_with retrieves the list of players a given Steam user has shared matches with, including shared stats. The endpoint supports pagination via an offset parameter, and each returned player entry includes a vac field indicating ban status.
- Build a CS2 stat tracker that displays a player's Premier rating trend using rank_history entries over time
- Render in-game kill and death heatmaps from get_match_details coordinate arrays for a specific match
- Monitor a team roster's ban_status fields to flag newly VAC-banned accounts
- Populate a leaderboard widget using get_leaderboard premier rankings with steam_id and username
- Analyze weapon performance across a player's profile using the weapons sub-key in the stats object
- Track global VAC ban volume trends by polling get_ban_stats daily_bans over rolling 30-day windows
- Map a player's frequent teammates using get_player_played_with to identify squad patterns
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.