Competition players
A
GET
/v1/leagues/{id}/seasons/{season}/players
Every player in a competition-season, ranked
Every player who played in one competition in one season, ranked by goals unless you say otherwise: the scorers' table, the assists table, the most-used players, the best rated over a minimum number of minutes. Each row carries the club the figures were made for and the player_id for the player's full record.
Plan
This endpoint needs 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
league_id
string
path
required
The competition id. e.g.
lg_24T9Z0G
season
integer
path
required
Season by starting year. e.g.
2024
sort
string
query
What to rank by:
goals, assists, minutes, appearances, rating, shots, shots_on_target, key_passes, tackles, interceptions, yellow_cards, red_cards or saves, with - in front for highest first. Defaults to -goals. e.g. -assists
min_minutes
integer
query
Leave out players with fewer minutes than this, so a rating or a rate is not topped by someone who played once. e.g.
900
page
integer
query
Page number, 1-based. The response carries
total, total_pages, next_page and prev_page, so a UI pager has everything it needs from one call. If you send both page and cursor, page wins. e.g. 2
limit
integer
query
Rows per page, 1–1000. Defaults to 100. e.g.
100
Returns
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[].league_id
string
Our id for the competition.
data[].league_name
string
The competition's name.
data[].country_name
string
The country the competition belongs to.
data[].season
integer
The season, by the year it starts in.
data[].team_id
string
Our id for the club.
data[].team_name
string
The club's name.
data[].appearances
integer
Appearances.
data[].starts
integer
Matches started.
data[].minutes
integer
Minutes played.
data[].goals
integer
Goals scored.
data[].assists
integer
Goals set up.
data[].shots
integer
Shots.
data[].shots_on_target
integer
Shots on target.
data[].key_passes
integer
Key passes.
data[].yellow_cards
integer
Yellow cards.
data[].red_cards
integer
Red cards.
data[].rating
number
Rating.
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.
Request
curl "https://api.footballsoccerapi.com/v1/leagues/lg_24T9Z0G/seasons/2024/players?sort=-assists&min_minutes=900&page=2" \ -H "X-API-Key: $FSAPI_KEY"
const res = await fetch("https://api.footballsoccerapi.com/v1/leagues/lg_24T9Z0G/seasons/2024/players?sort=-assists&min_minutes=900&page=2", { 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/leagues/lg_24T9Z0G/seasons/2024/players?sort=-assists&min_minutes=900&page=2", headers={"X-API-Key": os.environ["FSAPI_KEY"]}, ) data = r.json()["data"]
$ch = curl_init("https://api.footballsoccerapi.com/v1/leagues/lg_24T9Z0G/seasons/2024/players?sort=-assists&min_minutes=900&page=2"); 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": [
{
"player_id": "pl_0HDM538",
"player_name": "Erling Haaland",
"league_id": "lg_24T9Z0G",
"league_name": "Premier League",
"country_name": "England",
"season": 2026,
"team_id": "tm_3WJM4RA",
"team_name": "Manchester City",
"appearances": 7,
"starts": 7,
"minutes": 620,
"goals": 8,
"assists": 0,
"shots": 26,
"shots_on_target": 14,
"key_passes": 4,
"yellow_cards": 0,
"red_cards": 0,
"rating": 7.91
},
{
"player_id": "pl_0FT6EHA",
"player_name": "Alexander Isak",
"league_id": "lg_24T9Z0G",
"league_name": "Premier League",
"country_name": "England",
"season": 2026,
"team_id": "tm_06VYC58",
"team_name": "Liverpool",
"appearances": 6,
"starts": 6,
"minutes": 481,
"goals": 6,
"assists": 0,
"shots": 14,
"shots_on_target": 8,
"key_passes": 6,
"yellow_cards": 1,
"red_cards": 0,
"rating": 7.68
}
],
"meta": {
"data_as_of": "2026-10-29T04:32:57Z",
"request_id": "01J9QW3C7M4KX2VB"
}
}
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.