Faceit Analyser API
Base URL: https://faceitanalyser.com/api/
Authentication
Provide your key as a query parameter: ?key=<key>
If you are interested in obtaining an API key, contact [email protected] or request via this form
Endpoints
- /api/stats/
<playerid>
: Retrieve stats for a player.
- /api/matches/
<playerid>
: Retrieve matches for a player.
- /api/hubs/
<playerid>
: Retrieve hubs for a player.
- /api/maps/
<playerid>
: Retrieve maps for a player.
- /api/insights/
<playerid>
/<segment_name>
: Retrieve insights for a player.
- /api/names/
<playerid>
: Retrieve names for a player.
- /api/highlights/
<playerid>
: Retrieve highlights for a player.
- /api/playerGraphs/
<playerid>
: Retrieve progression graphs for a player.
Filters
You can provide filters to the endpoints to filter the data returned. The filters are provided as query parameters. The following filters are available:
- region: text
- map: text
- winnerid: text
- firsthalfscore: numeric
- secondhalfscore: numeric
- team: text
- kills: numeric
- assists: numeric
- deaths: numeric
- mvps: numeric
- win: numeric
- rounds: numeric
- headshots: numeric
- triples: numeric
- quadras: numeric
- pentas: numeric
- aces: numeric
- finalscore: text
- overtimerounds: numeric
- kdr: numeric
- krr: numeric
- headshotpercent: numeric
- delta: numeric
- date: text
- weekday: text
- hour: numeric
- premade: boolean
- bestof: numeric
- gamemode: text
- nickname: text
- teamid: text
- map: text
- hub: text
- hltv: numeric
Text Filters
-
To filter by contains, you can use the following syntax: ?field=value
. For example, you can filter by the map by using the following syntax: ?map=cache
. You can also provide multiple values by using the following syntax: ?map=cache,dust2
.
-
To filter by exact value, you can add a “=” to the filter. For example, to filter by the map, you can use the following syntax: ?map==de_cache
. You can also provide multiple values by using the following syntax: ?map==de_cache,de_dust2
.
Boolean Filters
Boolean filters can only be “True” or “False” and are used to filter data based on a boolean value in the dataset. The syntax for boolean filters is as follows:
- To filter by a boolean value, you can use the following syntax: ?field=value. For example, to filter by whether a player won the match, you can use the following syntax: ?premade=True.
Numerical Filters
-
To filter by a range, you can use the following syntax: ?field=from:to
. For example, to filter by the number of kills, you can use the following syntax: ?kills=10:20
. Ranges are inclusive.
-
To filter by a single value, you can use the following syntax: ?field=value
. For example, to filter by the number of kills, you can use the following syntax: ?kills=10
.
-
You can combine numerical filters by using a comma. For example to filter by the number of kills between 10 and 20 and kills=25, you can use the following syntax: ?kills=10:20,25
.
Object Types
Segment Object
A segment is the combined stat for a player on a specific map, hub, name, etc.
The segment is a JSON object containing the following fields:
- playerId: The ID of the player.
- m: The number of matches played.
- r: The total number of rounds played.
- w: The number of wins.
- k: The total number of kills.
- a: The total number of assists.
- d: The total number of deaths.
- hs: The total number of headshots.
- kdr: The kill-death ratio.
- krr: The kill-round ratio.
- hltv: The HLTV rating.
- current_elo: The current ELO rating.
- total_elo: The total ELO rating.
- total_elo_m: The number of matches used to calculate the total ELO rating.
- highest_elo: The highest ELO rating.
- lowest_elo: The lowest ELO rating.
- first_occurrence: The date of the player’s first recorded match.
- last_occurrence: The date of the player’s most recent recorded match.
- segment_value: The value of the segment field (map, hub, name, player_id for global stats).
- hsp: The headshot percentage.
- real_kdr: The real kill-death ratio.
- avg_elo: The average ELO rating.
- wr: The win ratio.
- avg_kdr: The average kill-death ratio.
- avg_krr: The average kill-round ratio.
- real_kpr: The real kill-round ratio.
- avg_k: The average number of kills per match.
- avg_d: The average number of deaths per match.
- avg_hltv: The average HLTV rating.
- l: The number of losses.
- diff: The total difference between kills and deaths.
- avg_diff: The average difference between kills and deaths.
Match Object
A match is a JSON object containing the following fields:
- playerId: The ID of the player.
- _id: An object containing the matchId and playerId for the match.
- teamId: A string containing the ID of the team that the player was on.
- created_at: A number representing the timestamp at which the match was created.
- updated_at: A number representing the timestamp at which the match was last
- bestOf: A string representing the format of the match (e.g. “3” for a best of 3 match).
- competitionId: A string representing the ID of the competition in which the match was played.
- date: A string representing the date on which the match was played, in the format YYYY-MM-DD.
- game: A string representing the game that was played in the match (e.g. “csgo”).
- gameMode: A string indicating the game mode played in the match.
- premade: A boolean indicating whether the team was a premade team (assembled by the player).
- nickname: A string containing the nickname of the player.
- matchId: A string containing the ID of the match.
- matchRound: A string representing the round of the match.
- played: A string indicating whether the match has been played.
- status: A string indicating the status of the match.
- elo: A number representing the player’s ELO rating at the time of the match.
- n: A number representing the number of the match.
- map: A string indicating the map that was played in the match.
- k: A number representing the number of kills made by the player in the match.
- a: A number representing the number of assists made by the player in the match.
- d: A number representing the number of deaths of the player in the match.
- w: A string indicating whether the player won the match.
- hltv: A number representing the hltv rating by the player.
- diff: A number representing the difference between kills and deaths.
- mid: A string representing the match Id.
- url: A string containing a URL to the match on the Faceit website.
- kdr: A number representing the player’s kill-death ratio in the match.
- s: A string representing the score of the match.
- elod: A string representing the elo applied to the player.
- hub: A string containing the ID of the hub in which the match was played.
- hn: A string representing the name of the hub in which the match was played.
- ha: A string containing the URL of the avatar image for the hub.
- ht: A string representing the type of the hub.
- i0: A string representing the region that the match was played in.
- i1: A string representing the map that was played in the match.
- i2: A string containing the ID of the team that the player was on.
- i3: A string representing the score of the first half of the match.
- i4: A string representing the score of the second half of the match.
- i5: A string representing the team name
- i6: A string representing the number of kills made by the player in the match.
- i7: A string representing the number of assists made by the player in the match.
- i8: A string representing the number of deaths of the player in the match.
- i9: A string representing the number of MVP’s of the player in the match.
- i10: A string representing the result of the matchh.
- i12: A string representing the number of rounds of the match.
- i13: A string representing the number of headshots made by the player in the match.
- i14: A string representing the number of triple kills made by the player in the match.
- i15: A string representing the number of quadro kills made by the player in the match.
- i16: A string representing the number of penta kills (aces) made by the player in the match.
- i18: A string representing the score of the match.
- i19: A string representing the overtime score of the match.
- c1: A string representing the number of rounds won by the player’s team.
- c3: A string representing the K/D ratio of the player.
- c2: A string representing the K/R ratio of the player.
- c4: A string representing the headshot percentage of the player.
- c5: A string representing the number of kills made by the player.
GET api/stats/<playerid>
Returns stats for a specific player, identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose stats should be returned.
Response:
- A segment object containing the global stats for the player
##
GET api/maps/<playerid>
Returns stats for a specific player’s performance on different maps, identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose stats should be returned.
Response:
- segments: A list of segment objects containing the stats for the player on different maps
##
GET api/hubs/<playerid>
Returns stats for a specific player’s performance on different hubs, identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose stats should be returned.
Response:
- segments: A list of segment objects containing the stats for the player on different hubs
##
GET api/names/<playerid>
Returns stats for a specific player’s performance on different names, identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose stats should be returned.
Response:
- segments: A list of segment objects containing the stats for the player on different names
##
GET api/insights/<playerid>
/<segment_name>
Returns stats for a specific player’s performance on when player wins (i10=”1”) and loses (i10=”0”).
Request Parameters:
- playerid: The ID of the player whose stats should be returned.
- segment_name: The name of the segment to return stats for. Can be one of the following:
- aces
- all
- assists
- bestof
- competitionId
- date
- deaths
- delta
- finalscore
- firsthalfscore
- gamemode
- headshotpercent
- headshots
- hltv
- hour
- hub
- kdr
- kills
- krr
- map
- mvps
- nickname
- overtimerounds
- pentas
- premade
- quadras
- region
- rounds
- secondhalfscore
- team
- teamid
- triples
- weekday
- winnerid
- win
Response:
- segments: A list of segment objects containing the stats for the player on when player wins (i10=”1”) and loses (i10=”0”).
##
GET api/matches/<playerid>
Returns stats for a specific player’s performance on different segments (maps, hubs, names …), identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose matches should be returned.
Response:
- segments: A list of match Objects containing the matches for the player
GET api/highlights/<playerid>
Returns highlights for a specific player, identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose highlights should be returned.
Response:
- highlights
k (A list of 5 match Objects containing the matches with the highest number of kills)
kdr (A list of 5 match Objects containing the matches with the highest KDR)
d (A list of 5 match Objects containing the matches with the lowest number of deaths)
- lowlights
k (A list of 5 match Objects containing the matches with the lowest number of kills)
kdr (A list of 5 match Objects containing the matches with the lowest KDR)
d (A list of 5 match Objects containing the matches with the highest number of deaths)
GET api/playerGraphs/<playerid>
Returns graphs for a specific player, identified by their playerid.
Request Parameters:
- playerid: The ID of the player whose graphs should be returned.
Response:
- graph_data
- elo
- indexes (x axis)
- values (y axis)
- dates (dates of each value, could be a label on the x axis)
- min (min value)
- max (max value)
- kdr
- indexes (x axis)
- values (y axis)
- dates (dates of each value, could be a label on the x axis)
- min (min value)
- max (max value)
Pricing Plan
The Faceit Analyser API offers a free tier with a limited number of requests per month, followed by a pay-as-you-go pricing structure.
Requests per Month |
Cost |
Up to 5,000 |
Free |
Over 5,000 |
€1 per 1,000 additional requests |
Example:
If you make 7,000 requests in a month, you’ll be charged €2 (1€ for the first 2,000 requests exceeding the free tier).
If you are interested in obtaining an API key, contact [email protected] or request via this form