api-public-docs.cs-prod.leetify.com APIapi-public-docs.cs-prod.leetify.com ↗
Retrieve CS2 player profiles, match history, and per-match performance metrics from Leetify. Look up by Steam64 ID or Leetify UUID across 5 endpoints.
curl -X GET 'https://api.parse.bot/scraper/613b2879-eff7-4b2b-842b-cff0fe36b4b6/validate_api_key' \ -H 'X-API-Key: $PARSE_API_KEY'
Validates the provided API key against the Leetify API. Returns whether the key is valid or not.
| Param | Type | Description |
|---|---|---|
| api_keyrequired | string | The Leetify API key to validate. |
{
"type": "object",
"fields": {
"valid": "boolean indicating whether the API key is valid",
"message": "string describing the validation result"
},
"sample": {
"data": {
"valid": false,
"message": "Invalid or missing API key"
},
"status": "success"
}
}About the api-public-docs.cs-prod.leetify.com API
This API exposes 5 endpoints for querying CS2 player statistics and match data from Leetify. Use get_player_profile to pull a player's aim, positioning, utility, and clutch ratings alongside their Premier, Wingman, and FACEIT ranks, or use get_match_by_game_id and get_match_by_data_source to fetch full per-player stat breakdowns for any recorded match — identified either by Leetify UUID or by the native matchmaking/FACEIT match ID.
Player Profile Data
The get_player_profile endpoint accepts either a steam64_id (e.g. 76561197969209908) or a Leetify user UUID via the id parameter. It returns a rating object with six scored dimensions — aim, positioning, utility, clutch, opening, ct_leetify, and t_leetify — alongside a ranks object covering leetify, premier, faceit, faceit_elo, wingman, renown, and competitive rank tiers. The stats field contains granular metrics including accuracy, reaction time, and utility usage. The response also surfaces recent_matches, recent_teammates, winrate, total_matches, and the player's current privacy_mode.
Match History and Match Lookup
get_player_match_history returns an array of match objects for a given player, each including map_name, data_source (e.g. matchmaking or faceit), finished_at in ISO 8601 format, team_scores, a has_banned_player flag, and the source-specific data_source_match_id. This last field is the key input for get_match_by_data_source, which retrieves full match data by pairing a data_source string with the corresponding native ID (e.g. a CSGO share code for matchmaking).
Full Match Detail by ID
get_match_by_game_id takes a Leetify game UUID and returns the complete match record including a stats array covering every player in the lobby. This is useful when you already hold a Leetify game ID from a previous API response and want the full lobby breakdown rather than just one player's perspective. Both match-detail endpoints return identical response shapes, so switching between them requires only changing the lookup key.
API Key Validation
The validate_api_key endpoint accepts a Leetify API key string and returns a valid boolean plus a message string. It is useful for checking key status before making downstream calls, particularly in workflows that manage multiple API credentials or onboard users with their own Leetify keys.
- Track a CS2 player's aim and positioning ratings over time using repeated calls to
get_player_profile - Flag matches containing banned players using the
has_banned_playerfield from match history - Compare full lobby performance stats after a match using
get_match_by_data_sourcewith a matchmaking share code - Build a rank tracker by polling the
ranksobject (premier, FACEIT, wingman) for a list of Steam64 IDs - Identify frequent teammates by parsing the
recent_teammatesarray from player profile responses - Cross-reference a Leetify game UUID from match history with
get_match_by_game_idto fetch all players' detailed stats - Validate user-supplied Leetify API keys before storing them using the
validate_api_keyendpoint
| 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.
Does Leetify have an official public developer API?+
What does `get_player_profile` return beyond basic stats?+
stats block (accuracy, reaction time, utility usage), the response includes a rating object with seven scored dimensions (aim, positioning, utility, clutch, opening, ct_leetify, t_leetify), a ranks object covering seven rank types, winrate, total_matches, bans, and privacy_mode. Players with privacy_mode set to non-public may return limited data.Can I look up a match using a FACEIT match ID instead of a Leetify UUID?+
get_match_by_data_source endpoint accepts a data_source string (e.g. faceit or matchmaking) and a data_source_id — the native platform match identifier. This lets you look up a match without first needing a Leetify UUID. The CSGO/CS2 matchmaking share code format (e.g. CSGO-unDnP-jd7LE-tBc3E-PMJve-PjNpP) serves as the data_source_id for matchmaking games.Does the match history endpoint support pagination or date filtering?+
get_player_match_history endpoint does not expose pagination parameters or date range filters — it returns whatever Leetify surfaces for the player by default. You can fork this API on Parse and revise it to add pagination or filtering parameters if your use case requires it.