Our football API now offers live standings as matches are being played.
Live competition standings are a core component of modern football data platforms. While live scores, fixtures, or history data provide match-level information, live standings deliver aggregated, real-time competition context. Unlike fixed or static standings that update only after full match completion, our Live Standings football API endpoint continuously reflects ranking changes as matches progress, including points, goal difference, and position shifts. In addition to the current live standings, this API endpoint returns information about the match that the teams are currently playing, their opponents, score, and form outcome: W, L, or D.
Unlike the static standings here you do not need the know the season_id, as the live standings API endpoint is always returning the most current data. Taking advantage of this football API feature, you can get the data for a specific group only, using the group_id parameter.
Endpoint
To fetch the live competition standings from our Football API, all you need to do is make a request to the endpoint URL below. The API provides structured live standings data for 400+ football competitions worldwide.
Check this Football API endpoint in our postman collection. Download it now!
The live standings football API endpoint supports several useful parameters at your convenience. You can reference the parameters in the table below. They work separately as well as in combinations. You will get the live standings for all groups in all stages of a competition, or for a single group. To retrieve the live standings for a specific group you must use the correct group_id. To get the list of the groups in a compeition you can use the competition groups API endpoint.
More information on how different competitions, editions, stages, and groups are organised you can find on our static standings documentation page
| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| competition_id | Number | 1 | 2 | The ID of the competition which live standings you want to get. |
| group_id | Number | 11 | The ID of the group for which you need the standings. If you do not provide this parameter, this football API endpoint will return the standings for all groups in all stages. | |
| lang | String | ar | The ISO alpha2 code of the language in which you want the team names. |
Response
All the teams in the competition table will be in the returned body. Our football API response will include also, their performance data. In addition, information about the current match that the team is playing in the chosen competition will be provided. There is a JSON example below. We show a fraction of the teams participating in the UEFA Champions League. An actual response will contain too many teams, it is just too big for us to put all of the data in this page.
{
"success": true,
"data": {
"competition": {
"id": 244,
"name": "Champions League",
"is_league": false,
"is_cup": true,
"tier": 0,
"has_groups": true,
"active": true,
"national_teams_only": false
},
"season": {
"id": 56,
"name": "2025\/2026",
"start": "2025-07-01",
"end": "2026-06-30"
},
"stages": [
{
"id": "3626",
"name": "League Stage",
"groups": [
{
"id": "4217",
"name": "1",
"standings": [
{
"rank": 1,
"matches": 8,
"points": 24,
"goals_scored": 23,
"goal_diff": 20,
"goals_conceded": 3,
"lost": 0,
"drawn": 0,
"won": 8,
"live": {
"score": "3 - 1",
"form": "W",
"home": {
"id": 18,
"name": "Arsenal",
"stadium": "Emirates Stadium",
"country_id": 19,
"logo": "https:\/\/cdn.live-score-api.com\/teams\/b9052c2581682a6fc02fa5a0053650d7.png"
},
"away": {
"id": 2170,
"name": "Kairat Almaty",
"stadium": "Ortal\u0131q Stadion",
"country_id": 77,
"logo": "https:\/\/cdn.live-score-api.com\/teams\/c59ce0e011084bc46a148d2113067a55.png"
}
},
"team": {
"id": 18,
"name": "Arsenal",
"stadium": "Emirates Stadium",
"country_id": 19,
"logo": "https:\/\/cdn.live-score-api.com\/teams\/b9052c2581682a6fc02fa5a0053650d7.png"
}
},
{
"rank": 2,
"matches": 8,
"points": 19,
"goals_scored": 20,
"goal_diff": 13,
"goals_conceded": 7,
"lost": 1,
"drawn": 1,
"won": 6,
"live": {
"score": "0 - 0",
"form": "D",
"home": {
"id": 1386,
"name": "PSV Eindhoven",
"stadium": "Philips Stadion",
"country_id": 42,
"logo": "https:\/\/cdn.live-score-api.com\/teams\/312d0ebd91c11dfde78b20b3743d21ce.png"
},
"away": {
"id": 46,
"name": "Bayern Munich",
"stadium": "Allianz Arena",
"country_id": 1,
"logo": "https:\/\/cdn.live-score-api.com\/teams\/cc79c77233697bb9ab1d6110a4f67e32.png"
}
},
"team": {
"id": 46,
"name": "Bayern Munich",
"stadium": "Allianz Arena",
"country_id": 1,
"logo": "https:\/\/cdn.live-score-api.com\/teams\/cc79c77233697bb9ab1d6110a4f67e32.png"
}
}
]
}
]
}
]
}
}| Name | Type | Example | Description |
|---|---|---|---|
| competition | object | {} | An object holding the information about the competition for which you are getting the standings. It has the structure of our standard competition object. |
| drawn | Number | 7 | the number of drawn matches |
| goal_diff | Number | 52 | the goal difference of the team, if it is negative, it will be a negative number e.g. -6 |
| goals_conceded | Number | 18 | the number of goals the team conceded in their own goal |
| goals_scored | Number | 70 | the number of goals the team scored in their opponents goals |
| live.away | object | {} | An object holding the information about the away team in the match. It has the structure of our standard team object. |
| live.form | char | W, L, D | What the current score of the match means for the team: Win, Draw, or Loss |
| live.home | object | {} | An object holding the information about the home team in the match. It has the structure of our standard team object. |
| live.score | string | 1 - 0 | The live score of the match the team is currently playing |
| lost | Number | 1 | the number of games the team lost |
| matches | Number | 31 | the number of matches that the team has played |
| points | Number | 76 | number of points accumulated |
| rank | Number | 1 | the rank in the standings table that the team occupies |
| season | object | {} | An object holding the information about the season for which you are getting the standings of the competition. It has the structure of our standard season object. |
| stages | array | [] | A list with all the stages that contain groups with standings with their respective data |
| stages.groups | array | [] | An array holding the information about the all the groups in a stage with their standings |
| stages.groups.standings.team | object | {} | An object holding the information about the team in the standings. It has the structure of our standard team object. |
| stages.stage | object | {} | An object holding information about the stage: id and name |
| won | Number | 23 | the number of matches the team won |
Examples
cUrl:
curl -XGET "https://livescore-api.com/api-client/standings/live.json?competition_id=2&key=demo_key&secret=demo_secret"
PHP:
file_get_contents('https://livescore-api.com/api-client/standings/live.json?competition_id=2\&key=demo_key\&secret=demo_secret');
Python:
import urllib2
req = urllib2.Request('https://livescore-api.com/api-client/standings/live.json?competition_id=2\&key=demo_key\&secret=demo_secret')
response = urllib2.urlopen(req)
print response.read()In the examples bellow, you can see how you can request the live stanings in Arabic. To do that you need to add the following query parameter to your football API request. &lang=ar. Here are some examples:
cUrl:
curl -XGET "https://livescore-api.com/api-client/standings/live.json?competition_id=2&key=demo_key&secret=demo_secret&lang=ar"
PHP:
file_get_contents('https://livescore-api.com/api-client/standings/live.json?competition_id=2\&key=demo_key\&secret=demo_secret\&lang=ar');
Python:
import urllib2
req = urllib2.Request('https://livescore-api.com/api-client/standings/live.json?competition_id=2\&key=demo_key\&secret=demo_secret\&lang=ar')
response = urllib2.urlopen(req)
print response.read()