Standings

GET https://hockey.highlightly.net/standings Hockey API
GET https://sports.highlightly.net/hockey/standings All Sports API

Retrieve standings for a specific league, conference or division.

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 immediately at the final horn 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 Group A and its rows in standings.

The endpoint serves a league, a conference or a division, so groups is a list. Render each group as its own table, using the position given on each row.

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 and the team, then the record behind it in gamesPlayed, wins and loses.

winsOvertime and losesOvertime sit beside those as their own counts, and scoredGoals and receivedGoals complete the row.

League standings rendered in a client application

Parameters

Parameter Type Description
leagueIdrequired number No description in the spec.e.g. 130987
seasonrequired number No description in the spec.e.g. 2022

Request

curl --request GET \
  --url 'https://hockey.highlightly.net/standings?leagueId=130987&season=2022' \
  --header 'x-rapidapi-key: YOUR_API_KEY'
const params = new URLSearchParams({
  leagueId: '130987',
  season: '2022'
})
const response = await fetch(`https://hockey.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://hockey.highlightly.net/standings',
    params={
        'leagueId': '130987',
        'season': '2022',
    },
    headers={
        'x-rapidapi-key': os.environ['HIGHLIGHTLY_API_KEY'],
    },
    timeout=10,
)

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

Response

groupsHockeyStandingsGroupsResponse[]required14 fields
namestringrequired
standingsHockeyStandings[]required12 fields
teamHockeyStandingsTeamrequired3 fields
idnumberrequired
logostring
namestringrequired
positionnumberrequired
winsnumberrequired
gamesPlayednumberrequired
losesnumberrequired
scoredGoalsnumberrequired
winsOvertimenumberrequired
losesOvertimenumberrequired
receivedGoalsnumberrequired
leagueHockeyStandingsLeagueResponserequired4 fields
idnumberrequired
logostring
namestringrequired
seasonnumberrequired

Example response

200 application/json
{
  "groups": [
    {
      "name": "Group A",
      "standings": [
        {
          "team": {
            "id": 1330897,
            "logo": "https://example.com/logos/team/1330897.png",
            "name": "Finland U20"
          },
          "position": 1,
          "wins": 3,
          "gamesPlayed": 3,
          "loses": 0,
          "scoredGoals": 11,
          "winsOvertime": 0,
          "losesOvertime": 0,
          "receivedGoals": 2
        }
      ]
    }
  ],
  "league": {
    "id": 130987,
    "logo": "https://example.com/logos/league/130987.png",
    "name": "WCH U20",
    "season": 2022
  }
}

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.