Matches
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. |
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
{
"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. |