Standings

GET https://volleyball.highlightly.net/standings Volleyball API
GET https://sports.highlightly.net/volleyball/standings All Sports API

Retrieve standings for a specific league and season.

Refresh interval
Up to an hour after a match for the associated league and season is finished
Pagination
Not paginated

Standings settle up to an hour after the last relevant match finishes, so a table read as soon as a match ends may not yet reflect that result. Pair this with matches if you need the score before the table catches up.

Groups

Standings come back as groups, each with a name such as Regular Season and its own ordered table.

groups is a list, so a competition split into pools or sections can return more than one. Render each group as its own table rather than concatenating them.

Alongside groups, the response carries the league the table belongs to, including its season, so a rendered table needs nothing read back from leagues.

What each row carries

A row leads with position, points and the team, then the record behind them in gamesPlayed, wins and loses.

The row also carries scoredPoints and receivedPoints, and the difference between them is the usual figure to show next to a record.

League standings rendered in a client application

Parameters

Parameter Type Description
leagueIdrequired number No description in the spec.e.g. 150560
seasonrequired number No description in the spec.e.g. 2020

Request

curl --request GET \
  --url 'https://volleyball.highlightly.net/standings?leagueId=150560&season=2020' \
  --header 'x-rapidapi-key: YOUR_API_KEY'
const params = new URLSearchParams({
  leagueId: '150560',
  season: '2020'
})
const response = await fetch(`https://volleyball.highlightly.net/standings?${params}`, {
  headers: {
    'x-rapidapi-key': process.env.HIGHLIGHTLY_API_KEY
  }
})

if (!response.ok) {
  throw new Error(`Highlightly responded ${response.status}`)
}

const data = await response.json()
import os
import requests

response = requests.get(
    'https://volleyball.highlightly.net/standings',
    params={
        'leagueId': '150560',
        'season': '2020',
    },
    headers={
        'x-rapidapi-key': os.environ['HIGHLIGHTLY_API_KEY'],
    },
    timeout=10,
)

response.raise_for_status()
data = response.json()

Response

groupsVolleyballStandingsGroupsResponse[]required13 fields
namestringrequired
standingsVolleyballStandings[]required11 fields
teamVolleyballStandingsTeamrequired3 fields
idnumberrequired
logostring
namestringrequired
winsnumberrequired
losesnumberrequired
pointsnumberrequired
positionnumberrequired
gamesPlayednumberrequired
scoredPointsnumberrequired
receivedPointsnumberrequired
leagueVolleyballStandingsLeagueResponserequired4 fields
idnumberrequired
logostring
namestringrequired
seasonnumberrequired

Example response

200 application/json
{
  "groups": [
    {
      "name": "Regular Season",
      "standings": [
        {
          "team": {
            "id": 1148783,
            "logo": "https://example.com/logos/team/1148783.png",
            "name": "Barkom"
          },
          "wins": 17,
          "loses": 1,
          "points": 51,
          "position": 1,
          "gamesPlayed": 18,
          "scoredPoints": 53,
          "receivedPoints": 10
        }
      ]
    }
  ],
  "league": {
    "id": 150560,
    "logo": "https://example.com/logos/league/150560.png",
    "name": "Superleague",
    "season": 2020
  }
}

Values are the examples declared in the OpenAPI spec, not a captured live response.

Errors

Status Description
400 Bad request descriptive error.
500 Internal server error.