Player ranking
L
GET
/v1/players/{id}/ranking
One player's ranking and how it moved over the year
One player's place in our player rankings: his rank overall, among his role and at his club, his score, his minutes and goals over the twelve months, his best rank of the year and his rank week by week, oldest first. A player who is not ranked answers 404 with the reason. On the Live & Archive plan.
Plan
This endpoint needs Live & Archive.
Calling it on a lower plan returns a 403 naming the plan it needs and
a link to pricing, never a bare refusal.
Parameters
player_id
string
path
required
The player, from a match's players or a competition's player list. e.g.
pl_0YC6AT4
Returns
data.rank
integer
Its place in the list, 1 being the best; in our rankings, its place across the world.
data.role_rank
integer
The player's place among players in the same role.
data.player_id
string
Our id for the player. Stable: what you store today still resolves later.
data.player_name
string
The player's name.
data.role
string
goalkeeper, defender, midfielder or forward: where the player played most of his minutes.
data.team_id
string
Our id for the club.
data.team_name
string
The club's name.
data.country_name
string
The country the competition belongs to.
data.league_id
string
Our id for the competition.
data.league_name
string
The competition's name.
data.score
integer
Our score, 0 to 100: the best ranked at 100.
data.rank_week_ago
empty in this example
Its rank a week ago; empty when it was not ranked then.
data.places_moved_week
empty in this example
Places gained over the week; negative for places lost.
data.rank_year_ago
empty in this example
Its rank a year ago; empty when it was not ranked then.
data.matches
integer
Matches counted.
data.starts
integer
Matches started.
data.minutes
integer
Minutes played.
data.goals
integer
Goals scored.
data.assists
integer
Goals set up.
data.last_played
string
The latest match played, as a UTC timestamp.
data.best_rank_year
integer
Its best rank in the last twelve months.
data.best_rank_date
string
The day it held that best rank.
data.club_rank
integer
The player's place among the ranked players of his club.
data.history
list
Its rank and score week by week over the year, oldest first.
data.history[].date
string
Date.
data.history[].rank
integer
Its place in the list, 1 being the best; in our rankings, its place across the world.
data.history[].score
integer
Our score, 0 to 100: the best ranked at 100.
meta.data_as_of
string
When the data behind this answer was last brought up to date.
meta.request_id
string
This request's id, to quote to support.
meta.ranked_at
string
When the rankings were worked out, as a UTC timestamp.
meta.window_from
string
The first day of the twelve months counted.
meta.window_to
string
The last day of the twelve months counted.
Request
curl "https://api.footballsoccerapi.com/v1/players/pl_0YC6AT4/ranking" \ -H "X-API-Key: $FSAPI_KEY"
const res = await fetch("https://api.footballsoccerapi.com/v1/players/pl_0YC6AT4/ranking", { headers: { "X-API-Key": process.env.FSAPI_KEY } }); const { data, meta } = await res.json();
import os, requests r = requests.get( "https://api.footballsoccerapi.com/v1/players/pl_0YC6AT4/ranking", headers={"X-API-Key": os.environ["FSAPI_KEY"]}, ) data = r.json()["data"]
$ch = curl_init("https://api.footballsoccerapi.com/v1/players/pl_0YC6AT4/ranking"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["X-API-Key: {$key}"], ]); $data = json_decode(curl_exec($ch), true)["data"];
Example response
A real row from the archive, fetched when this page rendered. Run it against your own key below.
200 OK
application/json
{
"data": {
"rank": 1,
"role_rank": 1,
"player_id": "pl_0BSP9DP",
"player_name": "H. Kane",
"role": "forward",
"team_id": "tm_234PN5V",
"team_name": "Bayern München",
"country_name": "Germany",
"league_id": "lg_0S9M0P4",
"league_name": "Bundesliga",
"score": 100,
"rank_week_ago": null,
"places_moved_week": null,
"rank_year_ago": null,
"matches": 50,
"starts": 42,
"minutes": 3946,
"goals": 51,
"assists": 11,
"last_played": "2026-10-25T16:30:00Z",
"best_rank_year": 1,
"best_rank_date": "2026-10-29",
"club_rank": 1,
"history": [
{
"date": "2026-10-29",
"rank": 1,
"score": 100
}
]
},
"meta": {
"data_as_of": "2026-10-29T04:32:57Z",
"request_id": "01J9QW3C7M4KX2VB",
"ranked_at": "2026-10-29T10:18:53Z",
"window_from": "2025-10-29",
"window_to": "2026-10-29"
}
}
Run it live
Paste your key and fire the real request. The key is kept in this browser only and never sent anywhere but the API.