Download OpenAPI specification:Download
Welcome to the biggest Sports Highlights API. Get access to a centralized hub for diverse and engaging sport highlights to ensure that your sport application remains dynamic, distinctive, and rich in content. Expand your applications interactiveness by integrating live events, match and team statistics, pre-match odds and much more.
Sport | Coverage |
---|---|
Football | +750 leagues |
Basketball | +300 leagues |
Hockey | +170 leagues |
Baseball | MLB, NCAA |
American Football | NFL, NCAA |
Cricket | +1000 leagues |
Rugby | +100 leagues |
Handball | +180 leagues |
Volleyball | +200 leagues |
NBA, NCAAB | |
NHL, NCAAH |
For feature requests, questions, private plans or business inquiries you can contact us at [email protected].
You can also contact us via RapidAPI by starting a discussion or by sending us a private message.
To start using our API services you will first need to create a RapidAPI account. The platform offers you the ability to view the API analytics, manage billing settings, control API keys and much more.
Please ensure that your API key is not made public to prevent potential abuse. Your API key can be managed through the RapidAPI platform.
Base API url:
https://sport-highlights-api.p.rapidapi.com
Each API request will be considered valid only if the following headers are present:
Request Header | Value |
---|---|
x-rapidapi-key |
Your RapidAPI API Key |
x-rapidapi-host |
sport-highlights-api.p.rapidapi.com |
These headers are mandatory when requesting API data. They are not needed when requesting other resources such as logos or images.
Each API response will contain additional headers. The following three are considered the most important for developers:
Response Header | Value |
---|---|
x-ratelimit-requests-limit |
This is a static value indicating the number of requests the plan you are currently subscribed to allows you to make. |
x-ratelimit-requests-remaining |
The number of requests remaining (from your plan) before you reach the limit of requests your application is allowed to make. When this reaches zero, you will not be able to make any requests until your daily quota is reset. You can view these limits and quotas on the pricing page of the API in the API Hub. |
content-type |
Value will always be application/json . XML format is not supported. |
In the following sections we will guide you through all endpoints and functionalities the API has to offer.
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=France |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: FR A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2023 |
leagueName | string Example: leagueName=Superettan |
countryCode | string Example: countryCode=SE Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Sweden |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 104,
- "name": "UEFA Champions League",
- "seasons": [
- {
- "season": 2022
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 97798 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 104,
- "name": "UEFA Champions League",
- "seasons": [
- {
- "season": 2022
}
]
}
]
Retrieve a list of teams that are supported by the API.
By utilising the name
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Skövde AIK |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 5700782 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "leagueId": 216087,
- "season": 2023,
- "leagueName": "Major League Soccer",
- "total": {
- "games": {
- "played": 34,
- "wins": 20,
- "loses": 5,
- "draws": 5
}, - "goals": {
- "scored": 57,
- "received": 39
}
}, - "home": {
- "games": {
- "played": 34,
- "wins": 20,
- "loses": 5,
- "draws": 5
}, - "goals": {
- "scored": 57,
- "received": 39
}
}, - "away": {
- "games": {
- "played": 34,
- "wins": 20,
- "loses": 5,
- "draws": 5
}, - "goals": {
- "scored": 57,
- "received": 39
}
}
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 5700782 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Not started | Match has not been started yet. |
First half | Match is considered in play and is in the first half. |
Second half | Match is considered in play and is in the second half. |
Half time | Half time pause between first and second half. |
Extra time | Game was considered a draw in normal time. Additional extra time is needed to decide the winner. |
Break time | Short pause between in play periods and extra time. |
Penalties | Penalty shootout to decide the winner of the match. |
Finished | Match has been concluded. |
Finished after penalties | Match has been concluded with the penalty shootout. |
Finished after extra time | Match has been concluded in extra time. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Awarded | Game awarded to one of the teams when the other forfeits or specific circumstances have been met such as insufficient players, late arrival, team withdrawl, etc. |
Interrupted | An issue arose that is preventing the game from continuing. Based on the interruption the game will either resume normal play or be abandoned. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
In progress | Match is considered in play but the coverage information is minimal. |
Unknown | Unknown match coverage or state. |
To be announced | Match's start time will be updated or competing teams are not yet known. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=Superettan |
leagueId | number Example: leagueId=97798 |
date | string Example: date=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
homeTeamId | number Example: homeTeamId=5700782 |
awayTeamId | number Example: awayTeamId=1907875 |
homeTeamName | string Example: homeTeamName=Skövde AIK |
awayTeamName | string Example: awayTeamName=Vasteras SK FK |
countryCode | string Example: countryCode=SE Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Sweden |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 489389,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": {
- "id": 133,
- "season": 2023,
- "name": "Ligue 1",
}, - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Certain popular leagues and their associated matches will have additional data about the venue
, weather forecast
, match statistics
, and who the game's referee
is. The retrieved data will also contain a list of important events that happened:
Type | Description |
---|---|
Goal | A player strikes the ball into the opposing team's goal. |
Own Goal | A player strikes or deflects the ball into their own team's goal. |
Penalty | A player scores the goal from the penalty spot after a foul or hand play by the defending team inside the penalty area. |
Missed Penatly | The player taking the penalty kick failed to score, either by missing the target or the shot being saved by the goalkeeper. |
Yellow Card | A player is cautioned by the referee for unsporting behavior or foul play. |
Red Card | A player is sent off the field for serious foul play, violent conduct, or receiving a second yellow card. |
Substitution | A player is replaced by another player from the bench during a stoppage in play. |
VAR Goal Confirmed | The Video Assistant Referee (VAR) review confirms that a goal is valid and should stand. |
VAR Goal Cancelled | The VAR review determines that a goal should be disallowed due to an infringement or violation. |
VAR Penalty | The VAR review results in a penalty being awarded to a team. |
VAR Penalty Cancelled | The VAR review results in a previously awarded penalty being overturned. |
VAR Goal Cancelled - Offside | The VAR review determines that a goal should be disallowed due to an offside infringement. |
The above list may be updated with additional entries in the future.
Note: Used to retrieve additional match information.
id required | number Example: 986165114 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1002433681,
- "round": "Apertura - 9",
- "date": "\"2024-03-31T20:30:00.000Z",
- "league": {
- "id": 133,
- "season": 2023,
- "name": "Ligue 1",
}, - "state": {
- "description": "Second half",
- "clock": 67,
- "score": {
- "current": "3 - 1",
- "penalties": "6 - 4"
}
}, - "events": [
- {
- "team": {
- "id": 13394673,
- "name": "Tersana"
}, - "time": "45+1",
- "type": "Goal",
- "player": "M. Mamdouh",
- "assist": "J. Johanson",
- "substituted": "string"
}
], - "statistics": [
- {
- "value": 0.62,
- "displayName": "Shots accuracy"
}
], - "referee": {
- "name": "Brace, Andrew",
- "nationality": "Ireland"
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=TR Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Turkey |
leagueName | string Example: leagueName=Süper Lig |
leagueId | number Example: leagueId=173537 |
date | string Example: date=2023-08-11 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
matchId | number Example: matchId=914490490 |
homeTeamId | number Example: homeTeamId=850082 |
awayTeamId | number Example: awayTeamId=856039 |
homeTeamName | string Example: homeTeamName=Trabzonspor |
awayTeamName | string Example: awayTeamName=Antalyaspor |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "type": "VERIFIED",
- "title": "Ligue 1: Lyon vs Reims",
- "description": "Game recap of the match.",
- "match": {
- "id": 489389,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": {
- "id": 133,
- "season": 2023,
- "name": "Ligue 1",
}, - "state": {
- "description": "Second half",
- "clock": 67,
- "score": {
- "current": "3 - 1",
- "penalties": "6 - 4"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 125344 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 8780 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "type": "VERIFIED",
- "title": "Ligue 1: Lyon vs Reims",
- "description": "Game recap of the match.",
- "match": {
- "id": 489389,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": {
- "id": 133,
- "season": 2023,
- "name": "Ligue 1",
}, - "state": {
- "description": "Second half",
- "clock": 67,
- "score": {
- "current": "3 - 1",
- "penalties": "6 - 4"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "name": "Stake.com"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stake.com"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Full Time Result | The possible outcomes for the mentioned market are Home , Draw or Away . |
Asian Handicap | This is considered a complex market. It is split into multiple possible variants such as "Asian Handicap -1.25/+1.25", "Asian Handicap -1.5/+1.5" and so on. The possible outcome of a variant is either Home or Away . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
Total Goals | This is considered a complex market. It is split into multiple possible variants such as "Total Goals 2", "Total Goals 3.5" and so on. The possible outcome of a variant is either Over or Under . |
Both Teams to Score | The market defines whether both teams will score or not. Outcomes can be either Yes or No . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueId | number |
leagueName | string |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=1 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=Stake.com |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 884822928,
- "odds": [
- {
- "bookmakerId": 1,
- "bookmakerName": "Stake.com",
- "type": "prematch",
- "market": "Full Time Result",
- "values": [
- {
- "odd": 6.6,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=33973 |
season required | number Example: season=2023 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "Premier League - Regular Season",
- "standings": [
- {
- "away": {
- "wins": 11,
- "draws": 4,
- "games": 17,
- "loses": 5,
- "scoredGoals": 28,
- "receivedGoals": 27
}, - "home": {
- "wins": 11,
- "draws": 4,
- "games": 17,
- "loses": 5,
- "scoredGoals": 28,
- "receivedGoals": 27
}, - "total": {
- "wins": 11,
- "draws": 4,
- "games": 17,
- "loses": 5,
- "scoredGoals": 28,
- "receivedGoals": 27
}, - "points": 63,
- "position": 4
}
]
}
], - "league": {
- "id": 33973,
- "name": "Premier League",
- "season": 2023
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=5700782 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 489389,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": {
- "id": 133,
- "season": 2023,
- "name": "Ligue 1",
}, - "state": {
- "description": "Second half",
- "clock": 67,
- "score": {
- "current": "3 - 1",
- "penalties": "6 - 4"
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=314803 |
teamIdTwo required | number Example: teamIdTwo=5700782 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 489389,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": {
- "id": 133,
- "season": 2023,
- "name": "Ligue 1",
}, - "state": {
- "description": "Second half",
- "clock": 67,
- "score": {
- "current": "3 - 1",
- "penalties": "6 - 4"
}
}
}
]
Lineups will become available 30 minutes before the game starts or, at the latest, 15 minutes after kickoff.
Refresh interval: Once every 10 minutes
Retrieve home and away team lineups for a specific match.
Understanding the returned data structure is crucial for accurate rendering. The formation
and initialLineup
fields are closely related. The first row will always include the team's goalkeeper, while subsequent rows will have the number of entries specified by the formation field.
Below is an example of what you can aim to achieve with the lineup endpoint:
matchId required | number Example: 890342514 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "homeTeam": {
- "id": 66311,
- "formation": "4-2-3-1",
- "name": "Angers",
- "substitutes": [
- {
- "name": "Lilian Raolisoa",
- "number": 27,
- "position": "Defender"
}
], - "initialLineup": [
- [
- {
- "name": "Yahia Fofana",
- "number": 30,
- "position": "Goalkeeper"
}
], - [
- {
- "name": "Florent Hanin",
- "number": 26,
- "position": "Defender"
}, - {
- "name": "Jordan Lefort",
- "number": 21,
- "position": "Defender"
}, - {
- "name": "Cédric Hountondji",
- "number": 22,
- "position": "Defender"
}, - {
- "name": "Yan Valery",
- "number": 2,
- "position": "Defender"
}
], - [
- {
- "name": "Himad Abdelli",
- "number": 10,
- "position": "Midfielder"
}, - {
- "name": "Zinédine Ould Khaled",
- "number": 12,
- "position": "Midfielder"
}
], - [
- {
- "name": "Justin-Noel Kalumba",
- "number": 17,
- "position": "Midfielder"
}, - {
- "name": "Pierrick Capelle",
- "number": 15,
- "position": "Midfielder"
}, - {
- "name": "Farid El Melali",
- "number": 28,
- "position": "Midfielder"
}
], - [
- {
- "name": "Loïs Diony",
- "number": 9,
- "position": "Forward"
}
]
]
}, - "awayTeam": {
- "id": 66311,
- "formation": "4-2-3-1",
- "name": "Angers",
- "substitutes": [
- {
- "name": "Lilian Raolisoa",
- "number": 27,
- "position": "Defender"
}
], - "initialLineup": [
- [
- {
- "name": "Yahia Fofana",
- "number": 30,
- "position": "Goalkeeper"
}
], - [
- {
- "name": "Florent Hanin",
- "number": 26,
- "position": "Defender"
}, - {
- "name": "Jordan Lefort",
- "number": 21,
- "position": "Defender"
}, - {
- "name": "Cédric Hountondji",
- "number": 22,
- "position": "Defender"
}, - {
- "name": "Yan Valery",
- "number": 2,
- "position": "Defender"
}
], - [
- {
- "name": "Himad Abdelli",
- "number": 10,
- "position": "Midfielder"
}, - {
- "name": "Zinédine Ould Khaled",
- "number": 12,
- "position": "Midfielder"
}
], - [
- {
- "name": "Justin-Noel Kalumba",
- "number": 17,
- "position": "Midfielder"
}, - {
- "name": "Pierrick Capelle",
- "number": 15,
- "position": "Midfielder"
}, - {
- "name": "Farid El Melali",
- "number": 28,
- "position": "Midfielder"
}
], - [
- {
- "name": "Loïs Diony",
- "number": 9,
- "position": "Forward"
}
]
]
}
}
Refresh interval: Once every 5 minutes
Retrieve match statistics data by specifying the matchId
as the path parameter.
Below is an example of what you can aim to achieve with the statistics endpoint:
matchId required | number Example: 979465191 Requested statistics for given match id |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "statistics": [
- {
- "value": 0.62,
- "displayName": "Shots accuracy"
}
]
}
]
Refresh interval: Once a minute
Retrieve a list of live events for a match by specifying matchId
as the path parameter.
Currently supported live events:
Type | Description |
---|---|
Goal | A player strikes the ball into the opposing team's goal. |
Own Goal | A player strikes or deflects the ball into their own team's goal. |
Penalty | A player scores the goal from the penalty spot after a foul or hand play by the defending team inside the penalty area. |
Missed Penatly | The player taking the penalty kick failed to score, either by missing the target or the shot being saved by the goalkeeper. |
Yellow Card | A player is cautioned by the referee for unsporting behavior or foul play. |
Red Card | A player is sent off the field for serious foul play, violent conduct, or receiving a second yellow card. |
Substitution | A player is replaced by another player from the bench during a stoppage in play. |
VAR Goal Confirmed | The Video Assistant Referee (VAR) review confirms that a goal is valid and should stand. |
VAR Goal Cancelled | The VAR review determines that a goal should be disallowed due to an infringement or violation. |
VAR Penalty | The VAR review results in a penalty being awarded to a team. |
VAR Penalty Cancelled | The VAR review results in a previously awarded penalty being overturned. |
VAR Goal Cancelled - Offside | The VAR review determines that a goal should be disallowed due to an offside infringement. |
The above list may be updated with additional entries in the future.
Below is an example of what you can aim to achieve with the live events endpoint:
id required | number Example: 1022538556 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "team": {
- "id": 13394673,
- "name": "Tersana"
}, - "time": "45+1",
- "type": "Goal",
- "player": "M. Mamdouh",
- "assist": "J. Johanson",
- "substituted": "string"
}
]
Retrieve a list of teams that are supported by the API.
By utilising either league
, name
, displayName
or abbreviation
query parameters you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
name | string Example: name=Bengals |
displayName | string Example: displayName=Cincinnati Bengals |
abbreviation | string Example: abbreviation=CIN |
league | string Example: league=NFL |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO",
- "league": "NFL"
}
]
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 92730 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 67,
- "wins": 24,
- "loses": 43
}, - "points": {
- "scored": 1369,
- "received": 1619
}
}, - "home": {
- "games": {
- "played": 33,
- "wins": 13,
- "loses": 20
}, - "points": {
- "scored": 694,
- "received": 713
}
}, - "away": {
- "games": {
- "played": 34,
- "wins": 11,
- "loses": 23
}, - "points": {
- "scored": 675,
- "received": 906
}
}, - "leagueName": "NFL",
- "round": "regular-season"
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 92730 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO",
- "league": "NFL"
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Finished | Match has been concluded. |
Scheduled | Match has not been started yet. |
End period | Break time between periods. |
Half time | Half time pause between second and third quarter. |
In progress | Game is currently in progress. |
Unknown | Unknown match coverage or state. |
Below is an example of what you can aim to achieve with the matches endpoint:
league | string Example: league=NFL |
date | string Example: date=2024-08-23 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
homeTeamId | number Example: homeTeamId=92730 |
awayTeamId | number Example: awayTeamId=92731 |
homeTeamName | string Example: homeTeamName=Bengals |
awayTeamName | string Example: awayTeamName=Colts |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=CIN |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=IND |
homeTeamDisplayName | string Example: homeTeamDisplayName=Cincinnati Bengals |
awayTeamDisplayName | string Example: awayTeamDisplayName=Indianapolis Colts |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NFL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "homeTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "21 - 7",
- "firstPeriod": "0 - 0",
- "secondPeriod": "7 - 7",
- "thirdPeriod": "7 - 0",
- "fourthPeriod": "7 - 0",
- "firstOvertimePeriod": "7 - 0",
- "secondOvertimePeriod": "7 - 0"
}, - "report": "Final"
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Fetched data will have additional information about the venue
, weather forecast
, overallStatistics
for each team, injuries
and events
.
Note: Used to retrieve additional match information.
id required | number Example: 49053 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NFL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "homeTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "21 - 7",
- "firstPeriod": "0 - 0",
- "secondPeriod": "7 - 7",
- "thirdPeriod": "7 - 0",
- "fourthPeriod": "7 - 0",
- "firstOvertimePeriod": "7 - 0",
- "secondOvertimePeriod": "7 - 0"
}, - "report": "Final"
}, - "venue": {
- "city": "Baltimore",
- "name": "M&T Bank Stadium",
- "state": "MD"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}, - "overallStatistics": [
- {
- "data": [
- {
- "value": "16.0",
- "displayName": "Points per game"
}
], - "team": {
- "id": 35,
- "name": "Saints",
- "league": "NFL",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}
}
], - "injuries": [
- {
- "team": {
- "id": 35,
- "name": "Saints",
- "league": "NFL",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "data": [
- {
- "status": "Questionable",
- "player": {
- "name": "Alvin Kamara",
- "jersey": 41,
- "position": "Running Back"
}
}
]
}
], - "events": [
- {
- "end": {
- "clock": "11:43",
- "period": "1st quarter",
- "yardLine": 40
}, - "team": {
- "id": 35,
- "name": "Saints",
- "league": "NFL",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "plays": [
- "string"
], - "start": {
- "clock": "11:43",
- "period": "1st quarter",
- "yardLine": 40
}, - "result": "Punt",
- "description": "5 plays, 6 yards, 3:17",
- "isScoringPlay": false
}
]
}
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
leagueName | string Example: leagueName=NCAA |
date | string Example: date=2024-08-31 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
matchId | number Example: matchId=49130 |
homeTeamId | number Example: homeTeamId=92884 |
awayTeamId | number Example: awayTeamId=92885 |
homeTeamName | string Example: homeTeamName=Boilermakers |
awayTeamName | string Example: awayTeamName=Sycamores |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=PUR |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=INST |
homeTeamDisplayName | string Example: homeTeamDisplayName=Purdue Boilermakers |
awayTeamDisplayName | string Example: awayTeamDisplayName=Indiana State Sycamores |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "type": "VERIFIED",
- "title": "NFL: New Orleans Saints vs Kansas City Chiefs",
- "description": "Game recap of the match.",
- "match": {
- "id": 1,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NFL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "homeTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "21 - 7",
- "firstPeriod": "0 - 0",
- "secondPeriod": "7 - 7",
- "thirdPeriod": "7 - 0",
- "fourthPeriod": "7 - 0",
- "firstOvertimePeriod": "7 - 0",
- "secondOvertimePeriod": "7 - 0"
}, - "report": "Final"
}
}, - "channel": "NFL",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 54072 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 54072 Requested highlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "type": "VERIFIED",
- "title": "NFL: New Orleans Saints vs Kansas City Chiefs",
- "description": "Game recap of the match.",
- "match": {
- "id": 1,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NFL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "homeTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "21 - 7",
- "firstPeriod": "0 - 0",
- "secondPeriod": "7 - 7",
- "thirdPeriod": "7 - 0",
- "fourthPeriod": "7 - 0",
- "firstOvertimePeriod": "7 - 0",
- "secondOvertimePeriod": "7 - 0"
}, - "report": "Final"
}
}, - "channel": "NFL",
- "source": "youtube"
}
]
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=92730 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NFL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "homeTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "21 - 7",
- "firstPeriod": "0 - 0",
- "secondPeriod": "7 - 7",
- "thirdPeriod": "7 - 0",
- "fourthPeriod": "7 - 0",
- "firstOvertimePeriod": "7 - 0",
- "secondOvertimePeriod": "7 - 0"
}, - "report": "Final"
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=92730 |
teamIdTwo required | number Example: teamIdTwo=92731 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "round": "Regular Season - 32",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NFL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "homeTeam": {
- "id": 1,
- "name": "Saints",
- "displayName": "New Orleans Saints",
- "abbreviation": "NO"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "21 - 7",
- "firstPeriod": "0 - 0",
- "secondPeriod": "7 - 7",
- "thirdPeriod": "7 - 0",
- "fourthPeriod": "7 - 0",
- "firstOvertimePeriod": "7 - 0",
- "secondOvertimePeriod": "7 - 0"
}, - "report": "Final"
}
}
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 53,
- "name": "Megapari Sport"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 21454 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 53,
- "name": "Megapari Sport"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Full Time Result | The possible outcomes for the mentioned market are Home , Away or Draw . |
Moneyline | When a match does not have a three-way moneyline it will have a two-way one instead. The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Totals | This is considered a complex market. It is split into multiple possible variants such as "Totals 25", "Totals 25.5" and so on. The possible outcome of a variant is either Over or Under . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueName | string Example: leagueName=NFL |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=21454 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=Stake.com |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 394,
- "odds": [
- {
- "bookmakerId": 53,
- "bookmakerName": "Megapari Sport",
- "type": "prematch",
- "market": "Odd or Even",
- "values": [
- {
- "odd": 2.8,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
There are numerous ways on how to fetch the data. You can utilise either abbreviation
or leagueName
:
League Name | Abbreviation |
---|---|
American Athletic Conference | AAC |
Atlantic Coast Conference | ACC |
Big 12 Conference | BIG12 |
Big Ten Conference | BIG10 |
American Football Conference | AFC |
National Football Conference | NFC |
Conference USA | USA |
Mid-American Conference | MIDAM |
Mountain West Conference | MWEST |
Pac-12 Conference | PAC12 |
Sun Belt - West | BELTW |
FBS Independents | IND |
Southeastern Conference | SEC |
Sun Belt - East | BELTE |
National Football Conference | NFC |
American Football Conference | AFC |
Additionally you can specify the year
parameter to narrow down the the standings for that season.
There are two other important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned standings will be. If the number of actual standings is above the limit
value you can make subsequent requests by increasing the offset
value.
Below is an example on how you could render league associated standings
leagueType | string Example: leagueType=NFL |
limit | number [ 0 .. 10 ] Default: 10 Example: limit=5 |
offset | number >= 0 Default: 0 |
leagueName | string Example: leagueName=National Football Conference |
abbreviation | string Example: abbreviation=NFC |
year | number Example: year=2024 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "leagueName": "American Football Conference",
- "abbreviation": "AFC",
- "year": 2024,
- "leagueType": "NFL",
- "seasonType": "Preseason",
- "startDate": "2024-08-01T07:00:00.000Z",
- "endDate": "2024-09-05T06:59:00.000Z",
- "data": [
- {
- "team": {
- "id": 3,
- "name": "Broncos",
- "displayName": "Denver Broncos",
- "abbreviation": "DEN"
}, - "statistics": [
- {
- "value": "+4",
- "displayName": "Differential"
}
]
}
]
}
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=Australia |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: AU A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Not started | Match has not been started yet. |
First quarter | Match is considered in play and is in the first period. |
Second quarter | Match is considered in play and is in the second period. |
Third quarter | Match is considered in play and is in the third period. |
Fourth quarter | Match is considered in play and is in the fourth period. |
Over time | Game was considered a draw in normal time. Additional extra time is needed to decide the winner. |
Break time | Regulation period between quarters or over time. |
Half time | Half time pause between second and third quarter. |
Finished | Match has been concluded. |
Finished after over time | Match has been concluded in over time. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Cancelled | Game will not be played. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Awarded | Game awarded to one of the teams when the other forfeits or specific circumstances have been met such as insufficient players, late arrival, team withdrawl, etc. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Unknown | Unknown match coverage or state. |
To be announced | Match's start time will be updated or competing teams are not yet known. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=NBL |
leagueId | number Example: leagueId=1635 |
date | string Example: date=2023-10-01 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
homeTeamId | number Example: homeTeamId=7592 |
awayTeamId | number Example: awayTeamId=1635 |
homeTeamName | string Example: homeTeamName=Adelaide |
awayTeamName | string Example: awayTeamName=Melbourne United |
countryCode | string Example: countryCode=AU |
countryName | string Example: countryName=Australia |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 489389,
- "week": "1",
- "stage": "Final",
- "date": "2023-10-01T03:00:00.000Z",
- "league": {
- "id": 1635,
- "season": 2023,
- "name": "NBL",
}, - "state": {
- "description": "Finished",
- "clock": 9,
- "score": {
- "current": "105 - 104",
- "q1": "22 - 15",
- "q2": "17 - 33",
- "q3": "11 - 27",
- "q4": "33 - 14",
- "overTime": "22 - 15"
}
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Certain popular leagues and their associated matches will have additional data about the venue
and match weather forecast
.
Note: Used to retrieve additional match information.
id required | number Example: 318831338 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 318831338,
- "week": "50",
- "stage": "Final",
- "date": "2024-03-31T11:35:00.000Z",
- "league": {
- "id": 1635,
- "season": 2023,
- "name": "NBL",
}, - "state": {
- "description": "Finished",
- "clock": 9,
- "score": {
- "current": "105 - 104",
- "q1": "22 - 15",
- "q2": "17 - 33",
- "q3": "11 - 27",
- "q4": "33 - 14",
- "overTime": "22 - 15"
}
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=AU Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Australia |
leagueName | string Example: leagueName=NBL |
leagueId | number Example: leagueId=1635 |
date | string Example: date=2023-10-01 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
matchId | number Example: matchId=299340885 |
homeTeamId | number Example: homeTeamId=7592 |
awayTeamId | number Example: awayTeamId=1635 |
homeTeamName | string Example: homeTeamName=Adelaide |
awayTeamName | string Example: awayTeamName=Melbourne United |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 28,
- "type": "VERIFIED",
- "title": "NBL: Adelaide vs Melbourne United",
- "description": "Game recap of the match.",
- "match": {
- "id": 489389,
- "week": "1",
- "stage": "Final",
- "date": "2023-10-01T03:00:00.000Z",
- "league": {
- "id": 1635,
- "season": 2023,
- "name": "NBL",
}, - "state": {
- "description": "Finished",
- "clock": 9,
- "score": {
- "current": "105 - 104",
- "q1": "22 - 15",
- "q2": "17 - 33",
- "q3": "11 - 27",
- "q4": "33 - 14",
- "overTime": "22 - 15"
}
}
}, - "channel": "NBA",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 13 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 28 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 28,
- "type": "VERIFIED",
- "title": "NBL: Adelaide vs Melbourne United",
- "description": "Game recap of the match.",
- "match": {
- "id": 489389,
- "week": "1",
- "stage": "Final",
- "date": "2023-10-01T03:00:00.000Z",
- "league": {
- "id": 1635,
- "season": 2023,
- "name": "NBL",
}, - "state": {
- "description": "Finished",
- "clock": 9,
- "score": {
- "current": "105 - 104",
- "q1": "22 - 15",
- "q2": "17 - 33",
- "q3": "11 - 27",
- "q4": "33 - 14",
- "overTime": "22 - 15"
}
}
}, - "channel": "NBA",
- "source": "youtube"
}
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2023 |
leagueName | string Example: leagueName=NBL |
countryCode | string Example: countryCode=AU Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Australia |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1635,
- "name": "NBL",
- "seasons": [
- {
- "season": 2023
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 1635 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1635,
- "name": "NBL",
- "seasons": [
- {
- "season": 2023
}
]
}
]
Retrieve a list of teams that are supported by the API.
By utilising the name
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Adelaide |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 7592 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 42,
- "wins": 36,
- "loses": 6
}, - "points": {
- "scored": 3722,
- "received": 3328
}
}, - "home": {
- "games": {
- "played": 22,
- "wins": 20,
- "loses": 2
}, - "points": {
- "scored": 2015,
- "received": 1733
}
}, - "away": {
- "games": {
- "played": 20,
- "wins": 16,
- "loses": 4
}, - "points": {
- "scored": 1707,
- "received": 1595
}
}, - "leagueId": 100351,
- "leagueName": "ACB",
- "season": 2023
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 7592 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "name": "Stake.com"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stake.com"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
3-Way Moneyline | The possible outcomes for the three-way moneyline market are Home , Draw or Away . |
Moneyline | When a match does not have a three-way moneyline it will have a two-way one instead. The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Total Points | This is considered a complex market. It is split into multiple possible variants such as "Total Points 204.5", "Total Points 209.5" and so on. The possible outcome of a variant is either Over or Under . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueId | number |
leagueName | string |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=75 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=Powbet |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 298649022,
- "odds": [
- {
- "bookmakerId": 75,
- "bookmakerName": "Powbet",
- "type": "prematch",
- "market": "Total Points 161.5",
- "values": [
- {
- "odd": 1.75,
- "value": "Over"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=1635 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 489389,
- "week": "1",
- "stage": "Final",
- "date": "2023-10-01T03:00:00.000Z",
- "league": {
- "id": 1635,
- "season": 2023,
- "name": "NBL",
}, - "state": {
- "description": "Finished",
- "clock": 9,
- "score": {
- "current": "105 - 104",
- "q1": "22 - 15",
- "q2": "17 - 33",
- "q3": "11 - 27",
- "q4": "33 - 14",
- "overTime": "22 - 15"
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=1635 |
teamIdTwo required | number Example: teamIdTwo=7592 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 489389,
- "week": "1",
- "stage": "Final",
- "date": "2023-10-01T03:00:00.000Z",
- "league": {
- "id": 1635,
- "season": 2023,
- "name": "NBL",
}, - "state": {
- "description": "Finished",
- "clock": 9,
- "score": {
- "current": "105 - 104",
- "q1": "22 - 15",
- "q2": "17 - 33",
- "q3": "11 - 27",
- "q4": "33 - 14",
- "overTime": "22 - 15"
}
}
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=2486 |
season required | number Example: season=2023 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "Regular Season",
- "standings": [
- {
- "wins": 28,
- "loses": 4,
- "position": 1,
- "gamesPlayed": 32,
- "scoredPoints": 2759,
- "receivedPoints": 2383
}
]
}
], - "league": {
- "id": 2486,
- "name": "LNB",
- "season": 2023
}
}
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=Germany |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: DE A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=DE Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Germany |
leagueName | string Example: leagueName=DEL |
leagueId | number Example: leagueId=16953 |
date | string Example: date=2023-10-13 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
matchId | number Example: matchId=291869956 |
homeTeamId | number Example: homeTeamId=223746 |
awayTeamId | number Example: awayTeamId=214385 |
homeTeamName | string Example: homeTeamName=Frankfurt Lowen |
awayTeamName | string Example: awayTeamName=Kolner |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 16,
- "type": "VERIFIED",
- "title": "DEL: Frankfurt Lowen vs Kolner",
- "description": "Game recap of the match.",
- "match": {
- "id": 291869956,
- "week": "1",
- "date": "2023-10-13T17:30:00.000Z",
- "awayTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "homeTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "league": {
- "id": 16953,
- "season": 2023,
- "name": "DEL",
}, - "state": {
- "description": "1st period",
- "score": {
- "current": "4 - 4",
- "overTime": "6 - 4",
- "penalties": "17 - 33",
- "firstPeriod": "2 - 0",
- "secondPeriod": "2 - 1",
- "thirdPeriod": "5 - 2"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 16 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 16 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 16,
- "type": "VERIFIED",
- "title": "DEL: Frankfurt Lowen vs Kolner",
- "description": "Game recap of the match.",
- "match": {
- "id": 291869956,
- "week": "1",
- "date": "2023-10-13T17:30:00.000Z",
- "awayTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "homeTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "league": {
- "id": 16953,
- "season": 2023,
- "name": "DEL",
}, - "state": {
- "description": "1st period",
- "score": {
- "current": "4 - 4",
- "overTime": "6 - 4",
- "penalties": "17 - 33",
- "firstPeriod": "2 - 0",
- "secondPeriod": "2 - 1",
- "thirdPeriod": "5 - 2"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2023 |
leagueName | string Example: leagueName=DEL |
countryCode | string Example: countryCode=DE Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Germany |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 16953,
- "name": "DEL",
- "seasons": [
- {
- "season": 2023
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 16953 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 16953,
- "name": "DEL",
- "seasons": [
- {
- "season": 2023
}
]
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Not started | Match has not been started yet. |
1st period | Match is in the first period of regular play. |
2nd period | Match is in the second period of regular play. |
3nd period | Match is in the third period of regular play. |
Over time | Game was considered a draw in normal time. Additional extra time is needed to decide the winner. |
Break time | Short pause between in play periods and over time. |
Penalties | Penalty shootout to decide the winner of the match. |
Finished | Match has been concluded. |
Finished after penalties | Match has been concluded with the penalty shootout. |
Finished after over time | Match has been concluded in over time. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Awarded | Game awarded to one of the teams when the other forfeits or specific circumstances have been met such as insufficient players, late arrival, team withdrawl, etc. |
Interrupted | An issue arose that is preventing the game from continuing. Based on the interruption the game will either resume normal play or be abandoned. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Unknown | Unknown match coverage or state. |
To be announced | Match's start time will be updated or competing teams are not yet known. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=DEL |
leagueId | number Example: leagueId=16953 |
date | string Example: date=2023-10-13 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
homeTeamId | number Example: homeTeamId=223746 |
awayTeamId | number Example: awayTeamId=214385 |
homeTeamName | string Example: homeTeamName=Frankfurt Lowen |
awayTeamName | string Example: awayTeamName=Kolner |
countryCode | string Example: countryCode=DE |
countryName | string Example: countryName=Germany |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 291869956,
- "week": "1",
- "date": "2023-10-13T17:30:00.000Z",
- "awayTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "homeTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "league": {
- "id": 16953,
- "season": 2023,
- "name": "DEL",
}, - "state": {
- "description": "1st period",
- "score": {
- "current": "4 - 4",
- "overTime": "6 - 4",
- "penalties": "17 - 33",
- "firstPeriod": "2 - 0",
- "secondPeriod": "2 - 1",
- "thirdPeriod": "5 - 2"
}
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Certain popular leagues and their associated matches will have additional data about the venue
and match weather forecast
.
Note: Used to retrieve additional match information.
id required | number Example: 308606573 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 308606573,
- "week": "Quarter-finals",
- "date": "2024-03-30T15:00:00.000Z",
- "awayTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "homeTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "league": {
- "id": 16953,
- "season": 2023,
- "name": "DEL",
}, - "state": {
- "description": "1st period",
- "score": {
- "current": "4 - 4",
- "overTime": "6 - 4",
- "penalties": "17 - 33",
- "firstPeriod": "2 - 0",
- "secondPeriod": "2 - 1",
- "thirdPeriod": "5 - 2"
}
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "referee": {
- "name": "Brace, Andrew",
- "nationality": "Ireland"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Retrieve a list of teams that are supported by the API.
By utilising the name
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Frankfurt Lowen |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
], - "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 223746 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 114,
- "wins": 72,
- "loses": 42
}, - "goals": {
- "scored": 366,
- "received": 283
}
}, - "home": {
- "games": {
- "played": 58,
- "wins": 38,
- "loses": 20
}, - "goals": {
- "scored": 186,
- "received": 141
}
}, - "away": {
- "games": {
- "played": 56,
- "wins": 34,
- "loses": 22
}, - "goals": {
- "scored": 180,
- "received": 142
}
}, - "leagueId": 49291,
- "leagueName": "NHL",
- "season": 2023
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 223746 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "name": "Stake.com"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stake.com"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
3-Way Moneyline | The possible outcomes for the three-way moneyline market are Home , Draw or Away . |
Moneyline | When a match does not have a three-way moneyline it will have a two-way one instead. The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Total Goals | This is considered a complex market. It is split into multiple possible variants such as "Total Goals 8", "Total Goals 8.5" and so on. The possible outcome of a variant is either Over or Under . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
Both Teams to Score | The market defines whether both teams will score or not. Outcomes can be either Yes or No . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueId | number |
leagueName | string |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=19 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=1Bet |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 295119925,
- "odds": [
- {
- "bookmakerId": 19,
- "bookmakerName": "1Bet",
- "type": "prematch",
- "market": "3-Way Moneyline",
- "values": [
- {
- "odd": 2.2,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=214385 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 291869956,
- "week": "1",
- "date": "2023-10-13T17:30:00.000Z",
- "awayTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "homeTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "league": {
- "id": 16953,
- "season": 2023,
- "name": "DEL",
}, - "state": {
- "description": "1st period",
- "score": {
- "current": "4 - 4",
- "overTime": "6 - 4",
- "penalties": "17 - 33",
- "firstPeriod": "2 - 0",
- "secondPeriod": "2 - 1",
- "thirdPeriod": "5 - 2"
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=214385 |
teamIdTwo required | number Example: teamIdTwo=223746 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 291869956,
- "week": "1",
- "date": "2023-10-13T17:30:00.000Z",
- "awayTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "homeTeam": {
- "id": 223746,
- "name": "Frankfurt Lowen"
}, - "league": {
- "id": 16953,
- "season": 2023,
- "name": "DEL",
}, - "state": {
- "description": "1st period",
- "score": {
- "current": "4 - 4",
- "overTime": "6 - 4",
- "penalties": "17 - 33",
- "firstPeriod": "2 - 0",
- "secondPeriod": "2 - 1",
- "thirdPeriod": "5 - 2"
}
}
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=130987 |
season required | number Example: season=2022 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "Group A",
- "standings": [
- {
- "position": 1,
- "wins": 3,
- "gamesPlayed": 3,
- "loses": 0,
- "scoredGoals": 11,
- "winsOvertime": 0,
- "losesOvertime": 0,
- "receivedGoals": 2
}
]
}
], - "league": {
- "id": 130987,
- "name": "WCH U20",
- "season": 2022
}
}
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=Europe |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: EU A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=EU Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Europe |
leagueName | string Example: leagueName=Six Nations U20 |
leagueId | number Example: leagueId=48440 |
date | string Example: date=2024-03-08 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
matchId | number Example: matchId=36224450 |
homeTeamId | number Example: homeTeamId=384585 |
awayTeamId | number Example: awayTeamId=385436 |
homeTeamName | string Example: homeTeamName=Italy U20 |
awayTeamName | string Example: awayTeamName=Scotland U20 |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "type": "VERIFIED",
- "title": "HIGHLIGHTS | Italy v Scotland | Under-20 Six Nations Championship 2024",
- "description": "Game recap of the match.",
- "match": {
- "id": 36224450,
- "week": "4",
- "date": "2024-03-08T19:15:00.000Z",
- "league": {
- "id": 48440,
- "season": 2024,
- "name": "Six Nations U20",
}, - "state": {
- "description": "Finished",
- "score": "47 - 14"
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 88 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 1034 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "type": "VERIFIED",
- "title": "HIGHLIGHTS | Italy v Scotland | Under-20 Six Nations Championship 2024",
- "description": "Game recap of the match.",
- "match": {
- "id": 36224450,
- "week": "4",
- "date": "2024-03-08T19:15:00.000Z",
- "league": {
- "id": 48440,
- "season": 2024,
- "name": "Six Nations U20",
}, - "state": {
- "description": "Finished",
- "score": "47 - 14"
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2024 |
leagueName | string Example: leagueName=Six Nations U20 |
countryCode | string Example: countryCode=EU Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Europe |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 48440,
- "name": "Six Nations U20",
- "seasons": [
- {
- "season": 2024
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 48440 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 48440,
- "name": "Six Nations U20",
- "seasons": [
- {
- "season": 2024
}
]
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Not started | Match has not been started yet. |
First half | Match is considered in play and is in the first half. |
Second half | Match is considered in play and is in the second half. |
Extra time | Game was considered a draw in normal time. Additional extra time is needed to decide the winner. |
Break time | Short pause to let the players recover, resolve temporary issues, attend to injuries and so on. |
Half time | Half time pause between first and second half. |
Penalties | Penalty shootout to decide the winner of the match. |
Finished | Match has been concluded. |
Finished after extra time | Match has been concluded in extra time. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Awarded | Game awarded to one of the teams when the other forfeits or specific circumstances have been met such as insufficient players, late arrival, team withdrawl, etc. |
Interrupted | An issue arose that is preventing the game from continuing. Based on the interruption the game will either resume normal play or be abandoned. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Unknown | Unknown match coverage or state. |
To be announced | Match's start time will be updated or competing teams are not yet known. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=Six Nations U20 |
leagueId | number Example: leagueId=48440 |
date | string Example: date=2024-03-08 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
homeTeamId | number Example: homeTeamId=384585 |
awayTeamId | number Example: awayTeamId=385436 |
homeTeamName | string Example: homeTeamName=Italy U20 |
awayTeamName | string Example: awayTeamName=Scotland U20 |
countryCode | string Example: countryCode=EU |
countryName | string Example: countryName=Europe |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 36224450,
- "week": "4",
- "date": "2024-03-08T19:15:00.000Z",
- "league": {
- "id": 48440,
- "season": 2024,
- "name": "Six Nations U20",
}, - "state": {
- "description": "Finished",
- "score": "47 - 14"
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Certain popular leagues and their associated matches will have additional data about the venue
, match weather forecast
and who the game's referee
is.
Note: Used to retrieve additional match information.
id required | number Example: 36125734 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 36125734,
- "week": "14",
- "date": "2024-03-30T15:00:00.000Z",
- "league": {
- "id": 48440,
- "season": 2024,
- "name": "Six Nations U20",
}, - "state": {
- "description": "Finished",
- "score": "47 - 14"
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "referee": {
- "name": "Brace, Andrew",
- "nationality": "Ireland"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Retrieve a list of teams that are supported by the API.
By utilising the name
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Italy U20 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 384585 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 16,
- "wins": 11,
- "loses": 5,
- "draws": 0
}, - "points": {
- "scored": 463,
- "received": 344
}
}, - "home": {
- "games": {
- "played": 8,
- "wins": 5,
- "loses": 0,
- "draws": 3
}, - "points": {
- "scored": 229,
- "received": 172
}
}, - "away": {
- "games": {
- "played": 8,
- "wins": 5,
- "draws": 0,
- "loses": 3
}, - "points": {
- "scored": 234,
- "received": 172
}
}, - "leagueId": 38228,
- "leagueName": "Major League Rugby",
- "season": "Major League Rugby"
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 384585 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Marathonbet |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 5,
- "name": "Marathonbet"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 5 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 5,
- "name": "Marathonbet"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Full Time Result | The possible outcomes for the mentioned market are Home , Draw or Away . |
Home/Away | The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Over/Under | This is considered a complex market. It is split into multiple possible variants such as "Over/Under 65.5", "Over/Under 63.5" points and so on. The possible outcome of a variant is either Over or Under . |
Asian Handicap | This is considered a complex market. It is split into multiple possible variants such as "Asian Handicap -26.5/+26.5", "Asian Handicap -27.5/+27.5" and so on. The possible outcome of a variant is either Home or Away . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueId | number |
leagueName | string |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=219 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=Bets10 |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 34909655,
- "odds": [
- {
- "bookmakerId": 1,
- "bookmakerName": "Bets10",
- "type": "prematch",
- "market": "Over/Under 58.5",
- "values": [
- {
- "odd": 1.92,
- "value": "Over"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=384585 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 36224450,
- "week": "4",
- "date": "2024-03-08T19:15:00.000Z",
- "league": {
- "id": 48440,
- "season": 2024,
- "name": "Six Nations U20",
}, - "state": {
- "description": "Finished",
- "score": "47 - 14"
}
}
]
Retrieve a list of head 2 head games played for given team ids.
teamIdOne required | number Example: teamIdOne=385436 |
teamIdTwo required | number Example: teamIdTwo=384585 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 36224450,
- "week": "4",
- "date": "2024-03-08T19:15:00.000Z",
- "league": {
- "id": 48440,
- "season": 2024,
- "name": "Six Nations U20",
}, - "state": {
- "description": "Finished",
- "score": "47 - 14"
}
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=69715 |
season required | number Example: season=2022 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "Group A",
- "standings": [
- {
- "wins": 3,
- "loses": 0,
- "draws": 0,
- "position": 1,
- "points": 9,
- "gamesPlayed": 18,
- "scoredPoints": 53,
- "receivedPoints": 10
}
]
}
], - "league": {
- "id": 69715,
- "name": "Sevens Europe Series - Portugal",
- "season": 2022
}
}
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=Germany |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: DE A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=DE Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Germany |
leagueName | string Example: leagueName=1. Bundesliga Women |
leagueId | number Example: leagueId=36526 |
date | string Example: date=2023-12-27 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
matchId | number Example: matchId=127621850 |
homeTeamId | number Example: homeTeamId=302038 |
awayTeamId | number Example: awayTeamId=332674 |
homeTeamName | string Example: homeTeamName=Bensheim-Auerbach W |
awayTeamName | string Example: awayTeamName=Solingen W |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "type": "VERIFIED",
- "title": "1. Bundesliga Women: Bensheim-Auerbach W vs Solingen W",
- "description": "Game recap of the match.",
- "match": {
- "id": 126347903,
- "week": "9",
- "date": "2023-12-27T18:30:00.000Z",
- "awayTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "homeTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "league": {
- "id": 36526,
- "season": 2023,
- "name": "1. Bundesliga Women",
}, - "state": {
- "description": "Finished",
- "score": {
- "current": "26 - 26",
- "firstHalf": "13 - 15",
- "secondHalf": "13 - 11"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 53 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 1 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "type": "VERIFIED",
- "title": "1. Bundesliga Women: Bensheim-Auerbach W vs Solingen W",
- "description": "Game recap of the match.",
- "match": {
- "id": 126347903,
- "week": "9",
- "date": "2023-12-27T18:30:00.000Z",
- "awayTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "homeTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "league": {
- "id": 36526,
- "season": 2023,
- "name": "1. Bundesliga Women",
}, - "state": {
- "description": "Finished",
- "score": {
- "current": "26 - 26",
- "firstHalf": "13 - 15",
- "secondHalf": "13 - 11"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2023 |
leagueName | string Example: leagueName=1. Bundesliga Women |
countryCode | string Example: countryCode=DE Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Germany |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 36526,
- "name": "1. Bundesliga Women",
- "seasons": [
- {
- "season": 2023
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 36526 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 36526,
- "name": "1. Bundesliga Women",
- "seasons": [
- {
- "season": 2023
}
]
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Not started | Match has not been started yet. |
First half | Match is considered in play and is in the first half. |
Second half | Match is considered in play and is in the second half. |
Half time | Half time pause between first and second half. |
Extra time | Game was considered a draw in normal time. Additional extra time is needed to decide the winner. |
Break time | Short pause between in play periods and extra time. |
Penalties | Penalty shootout to decide the winner of the match. |
Finished | Match has been concluded. |
Finished after penalties | Match has been concluded with the penalty shootout. |
Finished after extra time | Match has been concluded in extra time. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Awarded | Game awarded to one of the teams when the other forfeits or specific circumstances have been met such as insufficient players, late arrival, team withdrawl, etc. |
Interrupted | An issue arose that is preventing the game from continuing. Based on the interruption the game will either resume normal play or be abandoned. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Unknown | Unknown match coverage or state. |
To be announced | Match's start time will be updated or competing teams are not yet known. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=1. Bundesliga Women |
leagueId | number Example: leagueId=36526 |
date | string Example: date=2023-12-27 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
homeTeamId | number Example: homeTeamId=302038 |
awayTeamId | number Example: awayTeamId=332674 |
homeTeamName | string Example: homeTeamName=Bensheim-Auerbach W |
awayTeamName | string Example: awayTeamName=Solingen W |
countryCode | string Example: countryCode=DE |
countryName | string Example: countryName=Germany |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 126347903,
- "week": "9",
- "date": "2023-12-27T18:30:00.000Z",
- "awayTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "homeTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "league": {
- "id": 36526,
- "season": 2023,
- "name": "1. Bundesliga Women",
}, - "state": {
- "description": "Finished",
- "score": {
- "current": "26 - 26",
- "firstHalf": "13 - 15",
- "secondHalf": "13 - 11"
}
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Certain popular leagues and their associated matches will have additional data about the venue
and match weather forecast
.
Note: Used to retrieve additional match information.
id required | number Example: 127484839 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 127484839,
- "week": "21",
- "date": "2024-04-06T16:00:00.000Z",
- "awayTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "homeTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "league": {
- "id": 36526,
- "season": 2023,
- "name": "1. Bundesliga Women",
}, - "state": {
- "description": "Finished",
- "score": {
- "current": "26 - 26",
- "firstHalf": "13 - 15",
- "secondHalf": "13 - 11"
}
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Retrieve a list of teams that are supported by the API.
By utilising the name
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Solingen W |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 332674 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 30,
- "wins": 20,
- "loses": 7,
- "draws": 3
}, - "goals": {
- "scored": 935,
- "received": 815
}
}, - "home": {
- "games": {
- "played": 15,
- "wins": 12,
- "loses": 1,
- "draws": 1
}, - "goals": {
- "scored": 500,
- "received": 399
}
}, - "away": {
- "games": {
- "played": 15,
- "wins": 8,
- "loses": 6,
- "draws": 1
}, - "goals": {
- "scored": 435,
- "received": 416
}
}, - "leagueId": 88437,
- "leagueName": "Liga ASOBAL",
- "season": 2023
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 332674 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "name": "Stake.com"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stake.com"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Full Time Result | The possible outcomes for the mentioned market are Home , Draw or Away . |
Home/Away | The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Over/Under | This is considered a complex market. It is split into multiple possible variants such as "Over/Under 62.5", "Over/Under 57.5" points and so on. The possible outcome of a variant is either Over or Under . |
Asian Handicap | This is considered a complex market. It is split into multiple possible variants such as "Asian Handicap -0.5/+0.5", "Asian Handicap -4.5/+4.5" and so on. The possible outcome of a variant is either Home or Away . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueId | number |
leagueName | string |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=3 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=22Bet |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 123121762,
- "odds": [
- {
- "bookmakerId": 3,
- "bookmakerName": "22Bet",
- "type": "prematch",
- "market": "Full Time Result",
- "values": [
- {
- "odd": 1.7,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=302038 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 126347903,
- "week": "9",
- "date": "2023-12-27T18:30:00.000Z",
- "awayTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "homeTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "league": {
- "id": 36526,
- "season": 2023,
- "name": "1. Bundesliga Women",
}, - "state": {
- "description": "Finished",
- "score": {
- "current": "26 - 26",
- "firstHalf": "13 - 15",
- "secondHalf": "13 - 11"
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=881569 |
teamIdTwo required | number Example: teamIdTwo=892632 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 126347903,
- "week": "9",
- "date": "2023-12-27T18:30:00.000Z",
- "awayTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "homeTeam": {
- "id": 332674,
- "name": "Solingen W"
}, - "league": {
- "id": 36526,
- "season": 2023,
- "name": "1. Bundesliga Women",
}, - "state": {
- "description": "Finished",
- "score": {
- "current": "26 - 26",
- "firstHalf": "13 - 15",
- "secondHalf": "13 - 11"
}
}
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=171835 |
season required | number Example: season=2024 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "Regular Season",
- "standings": [
- {
- "position": 1,
- "wins": 3,
- "draws": 1,
- "gamesPlayed": 4,
- "loses": 0,
- "scoredGoals": 111,
- "receivedGoals": 109
}
]
}
], - "league": {
- "id": 171835,
- "name": "Golden League - France",
- "season": 2024
}
}
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=Italy |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: IT A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=IT Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Italy |
leagueName | string Example: leagueName=SuperLega |
leagueId | number Example: leagueId=83331 |
date | string Example: date=2023-12-30 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
matchId | number Example: matchId=126347903 |
homeTeamId | number Example: homeTeamId=630524 |
awayTeamId | number Example: awayTeamId=631375 |
homeTeamName | string Example: homeTeamName=Trentino |
awayTeamName | string Example: awayTeamName=Cisterna |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "type": "VERIFIED",
- "title": "SuperLega: Trentino vs Cisterna",
- "description": "Game recap of the match.",
- "match": {
- "id": 126347903,
- "week": "12",
- "date": "2023-12-30T17:00:00.000Z",
- "league": {
- "id": 83331,
- "season": 2023,
- "name": "SuperLega",
}, - "state": {
- "description": "Second set",
- "score": {
- "current": "3 - 1",
- "firstSet": "19 - 25",
- "secondSet": "25 - 12",
- "thirdSet": "22 - 17",
- "fourthSet": "22 - 17",
- "fifthSet": "25 - 19"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 93 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 1 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "type": "VERIFIED",
- "title": "SuperLega: Trentino vs Cisterna",
- "description": "Game recap of the match.",
- "match": {
- "id": 126347903,
- "week": "12",
- "date": "2023-12-30T17:00:00.000Z",
- "league": {
- "id": 83331,
- "season": 2023,
- "name": "SuperLega",
}, - "state": {
- "description": "Second set",
- "score": {
- "current": "3 - 1",
- "firstSet": "19 - 25",
- "secondSet": "25 - 12",
- "thirdSet": "22 - 17",
- "fourthSet": "22 - 17",
- "fifthSet": "25 - 19"
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2023 |
leagueName | string Example: leagueName=SuperLega |
countryCode | string Example: countryCode=IT Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Italy |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 83331,
- "name": "SuperLega",
- "seasons": [
- {
- "season": 2023
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 83331 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 83331,
- "name": "SuperLega",
- "seasons": [
- {
- "season": 2023
}
]
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Not started | Match has not been started yet. |
First set | Match is considered in play and is in the first set. |
Second set | Match is considered in play and is in the second set. |
Third set | Match is considered in play and is in the third set. |
Fourth set | Match is considered in play and is in the fourth set. |
Fifth set | Match is considered in play and is in the fifth set. |
Finished | Match has been concluded. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Cancelled | Game will not be played. |
Awarded | Game awarded to one of the teams when the other forfeits or specific circumstances have been met such as insufficient players, late arrival, team withdrawl, etc. |
Interrupted | An issue arose that is preventing the game from continuing. Based on the interruption the game will either resume normal play or be abandoned. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Unknown | Unknown match coverage or state. |
To be announced | Match's start time will be updated or competing teams are not yet known. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=SuperLega |
leagueId | number Example: leagueId=83331 |
date | string Example: date=2023-12-30 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
homeTeamId | number Example: homeTeamId=630524 |
awayTeamId | number Example: awayTeamId=631375 |
homeTeamName | string Example: homeTeamName=Trentino |
awayTeamName | string Example: awayTeamName=Cisterna |
countryCode | string Example: countryCode=IT |
countryName | string Example: countryName=Italy |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 126347903,
- "week": "12",
- "date": "2023-12-30T17:00:00.000Z",
- "league": {
- "id": 83331,
- "season": 2023,
- "name": "SuperLega",
}, - "state": {
- "description": "Second set",
- "score": {
- "current": "3 - 1",
- "firstSet": "19 - 25",
- "secondSet": "25 - 12",
- "thirdSet": "22 - 17",
- "fourthSet": "22 - 17",
- "fifthSet": "25 - 19"
}
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Certain popular leagues and their associated matches will have additional data about the venue
and match weather forecast
.
Note: Used to retrieve additional match information.
id required | number Example: 139134178 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 139134178,
- "week": "Semi-finals",
- "date": "2024-04-06T14:30:00.000Z",
- "league": {
- "id": 83331,
- "season": 2023,
- "name": "SuperLega",
}, - "state": {
- "description": "Second set",
- "score": {
- "current": "3 - 1",
- "firstSet": "19 - 25",
- "secondSet": "25 - 12",
- "thirdSet": "22 - 17",
- "fourthSet": "22 - 17",
- "fifthSet": "25 - 19"
}
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Retrieve a list of teams that are supported by the API.
By utilising the name
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Trentino |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 630524 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 31,
- "wins": 13,
- "loses": 18
}, - "points": {
- "scored": 47,
- "received": 13
}
}, - "home": {
- "games": {
- "played": 14,
- "wins": 8,
- "loses": 6
}, - "points": {
- "scored": 26,
- "received": 28
}
}, - "away": {
- "games": {
- "played": 17,
- "wins": 5,
- "loses": 12
}, - "points": {
- "scored": 21,
- "received": 45
}
}, - "leagueId": 83331,
- "leagueName": "SuperLega",
- "season": 2023
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 630524 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "name": "Stake.com"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stake.com"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Match Winner | The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Total Sets | This is considered a complex market. It is split into multiple possible variants such as "Total Sets 3.5", "Total Sets 4.5" and so on. The possible outcome of a variant is either Over or Under . |
Total Points | This is considered a complex market. It is split into multiple possible variants such as "Total Points 172.5", "Total Points 174.5" and so on. The possible outcome of a variant is either Over or Under . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueId | number |
leagueName | string |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=2 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=22Bet |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 138243181,
- "odds": [
- {
- "bookmakerId": 2,
- "bookmakerName": "22Bet",
- "type": "prematch",
- "market": "Match Winner",
- "values": [
- {
- "odd": 3.39,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=630524 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 126347903,
- "week": "12",
- "date": "2023-12-30T17:00:00.000Z",
- "league": {
- "id": 83331,
- "season": 2023,
- "name": "SuperLega",
}, - "state": {
- "description": "Second set",
- "score": {
- "current": "3 - 1",
- "firstSet": "19 - 25",
- "secondSet": "25 - 12",
- "thirdSet": "22 - 17",
- "fourthSet": "22 - 17",
- "fifthSet": "25 - 19"
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=630524 |
teamIdTwo required | number Example: teamIdTwo=631375 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 126347903,
- "week": "12",
- "date": "2023-12-30T17:00:00.000Z",
- "league": {
- "id": 83331,
- "season": 2023,
- "name": "SuperLega",
}, - "state": {
- "description": "Second set",
- "score": {
- "current": "3 - 1",
- "firstSet": "19 - 25",
- "secondSet": "25 - 12",
- "thirdSet": "22 - 17",
- "fourthSet": "22 - 17",
- "fifthSet": "25 - 19"
}
}
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=150560 |
season required | number Example: season=2020 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "Regular Season",
- "standings": [
- {
- "wins": 17,
- "loses": 1,
- "points": 51,
- "position": 1,
- "gamesPlayed": 18,
- "scoredPoints": 53,
- "receivedPoints": 10
}
]
}
], - "league": {
- "id": 150560,
- "name": "Superleague",
- "season": 2020
}
}
Refresh interval: Once a day
Retrieve a list of countries that are supported by the API.
By utilising the name
query parameter you can check whether a specific country exists or simply retrieve the associated data.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
Below is an example of supported countries and their associated logos:
name | string Example: name=Australia |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[
]
Refresh interval: Once a day
Retrieve associated country details by specifying the country code path parameter. The path parameter should follow the ISO 3166
standard.
Country name and code can be used to query other resources such as matches
, leagues
, highlights
, etc.
countryCode required | string Example: AU A string value code of the country, following the ISO 3166 standard. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "name": "Australia"
}
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
countryCode | string Example: countryCode=AU Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Australia |
leagueName | string Example: leagueName=Big Bash League |
leagueId | number Example: leagueId=48513362 |
date | string Example: date=2024-01-13 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
matchId | number Example: matchId=48514657 |
homeTeamId | number Example: homeTeamId=17838627 |
awayTeamId | number Example: awayTeamId=17838662 |
homeTeamName | string Example: homeTeamName=Melbourne Renegades |
awayTeamName | string Example: awayTeamName=Melbourne Stars |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=MR |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=MS |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 75,
- "type": "VERIFIED",
- "title": "Big Bash League: Melbourne Renegades vs Melbourne Stars",
- "description": "Game recap of the match.",
- "match": {
- "id": "48514657",
- "endDate": "2024-01-13T00:00:00.000Z",
- "startDate": "2024-01-13T00:00:00.000Z",
- "startTime": "2024-01-13T14:30:00.000Z",
- "awayTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "homeTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "league": {
- "id": "48513362",
- "season": 2023,
- "name": "Big Bash League",
}, - "format": "T20",
- "dayType": "SINGLE",
- "state": {
- "description": "Finished",
- "report": "Renegades won by 6 wickets (with 16 balls remaining)",
- "teams": {
- "away": {
- "info": "17.2/20 ov, T:138",
- "score": "139/4"
}, - "home": {
- "info": null,
- "score": "137/8"
}
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 117 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 75 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 75,
- "type": "VERIFIED",
- "title": "Big Bash League: Melbourne Renegades vs Melbourne Stars",
- "description": "Game recap of the match.",
- "match": {
- "id": "48514657",
- "endDate": "2024-01-13T00:00:00.000Z",
- "startDate": "2024-01-13T00:00:00.000Z",
- "startTime": "2024-01-13T14:30:00.000Z",
- "awayTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "homeTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "league": {
- "id": "48513362",
- "season": 2023,
- "name": "Big Bash League",
}, - "format": "T20",
- "dayType": "SINGLE",
- "state": {
- "description": "Finished",
- "report": "Renegades won by 6 wickets (with 16 balls remaining)",
- "teams": {
- "away": {
- "info": "17.2/20 ov, T:138",
- "score": "139/4"
}, - "home": {
- "info": null,
- "score": "137/8"
}
}
}
}, - "channel": "Ligue 1 Uber Eats",
- "source": "youtube"
}
]
Refresh interval: Multiple times a day
Retrieve a list of leagues.
By utilising the leagueName
query parameter you can check whether a specific league exists or simply retrieve the associated data. You can also narrow down your search by specifying the countryCode
or countryName
query parameters.
There are two other important query parameters. The limit
parameter defines what the number of returned leagues will be. If the number of actual leagues is above the limit
value you can make subsequent requests by increasing the offset
value.
The league information and their associated seasons can be used to request data from other endpoints such as standings
.
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
season | number >= 0 Example: season=2023 |
leagueName | string Example: leagueName=Big Bash League |
countryCode | string Example: countryCode=AU Country code specified by the ISO 3166 standard. |
countryName | string Example: countryName=Australia |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": "48513362",
- "name": "Big Bash League",
- "seasons": [
- {
- "season": 2023
}
]
}
], - "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"
}
}
Retrieve league information by specifying the league id path parameter.
Note: Used to check whether a league still exists or had its information updated.
id required | number Example: 48513362 Requested league id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": "48513362",
- "name": "Big Bash League",
- "seasons": [
- {
- "season": 2023
}
]
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Finished | Match has been concluded. |
Unknown | The status of the match is not known. |
No live coverage | There is no live coverage for the match. |
In play | The match is currently in progress. |
Stumps | The end of a day's play in a multi-day match (e.g. Test match). |
Lunch | The break taken during lunch time in a match. |
Innings break | The interval between the end of one innings and the start of the next. |
Drinks | A short break for players to have drinks. |
Timeout | A strategic break taken during the match. |
Tea | The break taken during tea time in a match, typically in Test matches. |
Scheduled | The match is planned and scheduled to be played. |
Match delayed | The match start or continuation is delayed, often due to weather or other interruptions. |
Cancelled | The match has been cancelled and will not be played. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Abandoned | The match has started but is stopped and will not continue, typically due to weather or other uncontrollable circumstances. |
Below is an example of what you can aim to achieve with the matches endpoint:
leagueName | string Example: leagueName=Big Bash League |
leagueId | number Example: leagueId=48513362 |
date | string Example: date=2024-01-13 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2023 |
homeTeamId | number Example: homeTeamId=17838627 |
awayTeamId | number Example: awayTeamId=17838662 |
homeTeamName | string Example: homeTeamName=Melbourne Renegades |
awayTeamName | string Example: awayTeamName=Melbourne Stars |
countryCode | string Example: countryCode=AU |
countryName | string Example: countryName=Australia |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=MR |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=MS |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": "48514657",
- "endDate": "2024-01-13T00:00:00.000Z",
- "startDate": "2024-01-13T00:00:00.000Z",
- "startTime": "2024-01-13T14:30:00.000Z",
- "awayTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "homeTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "league": {
- "id": "48513362",
- "season": 2023,
- "name": "Big Bash League",
}, - "format": "T20",
- "dayType": "SINGLE",
- "state": {
- "description": "Finished",
- "report": "Renegades won by 6 wickets (with 16 balls remaining)",
- "teams": {
- "away": {
- "info": "17.2/20 ov, T:138",
- "score": "139/4"
}, - "home": {
- "info": null,
- "score": "137/8"
}
}
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Fetched data will have additional information about the venue
and weather forecast
.
Note: Used to retrieve additional match information.
id required | number Example: 49877382 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": "49877382",
- "endDate": "2024-03-31T00:00:00.000Z",
- "startDate": "2024-03-31T00:00:00.000Z",
- "startTime": "2024-03-31T06:00:00.000Z",
- "awayTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "homeTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "league": {
- "id": "48513362",
- "season": 2023,
- "name": "Big Bash League",
}, - "format": "T20",
- "dayType": "SINGLE",
- "state": {
- "description": "Finished",
- "report": "Renegades won by 6 wickets (with 16 balls remaining)",
- "teams": {
- "away": {
- "info": "17.2/20 ov, T:138",
- "score": "139/4"
}, - "home": {
- "info": null,
- "score": "137/8"
}
}
}, - "venue": {
- "city": "Swansea",
- "name": "Liberty Stadium",
- "country": "Wales",
- "capacity": "20827"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}, - "statistics": [
- {
- "id": 282,
- "name": "West Indies",
- "abbreviation": "WI",
- "inningNumber": 1,
- "fallOfWickets": [
- {
- "runs": 5,
- "order": 1,
- "overs": 1.2,
- "dismissalBatsman": {
- "name": "Ryan Rickelton"
}
}
], - "inningBatsmen": [
- {
- "runs": 4,
- "balls": 5,
- "fours": 0,
- "sixes": 0,
- "battingStrikeRate": 90,
- "player": {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
]
}
}
], - "inningBowlers": [
- {
- "overs": 4,
- "player": {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
]
}, - "economy": 5.5,
- "maidens": 0,
- "wickets": 1,
- "concededRuns": 2
}
], - "inningPartnerships": [
- {
- "runs": 5,
- "balls": 8,
- "overs": 1.2,
- "firstPlayer": {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
]
}, - "secondPlayer": {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
]
}, - "firstPlayerRuns": 1,
- "firstPlayerBalls": 3,
- "secondPlayerRuns": 3,
- "secondPlayerBalls": 5
}
]
}
], - "squad": [
- {
- "team": {
- "id": 282,
- "name": "West Indies",
- "abbreviation": "WI"
}, - "players": [
- {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
]
}
]
}
], - "bestBatsmen": [
- {
- "team": {
- "id": 282,
- "name": "West Indies",
- "abbreviation": "WI"
}, - "players": [
- {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
], - "statistics": {
- "runs": 220,
- "average": 36.6667,
- "innings": 9,
- "matches": 10,
- "battingStrikeRate": 126.43
}
}
]
}
], - "bestBowlers": [
- {
- "team": {
- "id": 282,
- "name": "West Indies",
- "abbreviation": "WI"
}, - "players": [
- {
- "name": "Ryan Rickelton",
- "battingStyles": [
- "string"
], - "bowlingStyles": [
- "string"
], - "roles": [
- "string"
], - "statistics": {
- "balls": 126,
- "average": 21.29,
- "economy": 7.1,
- "innings": 6,
- "matches": 6,
- "wickets": 7,
- "concededRuns": 149,
- "battingStrikeRate": 18
}
}
]
}
]
}
]
Retrieve a list of teams that are supported by the API.
By utilising either the name
or abbreviation
query parameter you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
limit | number [ 0 .. 500 ] Default: 500 Example: limit=50 |
offset | number >= 0 Default: 0 |
name | string Example: name=Melbourne Stars |
abbreviation | string Example: abbreviation=MS |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}
], - "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"
}
}
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 17838627 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=22Bet |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 3,
- "name": "22Bet"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 3 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 3,
- "name": "22Bet"
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Full Time Result | The possible outcomes for the mentioned market are Home or Away . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
Over/Under | This is considered a complex market. It is split into multiple possible variants such as "Over/Under 376.5 ", "Over/Under 378.5" and so on. The possible outcome of a variant is either Over or Under . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueName | string |
leagueId | number |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=3 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=22Bet |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": "49774517",
- "odds": [
- {
- "bookmakerId": 3,
- "bookmakerName": "22Bet",
- "type": "prematch",
- "market": "Odd or Even",
- "values": [
- {
- "odd": 1.69,
- "value": "Odd"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=17838662 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": "48514657",
- "endDate": "2024-01-13T00:00:00.000Z",
- "startDate": "2024-01-13T00:00:00.000Z",
- "startTime": "2024-01-13T14:30:00.000Z",
- "awayTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "homeTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "league": {
- "id": "48513362",
- "season": 2023,
- "name": "Big Bash League",
}, - "format": "T20",
- "dayType": "SINGLE",
- "state": {
- "description": "Finished",
- "report": "Renegades won by 6 wickets (with 16 balls remaining)",
- "teams": {
- "away": {
- "info": "17.2/20 ov, T:138",
- "score": "139/4"
}, - "home": {
- "info": null,
- "score": "137/8"
}
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=17838627 |
teamIdTwo required | number Example: teamIdTwo=17838662 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": "48514657",
- "endDate": "2024-01-13T00:00:00.000Z",
- "startDate": "2024-01-13T00:00:00.000Z",
- "startTime": "2024-01-13T14:30:00.000Z",
- "awayTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "homeTeam": {
- "id": "17838627",
- "name": "Melbourne Stars",
- "abbreviation": "MS"
}, - "league": {
- "id": "48513362",
- "season": 2023,
- "name": "Big Bash League",
}, - "format": "T20",
- "dayType": "SINGLE",
- "state": {
- "description": "Finished",
- "report": "Renegades won by 6 wickets (with 16 balls remaining)",
- "teams": {
- "away": {
- "info": "17.2/20 ov, T:138",
- "score": "139/4"
}, - "home": {
- "info": null,
- "score": "137/8"
}
}
}
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
Endpoint requires both leagueId
and season
query parameters to be specified before you can fetch the data.
Below is an example on how you could render league associated standings
leagueId required | number Example: leagueId=50036737 |
season required | number Example: season=2024 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "groups": [
- {
- "name": "BCA Kalahari Womens T20 International Tournament",
- "standings": [
- {
- "team": {
- "id": "13434157",
- "name": "Rwanda Women"
}, - "ties": 0,
- "wins": 6,
- "loses": 6,
- "points": 12,
- "position": 1,
- "pointsFor": "278/46.2",
- "netRunRate": 3.767,
- "matchesPlayed": 6,
- "pointsAgainst": "268/120.0"
}
]
}
], - "league": {
- "id": "50036737",
- "name": "BCA Kalahari Womens T20 International Tournament",
- "season": 2024
}
}
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
leagueName | string Example: leagueName=NCAA |
date | string Example: date=2022-06-10 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2022 |
matchId | number Example: matchId=343056 |
homeTeamId | number Example: homeTeamId=10291525 |
awayTeamId | number Example: awayTeamId=10291566 |
homeTeamName | string Example: homeTeamName=Pirates |
awayTeamName | string Example: awayTeamName=Longhorns |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=ECU |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=TEX |
homeTeamDisplayName | string Example: homeTeamDisplayName=East Carolina |
awayTeamDisplayName | string Example: awayTeamDisplayName=Texas |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 27,
- "type": "VERIFIED",
- "title": "NCAA: Bears vs Patriots",
- "description": "Tom Poole sends one deep to right to give Dallas Baptist an insurance run over Baylor.",
- "match": {
- "id": 394,
- "round": "regular-season",
- "date": "2024-03-06T00:30:00.000Z",
- "league": "NCAA",
- "season": 2024,
- "awayTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "homeTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}
}, - "channel": "MLB",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 19282 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 22987 Requested highlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 27,
- "type": "VERIFIED",
- "title": "NCAA: Bears vs Patriots",
- "description": "Tom Poole sends one deep to right to give Dallas Baptist an insurance run over Baylor.",
- "match": {
- "id": 394,
- "round": "regular-season",
- "date": "2024-03-06T00:30:00.000Z",
- "league": "NCAA",
- "season": 2024,
- "awayTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "homeTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}
}, - "channel": "MLB",
- "source": "youtube"
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Finished | Match has been concluded. |
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Scheduled | Match has not been started yet. |
Canceled | Game will not be played. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
In Progress | Game is currently in progress. |
Half Time | Half time pause between first and second half. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Unknown | Unknown match coverage or state. |
Rain Delay | Match has been delayed due to bad weather conditions. Will either be resumed or suspended. |
Period End | Break time between periods. |
Below is an example of what you can aim to achieve with the matches endpoint:
league | string Example: league=MLB |
date | string Example: date=2024-08-31 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
homeTeamId | number Example: homeTeamId=10291199 |
awayTeamId | number Example: awayTeamId=10291203 |
homeTeamName | string Example: homeTeamName=Rangers |
awayTeamName | string Example: awayTeamName=Athletics |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=TEX |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=OAK |
homeTeamDisplayName | string Example: homeTeamDisplayName=Texas Rangers |
awayTeamDisplayName | string Example: awayTeamDisplayName=Oakland Athletics |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 394,
- "round": "regular-season",
- "date": "2024-03-06T00:30:00.000Z",
- "league": "NCAA",
- "season": 2024,
- "awayTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "homeTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "state": {
- "description": "Finished",
- "report": "Final",
- "score": {
- "home": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "away": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "current": "5 - 8"
}
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Fetched data will have additional information about the venue
, weather forecast
, match stats
, who the game's referees
are, each team's rosters
, and plays
.
Note: Used to retrieve additional match information.
id required | number Example: 325914 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 58348,
- "round": "regular-season",
- "date": "2024-03-31T17:00:00.000Z",
- "league": "NCAA",
- "season": 2024,
- "awayTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "homeTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "state": {
- "description": "Finished",
- "report": "Final",
- "score": {
- "home": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "away": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "current": "5 - 8"
}
}, - "venue": {
- "city": "Waco",
- "name": "Baylor Ballpark",
- "state": "Texas"
}, - "stats": {
- "homeTeam": [
- {
- "batting": [
- {
- "value": 8,
- "displayName": "Strikeouts"
}
], - "fielding": [
- null
], - "pitching": [
- null
]
}
], - "awayTeam": [
- {
- "batting": [
- {
- "value": 8,
- "displayName": "Strikeouts"
}
], - "fielding": [
- null
], - "pitching": [
- null
]
}
]
}, - "plays": [
- {
- "type": "Start Inning",
- "teamId": 229,
- "description": "Top of the 1st inning",
- "currentOuts": 0,
- "period": "Top 1st Inning",
- "pitch": {
- "type": "CURVE",
- "velocity": 78.2,
- "ballsCount": 0,
- "strikesCount": 0
}, - "result": {
- "ballsCount": 1,
- "strikesCount": 2
}, - "score": {
- "away": 1,
- "home": 2
}
}
], - "referees": [
- {
- "name": "Jonathan Parra",
- "position": "Home Plate Umpire"
}
], - "rosters": {
- "awayTeam": {
- "jersey": 1,
- "fullName": "Hunter Hines",
- "position": "First Baseman",
- "isStarter": true
}, - "homeTeam": {
- "jersey": 1,
- "fullName": "Hunter Hines",
- "position": "First Baseman",
- "isStarter": true
}
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}
}
]
Retrieve a list of teams that are supported by the API.
By utilising either league
, name
, displayName
or abbreviation
query parameters you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
league | string Example: league=MLB |
name | string Example: name=Rangers |
displayName | string Example: displayName=Texas Rangers |
abbreviation | string Example: abbreviation=TEX |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY",
- "league": "NCAA"
}
], - "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"
}
}
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 10291199 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 102,
- "wins": 43,
- "loses": 59
}, - "points": {
- "scored": 566,
- "received": 600
}
}, - "home": {
- "games": {
- "played": 49,
- "wins": 21,
- "loses": 28
}, - "points": {
- "scored": 263,
- "received": 300
}
}, - "away": {
- "games": {
- "played": 53,
- "wins": 22,
- "loses": 31
}, - "points": {
- "scored": 303,
- "received": 300
}
}, - "leagueName": "MLB",
- "round": "regular-season"
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 10291199 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY",
- "league": "NCAA"
}
]
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
There are numerous ways on how to fetch the data. You can utilise either abbreviation
or leagueName
:
League Name | Abbreviation |
---|---|
American League (MLB) | AL |
National League (MLB) | NL |
NCAA Division I (CBASE) | NCAA |
Additionally you can specify the year
parameter to narrow down the the standings for that season.
There are two other important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned standings will be. If the number of actual standings is above the limit
value you can make subsequent requests by increasing the offset
value.
Below is an example on how you could render league associated standings
leagueType | string Enum: "MLB" "NCAA" Example: leagueType=MLB |
limit | number [ 0 .. 10 ] Default: 10 Example: limit=5 |
offset | number >= 0 Default: 0 |
leagueName | string Example: leagueName=National League (MLB) |
abbreviation | string Example: abbreviation=NL |
year | number Example: year=2024 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "leagueName": "Cactus League (MLB)",
- "abbreviation": "CAC",
- "year": 2024,
- "leagueType": "MLB",
- "seasonType": "Spring Training",
- "startDate": "2024-02-15T08:00:00.000Z",
- "endDate": "2024-03-27T06:59:00.000Z",
- "data": [
- {
- "id": 58,
- "name": "Dodgers",
- "stats": [
- {
- "description": "Number of Overtime Losses",
- "abbreviation": "OTL",
- "displayValue": "0"
}
]
}
]
}
], - "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"
}
}
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Home/Away | The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Over/Under | This is considered a complex market. It is split into multiple possible variants such as "Over/Under 7.5", "Over/Under 9.5" points and so on. The possible outcome of a variant is either Over or Under . |
Asian Handicap | This is considered a complex market. It is split into multiple possible variants such as "Asian Handicap -0.5/+0.5", "Asian Handicap -1.5/+1.5" and so on. The possible outcome of a variant is either Home or Away . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueName | string Example: leagueName=MLB |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=193337 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=Stake.com |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 394,
- "odds": [
- {
- "bookmakerId": 53,
- "bookmakerName": "Megapari Sport",
- "type": "prematch",
- "market": "Odd or Even",
- "values": [
- {
- "odd": 2.8,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Megapari Sport |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 53,
- "name": "Megapari Sport"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 193337 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 53,
- "name": "Megapari Sport"
}
]
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=10291525 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 394,
- "round": "regular-season",
- "date": "2024-03-06T00:30:00.000Z",
- "league": "NCAA",
- "season": 2024,
- "awayTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "homeTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "state": {
- "description": "Finished",
- "report": "Final",
- "score": {
- "home": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "away": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "current": "5 - 8"
}
}
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=10291175 |
teamIdTwo required | number Example: teamIdTwo=10291176 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 394,
- "round": "regular-season",
- "date": "2024-03-06T00:30:00.000Z",
- "league": "NCAA",
- "season": 2024,
- "awayTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "homeTeam": {
- "id": 219,
- "name": "Bears",
- "displayName": "Baylor",
- "abbreviation": "BAY"
}, - "state": {
- "description": "Finished",
- "report": "Final",
- "score": {
- "home": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "away": {
- "hits": 4,
- "errors": 2,
- "innings": [
- 0,
- 0,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 1
]
}, - "current": "5 - 8"
}
}
}
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 53,
- "name": "Megapari Sport"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 53,
- "name": "Megapari Sport"
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=3 |
teamIdTwo required | number Example: teamIdTwo=23 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 5294,
- "league": "NBA",
- "season": 2024,
- "state": {
- "clock": 0,
- "score": {
- "awayTeam": [
- 0
], - "homeTeam": [
- 0
]
}, - "period": 4,
- "description": "Finished"
}, - "homeTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "awayTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "date": "2024-04-07T01:00:00.000Z"
}
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
leagueName | string Example: leagueName=NCAA |
date | string Example: date=2024-04-07 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
matchId | number Example: matchId=9853 |
homeTeamId | number Example: homeTeamId=11392 |
awayTeamId | number Example: awayTeamId=11190 |
homeTeamName | string Example: homeTeamName=Huskies |
awayTeamName | string Example: awayTeamName=Crimson Tide |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=CONN |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=ALA |
homeTeamDisplayName | string Example: homeTeamDisplayName=UConn Huskies |
awayTeamDisplayName | string Example: awayTeamDisplayName=Alabama Crimson Tide |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1361,
- "match": {
- "id": 9853,
- "league": "NBA",
- "homeTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "awayTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}
}, - "type": "VERIFIED",
- "title": "NCAA: Huskies vs Crimson Tide",
- "description": "Following an impressive postseason run that came to an end in a program-first Final Four appearance, Nate Oats expresses his pride in the Tide and says they'll be \"knocking on the door\" next season.",
- "channel": "string",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 1382 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 1361 Requested highlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1361,
- "match": {
- "id": 9853,
- "league": "NBA",
- "homeTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "awayTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}
}, - "type": "VERIFIED",
- "title": "NCAA: Huskies vs Crimson Tide",
- "description": "Following an impressive postseason run that came to an end in a program-first Final Four appearance, Nate Oats expresses his pride in the Tide and says they'll be \"knocking on the door\" next season.",
- "channel": "string",
- "source": "youtube"
}
]
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=3 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 5294,
- "league": "NBA",
- "season": 2024,
- "state": {
- "clock": 0,
- "score": {
- "awayTeam": [
- 0
], - "homeTeam": [
- 0
]
}, - "period": 4,
- "description": "Finished"
}, - "homeTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "awayTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "date": "2024-04-07T01:00:00.000Z"
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Finished | Match has been concluded. |
Scheduled | Match has not been started yet. |
End period | Break time between periods. |
Half time | Half time pause between second and third quarter. |
In progress | Game is currently in progress. |
Unknown | Unknown match coverage or state. |
Below is an example of what you can aim to achieve with the matches endpoint:
league | string Enum: "NBA" "NCAA" Example: league=NBA |
date | string Example: date=2024-05-20 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
homeTeamId | number Example: homeTeamId=3 |
awayTeamId | number Example: awayTeamId=41 |
homeTeamName | string Example: homeTeamName=Nuggets |
awayTeamName | string Example: awayTeamName=Timberwolves |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=DEN |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=MIN |
homeTeamDisplayName | string Example: homeTeamDisplayName=Denver Nuggets |
awayTeamDisplayName | string Example: awayTeamDisplayName=Minnesota Timberwolves |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 5294,
- "league": "NBA",
- "season": 2024,
- "state": {
- "clock": 0,
- "score": {
- "awayTeam": [
- 0
], - "homeTeam": [
- 0
]
}, - "period": 4,
- "description": "Finished"
}, - "homeTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "awayTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "date": "2024-04-07T01:00:00.000Z"
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Fetched data will have additional information about the venue
, weather forecast
, overallStatistics
for each team, injuries
and events
.
Note: Used to retrieve additional match information.
id required | number Example: 1 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 5294,
- "league": "NBA",
- "season": 2024,
- "state": {
- "clock": 0,
- "score": {
- "awayTeam": [
- 0
], - "homeTeam": [
- 0
]
}, - "period": 4,
- "description": "Finished"
}, - "homeTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "awayTeam": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "date": "2024-04-07T01:00:00.000Z",
- "venue": {
- "city": "Denver",
- "name": "Ball Arena",
- "state": "CO"
}, - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}, - "overallStatistics": {
- "awayTeam": {
- "data": [
- {
- "value": "34-83",
- "displayName": "FG"
}
]
}, - "homeTeam": {
- "data": [
- {
- "value": "34-83",
- "displayName": "FG"
}
]
}
}, - "events": [
- {
- "team": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "clock": "12:00",
- "period": "1st Quarter",
- "description": "Rudy Gobert vs. Nikola Jokic (Anthony Edwards gains possession)",
- "isScoringPlay": true,
- "isShootingPlay": true
}
], - "playerStatistics": [
- {
- "team": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "players": [
- {
- "data": [
- {
- "value": "7-10",
- "displayName": "Field Goals Made/Attempted"
}
], - "name": "Jaden McDaniels",
- "position": "Power Forward"
}
]
}
]
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
Full Time Result | The possible outcomes for the mentioned market are Home , Away or Draw . |
Moneyline | When a match does not have a three-way moneyline it will have a two-way one instead. The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Totals | This is considered a complex market. It is split into multiple possible variants such as "Totals 25", "Totals 25.5" and so on. The possible outcome of a variant is either Over or Under . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueName | string Example: leagueName=NBA |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=1 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=Pinnacle |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 1,
- "odds": [
- {
- "bookmakerId": 1,
- "bookmakerName": "Pinnacle",
- "type": "prematch",
- "market": "Total Points 161.5",
- "values": [
- {
- "odd": 1.75,
- "value": "Over"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
There are numerous ways on how to fetch the data. You can utilise either abbreviation
or leagueName
:
League Name | Abbreviation |
---|---|
Eastern Conference | EAST |
Western Conference | WEST |
ASUN Conference | A-SUN |
America East Conference | AEAST |
American Athletic Conference | AAC |
Atlantic 10 Conference | ATL10 |
Atlantic Coast Conference | ACC |
Big 12 Conference | BIG12 |
Big East Conference | BIGE |
Big Sky Conference | BSKY |
Big South Conference | BSOU |
Big Ten Conference | BIG10 |
Big West Conference | BIGW |
Coastal Athletic Association | COL |
Conference USA | USA |
Horizon League | HOR |
Ivy League | IVY |
Metro Atlantic Athletic Conference | MAAC |
Mid-American Conference | MIDAM |
Mid-Eastern Athletic Conference | MEAC |
Missouri Valley Conference | MVC |
Mountain West Conference | MWEST |
Northeast Conference | NEAST |
Patriot League | PAT |
Division I Independents | IND |
Western Conference | WEST |
Eastern Conference | EAST |
Ohio Valley Conference | OVC |
Pac-12 Conference | PAC12 |
Southeastern Conference | SEC |
Southern Conference | SOUTH |
Southland Conference | LAND |
Southwestern Athletic Conference | SWAC |
Summit League | SUMM |
Sun Belt Conference | BELT |
West Coast Conference | WCC |
Western Athletic Conference | WAC |
Additionally you can specify the year
parameter to narrow down the the standings for that season.
There are two other important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned standings will be. If the number of actual standings is above the limit
value you can make subsequent requests by increasing the offset
value.
Below is an example on how you could render league associated standings
leagueType | string Example: leagueType=NCAA |
limit | number [ 0 .. 10 ] Default: 10 Example: limit=5 |
offset | number >= 0 Default: 0 |
leagueName | string Example: leagueName=America East Conference |
abbreviation | string Example: abbreviation=AEAST |
year | number Example: year=2024 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "leagueName": "America East Conference",
- "abbreviation": "AEAST",
- "data": [
- {
- "team": {
- "id": 3,
- "displayName": "Denver Nuggets",
- "name": "Nuggets",
- "abbreviation": "DEN"
}, - "statistics": [
- {
- "value": "75.0",
- "displayName": "Opponent Points Per Game"
}
]
}
], - "year": 2024,
- "seasonType": "Postseason",
- "startDate": "2024-03-19T07:00:00.000Z",
- "endDate": "2024-03-19T07:00:00.000Z",
- "leagueType": "NCAA"
}
], - "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"
}
}
Retrieve a list of teams that are supported by the API.
By utilising either league
, name
, displayName
or abbreviation
query parameters you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
name | string Example: name=Nuggets |
displayName | string Example: displayName=Denver Nuggets |
abbreviation | string Example: abbreviation=DEN |
league | string Enum: "NBA" "NCAA" Example: league=NBA |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 28,
- "name": "Rockets",
- "displayName": "Houston Rockets",
- "abbreviation": "HOU",
- "league": "NBA"
}
]
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 3 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 67,
- "wins": 24,
- "loses": 43
}, - "points": {
- "scored": 1369,
- "received": 1619
}
}, - "home": {
- "games": {
- "played": 33,
- "wins": 13,
- "loses": 20
}, - "points": {
- "scored": 694,
- "received": 713
}
}, - "away": {
- "games": {
- "played": 34,
- "wins": 11,
- "loses": 23
}, - "points": {
- "scored": 675,
- "received": 906
}
}, - "leagueName": "NBA"
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 3 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 28,
- "name": "Rockets",
- "displayName": "Houston Rockets",
- "abbreviation": "HOU",
- "league": "NBA"
}
]
Refresh interval: Once a day
Retrieve a list of supported bookmakers.
There are two important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned bookmakers will be. If the number of actual bookmakers is above the limit
value you can make subsequent requests by increasing the offset
value.
The bookmakers name
or id
can be used to filter data from the odds
endpoint.
name | string Example: name=Stake.com |
limit | number [ 0 .. 100 ] Default: 20 Example: limit=20 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "name": "Stake.com"
}
], - "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"
}
}
Retrieve bookmaker information by specifying the bookmaker id path parameter.
Note: Used to check whether a bookmaker still exists or had its information updated.
id required | number Example: 1 Requested bookmaker id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stake.com"
}
]
Retrieve a list of the last ten head 2 head games between two teams. Compare the two teams to find out who is stronger based on their past match results.
Specify teamIdOne
and teamIdTwo
query parameters to retrieve the data. The order of team ids does not matter.
Below is an example of what you can achieve with the data:
teamIdOne required | number Example: teamIdOne=1 |
teamIdTwo required | number Example: teamIdTwo=2 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "round": "Regular Season - 14",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NHL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "homeTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "1 - 1",
- "firstPeriod": "0 - 0",
- "secondPeriod": "1 - 1",
- "thirdPeriod": "2 - 2",
- "overtimePeriod": "1 - 0"
}, - "report": "Final"
}
}
]
Refresh interval: Once a minute
Note: Certain highlights might be uploaded whilst the game is playing. Full game recaps tend to be uploaded anywhere from 1 to 48 hours after a match is finished.
Highlights represent the core of our API. They include various different kinds of clips ranging from real time live events such as insane plays, last minute scores to full game recaps, pre/post match interviews.
Currently we aggregate videos from many different sources. Depending on the source and verification process we divide the clips into two categories:
Type | Description |
---|---|
VERIFIED | Videos come from reputable sources that have been thoroughly inspected. In most cases the clips are from official authors who own the copyrights to the video itself. The hosting platform can impose geo restrictions or prevent direct imbedding (highlights/geo-restrictions/{highlightId} route can be used to check for potential restrictions). Verified highlights are uploaded anywhere from 1 to 48 hours of the match being finished. |
UNVERIFIED | Highlights vary and might not have gone through the verification process or are considered user uploaded. Videos include a wide spectrum of topics such as last minute scores, memorable plays, game recaps, etc. Unverified highlights are considered more real time and might be uploaded even when the match is still being played. The lifetime of these clips vary and is dependant on the hosting platform. |
Each highlight has a title
which describes what the video is about. Certain entries will have a description
as well which is used to further describe the associated clip. The source
field defines where the clip was aggregated from (e.g. would be youtube, twitter, reddit, espn, etc.). For certain sources you will see additional information being present in the channel
field. By utilising this information you can further narrow down which videos you want to showcase. Highlights might also have an embedUrl
property which is used to directly embed the videos into your website or mobile application.
Below is an example of what you can aim to achieve with our highlights data:
Retrieve a list of highlights based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get highlights relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned highlights will be. If the number of actual highlights is above the limit
value you can make subsequent requests by increasing the offset
value.
Note: The Basic/Free plan might have certain restrictions in place. More information can be found here.
leagueName | string Example: leagueName=NCAA |
date | string Example: date=2024-02-10 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
matchId | number Example: matchId=10523 |
homeTeamId | number Example: homeTeamId=494 |
awayTeamId | number Example: awayTeamId=15011 |
homeTeamName | string Example: homeTeamName=Engineers |
awayTeamName | string Example: awayTeamName=Big Red |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=RPI |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=COR |
homeTeamDisplayName | string Example: homeTeamDisplayName=Rensselaer Engineers |
awayTeamDisplayName | string Example: awayTeamDisplayName=Cornell Big Red |
limit | number [ 0 .. 40 ] Default: 40 Example: limit=40 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "type": "VERIFIED",
- "title": "NFL: New Orleans Saints vs Kansas City Chiefs",
- "description": "Game recap of the match.",
- "match": {
- "id": 1,
- "round": "Regular Season - 14",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NHL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "homeTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "1 - 1",
- "firstPeriod": "0 - 0",
- "secondPeriod": "1 - 1",
- "thirdPeriod": "2 - 2",
- "overtimePeriod": "1 - 0"
}, - "report": "Final"
}
}, - "channel": "NHL",
- "source": "youtube"
}
], - "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"
}
}
Refresh interval: Once an hour
Note: Endpoint is not available in the Basic/Free plan.
Geo restrictions are a plague that have been around for quite a while. They restrict access to online content based on the viewers geographical location. Trying to show restricted highlights to your users can greatly hinder the viewing experience.
Each highlight has a state
property which defines how the geo restrictions are applied.
State | Description |
---|---|
No restricitons applied | Highlight has no restrictions applied and is available globally. |
Allowed countries restriction | Highlight is only available to users whose country code is found in the allowedCountries list. |
Blocked countries restriction | Highlight is blocked to all users whose country code is found in the blockedCountries list. |
Unknown restrictions | There is no guaranteed way to define all allowed or blocked countries. |
As presented before, certain highlights have an embedUrl
field which can be used to directly embed the video into your website or application. The embeddable
field specifies whether this is allowed or not.
id required | number Example: 104 Requested higlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "state": "Allowed countries restriction",
- "allowedCountries": [
- "IT"
], - "blockedCountries": [ ],
- "embeddable": true
}
Retrieve highlight information by specifying the highlight id path parameter.
Note: Used to check whether a highlight still exists or had its information updated.
id required | number Example: 87 Requested highlight id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "type": "VERIFIED",
- "title": "NFL: New Orleans Saints vs Kansas City Chiefs",
- "description": "Game recap of the match.",
- "match": {
- "id": 1,
- "round": "Regular Season - 14",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NHL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "homeTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "1 - 1",
- "firstPeriod": "0 - 0",
- "secondPeriod": "1 - 1",
- "thirdPeriod": "2 - 2",
- "overtimePeriod": "1 - 0"
}, - "report": "Final"
}
}, - "channel": "NHL",
- "source": "youtube"
}
]
Refresh interval: Immediately once a game is considered finished
Retrieve a list of the last five finished games for a specific team. If a game was not finished (e.g. was cancelled or postponed) it will not be returned.
Specify teamId
query parameter to retrieve the data. Endpoint is used to create a form section between two teams that are playing a match. Below is an example of what can be achieved:
teamId required | number Example: teamId=1 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "round": "Regular Season - 14",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NHL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "homeTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "1 - 1",
- "firstPeriod": "0 - 0",
- "secondPeriod": "1 - 1",
- "thirdPeriod": "2 - 2",
- "overtimePeriod": "1 - 0"
}, - "report": "Final"
}
}
]
Refresh interval: Once a minute
Route returns only general match information. For additional match details check the
matches/{matchId}
route.
Retrieve a list of matches based on the requested query parameters.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
are considered secondary).
You can specify the timezone
field in combination with the date
query parameter to get matches relevant to your location.
There are two other important parameters. The limit
parameter defines what the number of returned matches will be. If the number of actual matches is above the limit
value you can make subsequent requests by increasing the offset
value.
Matches have different possible states they can be in:
State | Description |
---|---|
Postponed | Match has been postponed due to certain circumstances that are preventing the game from being played. Event start time will be changed to a moment in the future. |
Suspended | Match has already been in play but was suspended. In the future the game will resume from the exact point where it was halted. |
Cancelled | Game will not be played. |
Abandoned | Considered "abandoned" when it is prematurely ended by the officials and can not be resumed or completed. In the future the game might be resumed from the exact point where it was halted. |
Finished | Match has been concluded. |
Scheduled | Match has not been started yet. |
End period | Break time between periods. |
Half time | Half time pause between second and third quarter. |
In progress | Game is currently in progress. |
Unknown | Unknown match coverage or state. |
Below is an example of what you can aim to achieve with the matches endpoint:
league | string Example: league=NCAA |
date | string Example: date=2024-02-10 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
season | number Example: season=2024 |
homeTeamId | number Example: homeTeamId=494 |
awayTeamId | number Example: awayTeamId=15011 |
homeTeamName | string Example: homeTeamName=Engineers |
awayTeamName | string Example: awayTeamName=Big Red |
homeTeamAbbreviation | string Example: homeTeamAbbreviation=RPI |
awayTeamAbbreviation | string Example: awayTeamAbbreviation=COR |
homeTeamDisplayName | string Example: homeTeamDisplayName=Rensselaer Engineers |
awayTeamDisplayName | string Example: awayTeamDisplayName=Cornell Big Red |
limit | number [ 0 .. 100 ] Default: 100 Example: limit=100 |
offset | number >= 0 Default: 0 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "id": 1,
- "round": "Regular Season - 14",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NHL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "homeTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "1 - 1",
- "firstPeriod": "0 - 0",
- "secondPeriod": "1 - 1",
- "thirdPeriod": "2 - 2",
- "overtimePeriod": "1 - 0"
}, - "report": "Final"
}
}
], - "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"
}
}
Retrieve detailed match information by specifying the match id path parameter.
Fetched data will have additional information about the venue
, weather forecast
, overallStatistics
for each team, who the game's referees
are and events
.
Note: Used to retrieve additional match information.
id required | number Example: 1899 Requested match id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "round": "Regular Season - 14",
- "date": "2023-05-20T15:30:00.000Z",
- "league": "NHL",
- "season": 2023,
- "awayTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "homeTeam": {
- "id": 1,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "state": {
- "period": 2,
- "clock": 8,
- "description": "In progress",
- "score": {
- "current": "1 - 1",
- "firstPeriod": "0 - 0",
- "secondPeriod": "1 - 1",
- "thirdPeriod": "2 - 2",
- "overtimePeriod": "1 - 0"
}, - "report": "Final"
}, - "venue": {
- "city": "Sudbury",
- "name": "Sudbury Community Arena",
- "state": "ON"
}, - "referees": [
- {
- "name": "Jonathan Parra",
- "position": "Home Plate Umpire"
}
], - "forecast": {
- "status": "cloudy",
- "temperature": "11.97°C"
}, - "overallStatistics": [
- {
- "data": [
- {
- "value": "10",
- "displayName": "Blocked Shots"
}
], - "team": {
- "id": 1,
- "name": "Stars",
- "displayName": "Dallas Stars",
- "abbreviation": "DAL",
- "league": "NHL"
}
}
], - "events": [
- {
- "type": "Shot",
- "clock": "0:32",
- "period": 1,
- "isScoringPlay": false,
- "team": {
- "id": 1,
- "name": "Stars",
- "displayName": "Dallas Stars",
- "abbreviation": "DAL",
- "league": "NHL"
}
}
]
}
]
Prematch odds refresh interval: Multiple times a day
Live odds refresh interval: Once every 10 minutes
Note: Endpoint is not available in the Basic/Free plan.
Retrieve a list of match odds based on the requested query parameters. With oddsType
query parameter you can specify whether you want prematch or live odds. If you do not set a specific value prematch odds will be returned.
At least one primary query parameter needs to be specified before you can retrieve the data (timezone
, limit
, offset
, oddsType
are considered secondary).
The most popular way of getting match odds is by specifying the matchId
query parameter. You can also utilise the date
parameter alongside the timezone
to fetch all match odds for a given day. By specifying league or bookmaker related fields you can further narrow down your search.
As it stands, we currently offer the support for the following markets:
Market | Description |
---|---|
3-Way Moneyline | The possible outcomes for the three-way moneyline market are Home , Draw or Away . |
Moneyline | When a match does not have a three-way moneyline it will have a two-way one instead. The possible outcomes for the mentioned market are either Home or Away . There is no possible way for the game to end in a Draw . |
Total Goals | This is considered a complex market. It is split into multiple possible variants such as "Total Goals 8", "Total Goals 8.5" and so on. The possible outcome of a variant is either Over or Under . |
Odd or Even | The Odd or Even market defines whether the score of both teams will be either Odd or Even . |
Both Teams to Score | The market defines whether both teams will score or not. Outcomes can be either Yes or No . |
There are two other important query parameters. The limit
parameter defines what the number of returned match odds will be. If the number of actual match odds is above the limit
value you can make subsequent requests by increasing the offset
value.
Match odds are available up to 28 days after the game finishes and up to 7 days before the game starts.
Below is an example of what can be achieved with bookmaker odds on a match basis:
oddsType | string Enum: "prematch" "live" Example: oddsType=prematch Defines whether live or prematch odds will be returned. |
leagueName | string Example: leagueName=NHL |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
bookmakerId | number Example: bookmakerId=1 |
limit | number [ 0 .. 5 ] Default: 5 Example: limit=5 |
offset | number >= 0 Default: 0 |
matchId | number |
bookmakerName | string Example: bookmakerName=22Bet |
date | string Date that follows the YYYY-MM-DD format. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "data": [
- {
- "matchId": 1,
- "odds": [
- {
- "bookmakerId": 1,
- "bookmakerName": "Stake.com",
- "type": "prematch",
- "market": "Odd or Even",
- "values": [
- {
- "odd": 2.8,
- "value": "Home"
}
]
}
]
}
], - "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"
}
}
Refresh interval: Up to an hour after a match for the associated league and season is finished
Retrieve standings data for a specific league, conference or division.
There are numerous ways on how to fetch the data. You can utilise either abbreviation
or leagueName
:
League Name | Abbreviation |
---|---|
Metro Atlantic Athletic Conference | MAAC |
Western Conference | WEST |
College Hockey America | CHA |
Eastern Conference | EAST |
East Coast Athletic Conference | ECAC |
Independent | IND |
Northeast 10 Conference | NE10 |
Western Collegiate Hockey Association | WCHA |
Central Collegiate Hockey Association | CCHA |
Hockey East | HE |
Additionally you can specify the year
parameter to narrow down the the standings for that season.
There are two other important parameters that are used to navigate through the pagination. The limit
parameter defines what the number of returned standings will be. If the number of actual standings is above the limit
value you can make subsequent requests by increasing the offset
value.
Below is an example on how you could render league associated standings
leagueType | string Example: leagueType=NHL |
limit | number [ 0 .. 10 ] Default: 10 Example: limit=5 |
offset | number >= 0 Default: 0 |
leagueName | string Example: leagueName=Western Conference |
abbreviation | string Example: abbreviation=WEST |
year | number Example: year=2025 |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
{- "leagueName": "Eastern Conference",
- "abbreviation": "EAST",
- "year": 2024,
- "leagueType": "NHL",
- "seasonType": "Regular Season",
- "startDate": "2023-10-09T07:00:00.000Z",
- "endDate": "2024-04-19T06:59:00.000Z",
- "data": [
- {
- "team": {
- "id": 3,
- "name": "Panthers",
- "displayName": "Florida Panthers",
- "abbreviation": "FLA"
}, - "statistics": [
- {
- "value": "+4",
- "displayName": "Differential"
}
]
}
]
}
Retrieve a list of teams that are supported by the API.
By utilising either league
, name
, displayName
or abbreviation
query parameters you can check whether a specific team exists or simply retrieve the associated data.
There are two other important query parameters. The limit
parameter defines what the number of returned teams will be. If the number of actual teams is above the limit
value you can make subsequent requests by increasing the offset
value.
name | string Example: name=Big Red |
displayName | string Example: displayName=Cornell Big Red |
abbreviation | string Example: abbreviation=COR |
league | string Example: league=NCAA |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stars",
- "displayName": "Dallas Stars",
- "abbreviation": "DAL",
- "league": "NHL"
}
]
Refresh interval: Immediately once a match is finished.
Retrieve team stats for each league and season by specifying the team's id
path parameter. Requires fromDate
query parameter to be specified in the YYYY-MM-DD format. Additionally, the timezone
query parameter can be specified to futher narrow down the search results based on your location.
id required | number Example: 494 Requested team id. |
fromDate required | string Example: fromDate=2023-08-06 Date that follows the YYYY-MM-DD format. |
timezone | string Default: "Etc/UTC" Example: timezone=Europe/London Valid timezone identifier. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "total": {
- "games": {
- "played": 67,
- "wins": 24,
- "loses": 43
}, - "goals": {
- "scored": 444,
- "received": 555
}
}, - "home": {
- "games": {
- "played": 33,
- "wins": 13,
- "loses": 20
}, - "goals": {
- "scored": 122,
- "received": 54
}
}, - "away": {
- "games": {
- "played": 34,
- "wins": 11,
- "loses": 23
}, - "goals": {
- "scored": 133,
- "received": 111
}
}, - "leagueName": "NHL",
- "round": "regular-season"
}
]
Retrieve team information by specifying the team id path parameter.
Note: Used to check whether a team still exists or had its information updated.
id required | number Example: 1 Requested team id. |
x-rapidapi-host required | string sport-highlights-api.p.rapidapi.com |
x-rapidapi-key required | string Rapid API Token |
[- {
- "id": 1,
- "name": "Stars",
- "displayName": "Dallas Stars",
- "abbreviation": "DAL",
- "league": "NHL"
}
]