Discover/Csstats API
live

Csstats APIcsstats.org

Access CS2 player profiles, match history, leaderboards, ban stats, and heatmap data from csstats.gg via a single structured API.

Endpoint health
verified 11h ago
get_player_profile
get_player_matches
get_match_details
get_leaderboard
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, 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.

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"
}'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace csstats-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""
CSStats.gg API Client
Get your API key from: https://parse.bot/settings

Analyze CS2 player performance, check match heatmaps, browse leaderboards,
and track daily ban statistics.
"""

from parse_apis.cs_stats_api import CSStats, LeaderboardType, PlayerNotFound

cs = CSStats()

# Search for a player by Steam ID and inspect their profile
player = cs.players.search(query="76561198088771412")
print(player.username, player.steam_id, player.ban_status)

# Access rank history entries
for entry in player.rank_history:
    print(entry.date, entry.premier, entry.adr)

# Get the player's match list via the instance method
match_list = player.matches()
print(match_list.total_matches)

for match_summary in match_list.matches:
    print(match_summary.match_id, match_summary.url)

# Get full match details with heatmap data
match = cs.matches.get(match_id="139794175")
print(match.match_id, match.match_info.title)

# Browse the premier leaderboard using the enum
leaderboard = cs.leaderboards.get(type=LeaderboardType.PREMIER)
print(leaderboard.type)
for lb_player in leaderboard.players:
    print(lb_player.rank, lb_player.username, lb_player.steam_id)

# Check daily ban statistics
ban_report = cs.banreports.get()
for ban in ban_report.daily_bans:
    print(ban.date, ban.num)

# Typed error handling for player lookup
try:
    profile = cs.players.get(steam_id="00000000000000000")
    print(profile.username)
except PlayerNotFound as exc:
    print(f"Player not found: {exc}")

print("exercised: players.search / players.get / player.matches / matches.get / leaderboards.get / banreports.get")
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 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.

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
11h 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 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
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does csstats.gg have an official developer API?+
csstats.gg does not publish a documented public developer API. This Parse API provides structured access to player profiles, match data, leaderboards, and ban statistics from the site.
What does rank_history actually contain?+
Each entry in the rank_history array includes a date, the player's ADR (average damage per round) for that period, their Premier rating, their CS rank tier (csrank), and their Faceit level if linked. Players with no recorded CS2 activity return an empty rank_history array rather than an error.
Does get_leaderboard support multiple leaderboard types beyond premier?+
Currently only the premier type is reliably supported and returns ranked player data. Other leaderboard types are not guaranteed to return results. You can fork this API on Parse and revise it to add support for additional leaderboard types if the underlying source exposes them.
Is individual match performance per player available from get_match_details?+
get_match_details returns heatmap coordinate data (kills, deaths, shots, damage, smoke, flash, he) and a match title, but does not currently return per-player scorecards or round-by-round breakdowns. You can fork this API on Parse and revise it to add per-player match statistics if that data is available from the source.
How does pagination work in get_player_played_with?+
The endpoint accepts an optional offset integer parameter to paginate through a player's list of co-players. The response echoes back the current offset alongside the players array. There is no explicit page_size parameter exposed — stepping through results requires incrementing offset manually.
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.
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.
steamcharts.com API
Track player counts and trending games on Steam, search for specific titles, and view historical statistics for individual games. Monitor which games are gaining popularity and get detailed player data to stay informed about the gaming landscape.
csgo.steamanalyst.com API
Track CS2 skin prices in real-time, search for specific skins, and analyze market trends with historical pricing data and top gainers. Compare marketplace listings across different weapons and collections to make informed trading decisions.
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.
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.