CS2 player stats API
CS2.SPACE's GET /api/profile/{id} returns a Counter-Strike 2 player's Steam profile, bans, level, lifetime CS2 stats, commendations, medals, Faceit Elo and skill level, and Leetify ratings in one JSON response. Pass a SteamID64 or custom profile name and your API key in the x-api-key header.
One request, one normalized JSON document: everything a bot, overlay or lookup site needs to show a player.
What you get
Steam
Profile, VAC and game bans, Steam level, owned games and playtime, friends, friend code, and Steam's lifetime CS2 stats such as total kills, wins and damage.
Game Coordinator
Commendations (friendly, teacher, leader), CS2 profile rank and XP, and the player's displayed medals and coins with image URLs.
Faceit
Faceit Elo, skill level 1 to 10, region, nickname and profile link. PRO and DEVELOPER plans.
Leetify
Leetify rating, aim, positioning, utility, clutch and opening scores, Premier and Wingman ranks, and recent matches. PRO and DEVELOPER plans.
Example
curl -H "x-api-key: YOUR_KEY" "https://cs2.space/api/profile/ChetCS"const res = await fetch("https://cs2.space/api/profile/ChetCS", {
headers: { "x-api-key": process.env.CS2_SPACE_API_KEY },
});
const data = await res.json();import os, requests
data = requests.get(
"https://cs2.space/api/profile/ChetCS",
headers={"x-api-key": os.environ["CS2_SPACE_API_KEY"]},
).json(){
"steamId": "76561197963540638",
"steam": {
"player": {
"steamid": "76561197963540638",
"personaname": "Chet",
"profileurl": "https://steamcommunity.com/id/ChetCS/",
"avatarfull": "https://avatars.steamstatic.com/7eff590c73206f7f0bb6bfbbf9fd3f3e46c95826_full.jpg",
"timecreated": 1072291152,
"communityvisibilitystate": 3
},
"bans": {
"SteamId": "76561197963540638",
"CommunityBanned": false,
"VACBanned": false,
"NumberOfVACBans": 0,
"DaysSinceLastBan": 0,
"NumberOfGameBans": 0,
"EconomyBan": "none"
},
"level": 70,
"games": [
{
"appid": 10,
"playtime_forever": 45104
}
],
"stats": [
{
"name": "total_kills",
"value": 99648
},
{
"name": "total_deaths",
"value": 81581
},
{
"name": "total_time_played",
"value": 5582556
}
],
"friends": [
{
"steamid": "76561190000000000",
"relationship": "friend",
"friend_since": 1550022592
}
],
"friendCode": "AYR6T-HGDA",
"gc": {
"commendations": {
"friendly": 118,
"teacher": 82,
"leader": 80
},
"playerLevel": 18,
"playerCurXp": 327683388,
"badges": [
{
"name": "Premier Season Four Medal",
"image": "/badges/badge_premier_season_four_medal_125_wins_15_000_19_999_cs_rating_.png",
"rarity": "Extraordinary",
"imageUrl": "https://cs2.space/api/assets/badges/badge_premier_season_four_medal_125_wins_15_000_19_999_cs_rating_.png"
}
],
"featuredBadge": {
"name": "Premier Season Four Medal",
"image": "/badges/badge_premier_season_four_medal_125_wins_15_000_19_999_cs_rating_.png",
"rarity": "Extraordinary",
"imageUrl": "https://cs2.space/api/assets/badges/badge_premier_season_four_medal_125_wins_15_000_19_999_cs_rating_.png"
}
},
"coinsAndPins": [
{
"name": "Premier Season Four Medal",
"image": "https://community.cloudflare.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGJWk3ka5VeTr0M-gJnSZ9hll5oL541z1fg70n4Xv8x0P0PGhYapSdKXdWzLGkOt15-QxHi_ql0ly5DmHnN-hJC2RPVJxWcB4QbZY4Riwk4HjNfSiuVKLPsh8JA"
}
],
"inventory": {
"summary": {
"totalCount": 505,
"tradableCount": 473,
"totalValue": 1530.62,
"totalValueFormatted": "$1,530.62"
},
"pagination": {
"total": 505,
"limit": 200,
"offset": 0,
"hasMore": true
}
}
},
"faceit": {
"player_id": "3699c7a1-7ee1-4c2d-bcca-49fdb2071a4e",
"nickname": "aimbotthot1",
"country": "us",
"faceit_url": "https://www.faceit.com/{lang}/players/aimbotthot1",
"games": {
"cs2": {
"region": "NA",
"skill_level": 4,
"faceit_elo": 1018,
"game_player_id": "76561197963540638"
}
}
},
"leetify": {
"name": "Chet",
"steam64_id": "76561197963540638",
"first_match_date": "2020-08-01T22:09:58.000Z",
"total_matches": 2265,
"winrate": 0.3,
"rating": {
"aim": 48.4047,
"positioning": 52.3922,
"utility": 38.4005,
"clutch": 0.0672,
"opening": -0.0084,
"ct_leetify": -0.0103,
"t_leetify": -0.0054
},
"ranks": {
"leetify": -0.77,
"premier": 15960,
"faceit": null,
"faceit_elo": null,
"wingman": 7,
"renown": null,
"competitive": [
{
"map_name": "de_dust2",
"rank": 10
}
]
},
"stats": {
"accuracy_head": 26.7328,
"reaction_time_ms": 595.9576,
"preaim": 10.765,
"spray_accuracy": 24.8483
},
"recent_matches": [
{
"id": "ba2a8847-0c8c-4be7-97e2-69d9dd67e733",
"finished_at": "2026-09-30T21:10:47.000Z",
"data_source": "matchmaking",
"outcome": "win",
"map_name": "de_cache",
"score": [
13,
2
],
"leetify_rating": 0.0279,
"rank": 15960
}
]
}
}Endpoints
GET /api/profile/{id}Everything about a player in one call: Steam profile, bans, level, owned games, CS2 lifetime stats, friends, friend code, Game Coordinator data (commendations, profile rank, badges), CS2 inventory summary, Faceit and Leetify.
GET /api/steamid/{id}Converts a custom profile URL name or SteamID64 into every SteamID format, plus name and avatar.
Built for
- Discord bots with a /rank or /stats command
- Team and scrim tools that compare players
- Stream overlays showing Premier rating or Faceit level
- Player lookup sites and smurf/ban checks
Plans
| Plan | Price | Requests / month | Rate limit | Data |
|---|---|---|---|---|
| FREE | Free | 500 requests | 60 per minute | Steam profile data, SteamID conversion and rank images |
| PRO | $9.99/mo (7-day trial) | 10,000 requests | 600 per minute | Everything: adds Faceit, Leetify, and CS2 and Dota 2 inventories with prices |
| DEVELOPER | $29.99/mo | 100,000 requests | 3,060 per minute | Everything: adds Faceit, Leetify, and CS2 and Dota 2 inventories with prices |
FAQ
Is there a free CS2 stats API?
Yes. The free plan includes 500 requests a month with Steam profile data, bans, level and CS2 stats, SteamID conversion and rank images. Faceit, Leetify and inventory data need the PRO plan ($9.99 a month, 7-day free trial).
Can I get a player's Faceit Elo and Premier rating from a SteamID?
Yes. GET /api/profile/{steamId} returns faceit.games.cs2.faceit_elo and skill_level, and leetify.ranks.premier, from just the SteamID64 or custom profile name.
Does it work with custom Steam profile URLs?
Yes. Every endpoint accepts either a SteamID64 (17 digits) or the custom name from steamcommunity.com/id/NAME.
How fresh is the data?
Profiles are cached for up to 3 hours. If a source fails temporarily, the incomplete result is only cached for 5 minutes so it is retried soon.
How much does it cost?
The free plan includes 500 requests a month for Steam profile data, SteamID conversion and rank images. PRO is $9.99 a month (7-day free trial) for 10,000 requests and adds Faceit, Leetify, and CS2 and Dota 2 inventories with prices. DEVELOPER is $29.99 a month for 100,000 requests.
More from the API
Fetch any public Counter-Strike 2 inventory as clean JSON: every skin with category, rarity, exterior, exact float and pattern seed, stickers, inspect link and live USD price.
Dota 2 inventory API with prices →Fetch any public Dota 2 inventory as clean JSON: each item's hero, slot, type, rarity, quality, tradability and live USD price, with totals per hero and rarity.
SteamID converter API →Convert a Steam custom profile URL or SteamID64 to SteamID64, Steam32, Steam2 (STEAM_0:X:Y) and Steam3 ([U:1:X]) with one API call, plus name and avatar.
Building with an AI assistant? Give it https://cs2.space/llms.txt or the OpenAPI spec.