Club ranking
L
GET
/v1/teams/{id}/ranking
One club's ranking and how it moved over the year
One club's place in our club rankings: its rank in the world and in its country, its score, its record over the twelve months, its best rank of the year and its rank week by week, oldest first, for a chart. A club that 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
team_id
string
path
required
The club id. e.g.
tm_1E5HXK9
Returns
data.rank
integer
Its place in the list, 1 being the best; in our rankings, its place across the world.
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.wins
integer
Matches won.
data.draws
integer
Matches drawn.
data.losses
integer
Matches lost.
data.goals_for
integer
Goals scored.
data.goals_against
integer
Goals conceded.
data.form
string
The last five results, oldest first: W, D or L.
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.country_rank
integer
The club's place among the clubs of its country.
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/teams/tm_1E5HXK9/ranking" \ -H "X-API-Key: $FSAPI_KEY"
const res = await fetch("https://api.footballsoccerapi.com/v1/teams/tm_1E5HXK9/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/teams/tm_1E5HXK9/ranking", headers={"X-API-Key": os.environ["FSAPI_KEY"]}, ) data = r.json()["data"]
$ch = curl_init("https://api.footballsoccerapi.com/v1/teams/tm_1E5HXK9/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,
"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": 55,
"wins": 42,
"draws": 10,
"losses": 3,
"goals_for": 184,
"goals_against": 67,
"form": "DWDWW",
"last_played": "2026-10-28T19:45:00Z",
"best_rank_year": 1,
"best_rank_date": "2026-10-29",
"country_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.