Matches

GET https://soccer.highlightly.net/matches Football API
GET https://sports.highlightly.net/football/matches All Sports API

Retrieve a list of matches.

Refresh interval
Once a minute
Pagination
limit and offset
Detail
General information only

Querying

At least one primary query parameter must be specified before you can retrieve data. timezone, limit and offset are secondary and do not count on their own.

Combine timezone with date to get matches relevant to your own location rather than UTC.

limit sets how many matches come back. When the number of matching fixtures exceeds it, request the next page by increasing offset. See Pagination and limits.

Team and league filters take either an id or a name. homeTeamId, awayTeamId and leagueId come from teams and leagues, and homeTeamName, awayTeamName and leagueName match by name.

Match states

Every match carries a state object. The state value itself is in state.description, the score is in state.score, and state.clock gives the current minute when present.

So this endpoint is enough to show a score. The detail route is not needed for it.

The values of state.description are below. Polling a fixture through to its conclusion means handling all of them.

State Meaning
Not started Match has not been started yet.
First half In play, in the first half.
Second half In play, in the second half.
Half time Half time pause between first and second half.
Extra time Drawn in normal time, extra time needed to decide the winner.
Break time Short pause between in play periods and extra time.
Penalties Penalty shootout to decide the winner.
Finished Match has been concluded.
Finished after penalties Concluded with a penalty shootout.
Finished after extra time Concluded in extra time.
Postponed Prevented from being played. The start time moves to a future moment.
Suspended Was in play and was halted. Will resume from the exact point it stopped.
Cancelled Game will not be played.
Awarded Awarded to one team after the other forfeits, or after circumstances such as insufficient players, late arrival or withdrawal.
Interrupted An issue is preventing play from continuing. The game will either resume or be abandoned.
Abandoned Ended prematurely by the officials. It might be resumed later from the point it stopped.
In progress In play, but coverage information is minimal.
Unknown Unknown coverage or state.
To be announced Start time will be updated, or the competing teams are not yet known.

Football matches rendered in a client application

Parameters

Parameter Type Description
leagueNameoptional string No description in the spec.e.g. Superettan
leagueIdoptional number No description in the spec.e.g. 97798
dateoptional string Date that follows the YYYY-MM-DD format.e.g. 2023-08-06
timezoneoptional stringdefault Etc/UTC Valid timezone identifier.e.g. Europe/London
seasonoptional number No description in the spec.e.g. 2023
homeTeamIdoptional number No description in the spec.e.g. 5700782
awayTeamIdoptional number No description in the spec.e.g. 1907875
homeTeamNameoptional string No description in the spec.e.g. Skövde AIK
awayTeamNameoptional string No description in the spec.e.g. Vasteras SK FK
countryCodeoptional string Country code specified by the ISO 3166 standard.e.g. SE
countryNameoptional string No description in the spec.e.g. Sweden
limitoptional numberdefault 100 No description in the spec.e.g. 100
offsetoptional numberdefault 0 No description in the spec.e.g. 0

Request

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

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

Response

dataMatchResponse[]required28 fields
idnumberrequired
roundstringrequired
datestringrequired
countryCountryResponserequired3 fields
codestringrequiredCountry code specified by the ISO 3166 standard.
namestringrequired
logostringrequired
awayTeamTeamResponserequired4 fields
idnumberrequired
logostring
namestringrequired
typestringclubnational
homeTeamTeamResponserequired4 fields
idnumberrequired
logostring
namestringrequired
typestringclubnational
leagueMatchLeagueResponserequired4 fields
idnumberrequired
seasonnumberrequired
namestringrequired
logostring
stateMatchStateResponserequired5 fields
descriptionstringrequiredState of the match.To be announcedNot startedFirst halfHalf timeSecond halfExtra timeBreak timePenaltiesSuspendedInterruptedFinishedFinished after penaltiesFinished after extra timePostponedCancelledAbandonedAwardedIn progressUnknown
clocknumberCurrent minute of the match.
scoreMatchScoreResponserequired2 fields
currentstringHome - Away score up to penalties.
penaltiesstringHome - Away team score after the penalties phase.
paginationPaginationResponserequired3 fields
totalCountnumberrequiredAvailable number of items, relevant to the provided query.
offsetnumberrequired
limitnumberrequired
planPlanResponserequired2 fields
tierstringrequiredYour current API subscription tier.
messagestringrequiredExplanation message regarding your current tier.

Example response

200 application/json
{
  "data": [
    {
      "id": 489389,
      "round": "Regular Season - 32",
      "date": "2023-05-20T15:30:00.000Z",
      "country": {
        "code": "FR",
        "name": "France",
        "logo": "https://example.com/logos/country/FR.png"
      },
      "awayTeam": {
        "id": 553,
        "logo": "https://example.com/logos/team/553.png",
        "name": "Montpellier",
        "type": "club"
      },
      "homeTeam": {
        "id": 553,
        "logo": "https://example.com/logos/team/553.png",
        "name": "Montpellier",
        "type": "club"
      },
      "league": {
        "id": 133,
        "season": 2023,
        "name": "Ligue 1",
        "logo": "https://example.com/logos/league/133.png"
      },
      "state": {
        "description": "Second half",
        "clock": 67,
        "score": {
          "current": "3 - 1",
          "penalties": "6 - 4"
        }
      }
    }
  ],
  "pagination": {
    "totalCount": 490,
    "offset": 20,
    "limit": 100
  },
  "plan": {
    "tier": "BASIC",
    "message": "Some results might be hidden with FREE tier. Check your API coverage for more information: https://rapidapi.com/highlightly-api-highlightly-api-default/api/sport-highlights-api/details"
  }
}

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.