Discover/Csstats API
live

Csstats APIcsstats.org ↗

Access CS2 player profiles, match history, round-by-round data, leaderboards, and VAC ban stats from csstats.gg via a structured JSON API.

Endpoint health
verified 5d ago
get_player_profile
get_leaderboard
get_match_details
get_round_history
get_ban_stats
6/6 passing latest checkself-healing
Endpoints
7
Updated
26d ago

What is the Csstats API?

The csstats.gg API exposes 7 endpoints covering CS2 player profiles, match history, and leaderboards from csstats.gg. The search_player endpoint resolves a Steam ID, profile URL, or custom URL to a full player profile including weapon stats, map stats, and rank history. Other endpoints surface per-match performance data, round-by-round outcomes, heatmap coordinates, and global daily ban counts — all returned as structured JSON.

This call costs10 credits / call— charged only on success
Try it
Steam ID (e.g. 76561198088771412), Steam Profile Link, or Custom Steam URL
→ api.parse.bot/scraper/8e04485d-f2ca-441f-a18c-e1d6ac48b195/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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": "76561198088771412"
}'
All endpoints · 7 totalmissing one? ·

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. The query is resolved to a SteamID64 and the full profile is fetched. Players without CS2 match data will return empty stats and rank_history.

Input
ParamTypeDescription
queryrequiredstringSteam ID (e.g. 76561198088771412), Steam Profile Link, or Custom Steam URL
Response
{
  "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": {
        "best": {
          "rank": 39069
        },
        "maps": {
          "overall": {}
        },
        "rank": 38727,
        "past10": [],
        "totals": {
          "overall": {
            "wins": 726,
            "games": 967
          }
        },
        "matches": [
          139794175
        ],
        "overall": {
          "hs": 56,
          "wr": 75,
          "adr": 98,
          "kpd": 1.58,
          "rating": 1.52
        },
        "weapons": {
          "overall": {}
        },
        "comp_wins": 264
      },
      "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 API

Player Profiles and Search

The search_player (POST) and get_player_profile (GET) endpoints both return the same profile shape: a stats object with overall totals, weapon breakdowns, per-map performance, last-10-match summaries, and a matches array. They also return ban_status (e.g. 'Clean'), avatar, username, and a rank_history array whose entries carry date, adr, premier rating, csrank, and faceit level over time. The difference is input format: search_player accepts raw Steam IDs, full profile URLs, or custom Steam URLs and resolves them before fetching; get_player_profile requires a SteamID64 directly. Players with no CS2 match data return empty stats and rank_history.

Match History and Round Detail

get_player_matches returns every match on a player's history tab, ordered newest first, with per-match fields including kills, deaths, adr, map, date (ISO 8601 UTC), match_id, and a rank object that records the rank type (premier, mm, or faceit) and, for Premier, the before/after rating and change. get_match_details takes a match_id and returns heatmap_data — arrays of coordinate objects for kills, deaths, shots, damage, hurt, smokes, flashes, and HE grenades — alongside basic match_info. get_round_history accepts both a match_id and a steam_id and returns each round's won boolean, player_side (T or CT), running team_score/opponent_score, and win_reason, plus aggregate wins, losses, and total_rounds.

Leaderboards and Ban Statistics

get_leaderboard returns a ranked list of players with rank, steam_id, and username. Only the premier leaderboard type is reliably supported at this time. get_ban_stats requires no inputs and returns daily_bans: 30 days of global VAC and Game Ban counts, each entry carrying a date (YYYY-MM-DD) and a num string.

Reliability & maintenanceVerified

The Csstats API is a managed, monitored endpoint for csstats.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when csstats.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official csstats.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a CS2 stat tracker dashboard using per-map and per-weapon breakdowns from get_player_profile.
  • Plot a player's Premier rating progression over time using the rank_history array returned by search_player.
  • Render in-game kill and death heatmaps by consuming heatmap_data coordinate arrays from get_match_details.
  • Audit a player's competitive history by reading ban_status alongside rank_history from the profile endpoints.
  • Display round-by-round T/CT side outcomes and win reasons using get_round_history for post-match analysis.
  • Monitor global CS2 ban trends by charting the 30-day daily_bans time series from get_ban_stats.
  • Show Premier leaderboard standings in a bot or web UI using get_leaderboard player entries.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does csstats.gg have an official developer API?+
csstats.gg does not publish an official public developer API or documented developer program.
What does get_player_matches return, and does it include scoreboard data for all players in the match?+
It returns only the queried player's own performance per match: kills, deaths, assists, adr, headshot percentage, map, date, rank change, and a URL to the full match page. Scoreboard data for other players in the same match is not included in this endpoint. You can retrieve per-match details via get_match_details for heatmap data, or get_round_history for round outcomes, but full multi-player scoreboards are not currently exposed. You can fork this API on Parse and revise it to add a multi-player scoreboard endpoint.
What leaderboard types does get_leaderboard support?+
Only the premier type is reliably supported. Matchmaking (MM) and FACEIT leaderboards are not currently returned. You can fork this API on Parse and revise it to add support for those leaderboard types.
What happens when I look up a player with no CS2 match history?+
Both search_player and get_player_profile return a valid response, but the stats object and rank_history array will be empty. The steam_id, username, avatar, and ban_status fields are still populated if the Steam profile resolves correctly.
Is there friend list or 'who they played with' data available?+
No endpoint currently exposes friend lists or co-player frequency data. The API covers individual player profiles, match history, heatmaps, round history, leaderboards, and ban stats. You can fork this API on Parse and revise it to add an endpoint that extracts co-player data from match scoreboard pages.
Page content last updated . Spec covers 7 endpoints from csstats.org.
Related APIs in SportsSee all →
csstats.gg API
Access Counter-Strike 2 player statistics, match history, and leaderboard rankings from csstats.gg. Search players by Steam ID or name, retrieve detailed performance metrics and recent match results, explore scoreboard data, view played-with history, and check global ban statistics.
csgostats.gg API
Track and analyze Counter-Strike 2 player performance with detailed statistics including weapon usage, match history, and head-to-head comparisons. Access global leaderboards, view recent matches, and discover which players you've competed against to benchmark your skills.
api-public-docs.cs-prod.leetify.com API
Access CS2 player statistics, match history, and individual game performance data from Leetify's competitive database. Look up player profiles by Steam64 ID or Leetify user ID and retrieve comprehensive match details including per-round metrics and performance breakdowns.
bo3.gg API
Track and compare professional esports performance across CS2, Valorant, and League of Legends by viewing detailed player statistics like kills, deaths, assists, multikills, and clutches. Discover top-performing players and analyze individual match histories to understand player performance ratings and competitive trends.
hltv.org API
Access Counter-Strike esports data from HLTV.org including match results, player and team statistics, team rankings, upcoming match schedules, tournament information, and fantasy league data.
leetify.com API
Access data from leetify.com.
tracker.gg API
Track Valorant player profiles, match histories, competitive rankings, and agent performance statistics from tracker.gg. Search leaderboards, analyze player segments, view daily game data, and access comprehensive reference information covering all Valorant-related data available on the platform.
opendota.com API
Access detailed Dota 2 match statistics, player performance metrics, hero win rates, and professional tournament data to analyze gameplay trends and competitive performance. Search for specific players, explore custom data queries through SQL, and retrieve comprehensive match histories to improve your understanding of the game.