The free key reads yesterday again: our one-month trial of today on the free key has finished. Read the changelog

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"

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.

Get a key
GET