Highlightly Basketball API (5.2.1)

Download OpenAPI specification:Download

Welcome to the biggest Basketball Highlights API, covering data from over 300 basketball leagues globally. 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.

Contact

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.

RapidAPI integration

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.

API usage

Base API url: https://basketball-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 basketball-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.

Basketball.Countries

Get all countries

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: Countries example

query Parameters
name
string
Example: name=Australia
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Get country by country code

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.

path Parameters
countryCode
required
string
Example: AU

A string value code of the country, following the ISO 3166 standard.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Matches

Get all matches

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:

Basketball matches example

query Parameters
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
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{
  • "data": [],
  • "pagination": {
    },
  • "plan": {
    }
}

Get match by id

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.

path Parameters
id
required
number
Example: 318831338

Requested match id.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Highlights

Get all highlights

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:

Highlights example

Retrieve highlights

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.

query Parameters
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
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{}

Get geo restrictions for highlight

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.

path Parameters
id
required
number
Example: 13

Requested higlight id.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{
  • "state": "Allowed countries restriction",
  • "allowedCountries": [
    ],
  • "blockedCountries": [ ],
  • "embeddable": true
}

Get highlight by id

Retrieve highlight information by specifying the highlight id path parameter.

Note: Used to check whether a highlight still exists or had its information updated.

path Parameters
id
required
number
Example: 28

Requested higlight id.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Leagues

Get all leagues

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.

query Parameters
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
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{
  • "data": [],
  • "pagination": {
    },
  • "plan": {
    }
}

Get league by id

Retrieve league information by specifying the league id path parameter.

Note: Used to check whether a league still exists or had its information updated.

path Parameters
id
required
number
Example: 1635

Requested league id.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Teams

Get all teams

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.

query Parameters
limit
number [ 0 .. 500 ]
Default: 500
Example: limit=50
offset
number >= 0
Default: 0
name
string
Example: name=Adelaide
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{
  • "data": [],
  • "pagination": {
    },
  • "plan": {
    }
}

Get team statistics

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.

path Parameters
id
required
number
Example: 7592

Requested team id.

query Parameters
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.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get team by team id

Retrieve team information by specifying the team id path parameter.

Note: Used to check whether a team still exists or had its information updated.

path Parameters
id
required
number
Example: 7592

Requested team id.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Bookmakers

Get all bookmakers

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.

query Parameters
name
string
Example: name=Stake.com
limit
number [ 0 .. 100 ]
Default: 20
Example: limit=20
offset
number >= 0
Default: 0
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    },
  • "plan": {
    }
}

Get bookmaker by id

Retrieve bookmaker information by specifying the bookmaker id path parameter.

Note: Used to check whether a bookmaker still exists or had its information updated.

path Parameters
id
required
number
Example: 1

Requested bookmaker id.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Basketball.Odds

Get all odds

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:

Odds example

query Parameters
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.

header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    },
  • "plan": {
    }
}

Basketball.Last Five Games

Get last five finished games for a specific team id

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:

Last five games example

query Parameters
teamId
required
number
Example: teamId=1635
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Head 2 Head

Get head 2 head games

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:

H2H example

query Parameters
teamIdOne
required
number
Example: teamIdOne=1635
teamIdTwo
required
number
Example: teamIdTwo=7592
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
[]

Basketball.Standings

Get standings

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

Standings example

query Parameters
leagueId
required
number
Example: leagueId=2486
season
required
number
Example: season=2023
header Parameters
x-rapidapi-host
required
string

basketball-highlights-api.p.rapidapi.com

x-rapidapi-key
required
string

Rapid API Token

Responses

Response samples

Content type
application/json
{}