Download OpenAPI specification:Download
Get ready for real time NBA and NCAAB match/player statistics, live scores, match predictions, live events, highlights, game recaps, fouls, and post-match interviews on a global scale. Integrate a wide spectrum of pre-match and live game odds into your projects for a complete sports data solution.
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 an account via Highlightly or RapidAPI. Both platforms offer you the ability to view the API analytics, manage billing settings, control API keys and much more. However, there are a few differences. RapidAPI does not include custom plans nor does it provide long term plan discounts.
Accounts are not synced across platforms.
Please ensure that your API key is not made public to prevent potential abuse. Your API key can be managed either through Highlightly or RapidAPI.
Highlightly API base url:
https://nba.highlightly.net
RapidAPI API base url:
https://nba-ncaab-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 Highlightly or RapidAPI API Key |
x-rapidapi-host |
nba-ncaab-api.p.rapidapi.com - only needed
for usage through RapidAPI
|
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 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
Example:
offset=0
|
|
x-rapidapi-host
required
|
string
nba-ncaab-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
Requested bookmaker id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-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
nba-ncaab-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 embedding (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
Example:
offset=0
|
|
x-rapidapi-host
required
|
string
nba-ncaab-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
Requested highlight id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-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
Requested highlight id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-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
nba-ncaab-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
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
Example:
offset=0
|
|
x-rapidapi-host
required
|
string
nba-ncaab-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,
matchStatistics for each team,
injuries and events.
Note: Used to retrieve additional match information.
|
id
required
|
number
Requested match id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-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"
},
-
"matchStatistics":
{
-
"awayTeam":
{
-
"statistics":
[
-
{
-
"name":
"3PT
Accuracy",
-
"value":
"Numeric
value
representing
statistics
data."
}
]
},
-
"homeTeam":
{
-
"statistics":
[
-
{
-
"name":
"3PT
Accuracy",
-
"value":
"Numeric
value
representing
statistics
data."
}
]
}
},
-
"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
}
],
-
"predictions":
{
-
"prematch":
[
-
{
-
"type":
"prematch",
-
"modelType":
"three-way",
-
"generatedAt":
"2025-03-12T19:00:20.000Z",
-
"description":
"Team A is
most likely to
win the game
against Team
B.`",
-
"probabilities":
{
-
"home":
"30.22%",
-
"draw":
"0.00%",
-
"away":
"69.78%"
}
}
],
-
"live":
[
-
{
-
"type":
"prematch",
-
"modelType":
"three-way",
-
"generatedAt":
"2025-03-12T19:00:20.000Z",
-
"description":
"Team A is
most likely to
win the game
against Team
B.`",
-
"probabilities":
{
-
"home":
"30.22%",
-
"draw":
"0.00%",
-
"away":
"69.78%"
}
}
]
}
}
]
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.
|
| Spread |
This is considered a complex market. It is split
into multiple possible variants such as
"Spread -28.5/+28.5",
"Spread -21.25/+21.25 " and so on. The
possible outcome of a variant is either
Home or Away.
|
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
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=284
|
| limit |
number
[ 0 .. 5 ]
Default:
5
Example:
limit=5
|
| offset |
number
>= 0
Default:
0
Example:
offset=0
|
| matchId |
number
|
| bookmakerName |
string
Example:
bookmakerName=Pinnacle
|
| date |
string
Date that follows the YYYY-MM-DD format. |
|
x-rapidapi-host
required
|
string
nba-ncaab-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
Example:
offset=0
|
| leagueName |
string
Example:
leagueName=America East Conference
|
| abbreviation |
string
Example:
abbreviation=AEAST
|
| year |
number
Example:
year=2024
|
|
x-rapidapi-host
required
|
string
nba-ncaab-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
Example:
league=NBA
|
|
x-rapidapi-host
required
|
string
nba-ncaab-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
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
nba-ncaab-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
Requested team id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-api.p.rapidapi.com |
|
x-rapidapi-key
required
|
string
Rapid API Token |
[
-
{
-
"id":
28,
-
-
"name":
"Rockets",
-
"displayName":
"Houston Rockets",
-
"abbreviation":
"HOU",
-
"league":
"NBA"
}
]
Lineups should be queried up to a few hours before the game starts.
Retrieve home and away team lineups for a specific match.
Below is an example of what you can aim to achieve with the lineup endpoint:
|
matchId
required
|
number
Requested match id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-api.p.rapidapi.com |
|
x-rapidapi-key
required
|
string
Rapid API Token |
{
-
"home":
{
-
"team":
{
-
"id":
28,
-
-
"name":
"Rockets",
-
"displayName":
"Houston Rockets",
-
"abbreviation":
"HOU",
-
"league":
"NBA"
},
-
"lineup":
[
-
{
-
"id":
61000787,
-
"jersey":
28,
-
"player":
"Hachimura",
-
"position":
"Small
forward",
-
"positionAbbreviation":
"SF",
-
"isStarter":
true
}
]
},
-
"away":
{
-
"team":
{
-
"id":
28,
-
-
"name":
"Rockets",
-
"displayName":
"Houston Rockets",
-
"abbreviation":
"HOU",
-
"league":
"NBA"
},
-
"lineup":
[
-
{
-
"id":
61000787,
-
"jersey":
28,
-
"player":
"Hachimura",
-
"position":
"Small
forward",
-
"positionAbbreviation":
"SF",
-
"isStarter":
true
}
]
}
}
Refresh interval: 15 minutes
Route returns only general player information. For additional player details check the
players/{playerId}andplayers/{playerId}/statisticsroutes.
Retrieve a list of players based on the requested query parameters.
Returned results will be paginated. The
limit parameter defines what the number of
returned players will be. If the number of actual players
is above the limit value you can make
subsequent requests by increasing the
offset value.
| name |
string
Example:
name=Dwight Howard
|
| limit |
number
[ 0 .. 1000 ]
Default:
1000
Example:
limit=1000
|
| offset |
number
>= 0
Default:
0
Example:
offset=0
|
|
x-rapidapi-host
required
|
string
nba-ncaab-api.p.rapidapi.com |
|
x-rapidapi-key
required
|
string
Rapid API Token |
{
-
"data":
[
-
{
-
"id":
36827,
-
"fullName":
"Dwight Howard",
-
"logo":
"string"
}
],
-
"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 detailed player summary for specified
playerId.
Detailed player summary consists of the following information:
| Type | Description |
|---|---|
| Profile | Provides a structured summary of a player's personal and professional profile. It includes key details such as current team affiliation, physical attributes (height, weight), biographical data (name, birth date, birthplace, citizenship), and playing positions. The data reflects both the player's current career status and positional versatility, offering a higher level overview which is useful for scouting, analysis, or profile display. |
|
id
required
|
number
Requested player id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-api.p.rapidapi.com |
|
x-rapidapi-key
required
|
string
Rapid API Token |
[
-
{
-
"id":
36827,
-
"fullName":
"Dwight Howard",
-
"logo":
"string",
-
"profile":
{
-
"fullName":
"Dwight Howard",
-
"birthPlace":
"Atlanta, GA, USA",
-
"birthDate":
"08.12.1985",
-
"height":
"6' 10\"",
-
"jersey":
"39",
-
"weight":
"265 lbs",
-
"isActive":
false,
-
"position":
{
-
"main":
"Center",
-
"abbreviation":
"C"
},
-
"draft":
{
-
"round":
1,
-
"year":
2004,
-
"pick":
1
},
-
"team":
{
-
"id":
4,
-
-
"name":
"Lakers",
-
"league":
"NBA",
-
"displayName":
"Los Angeles
Lakers",
-
"abbreviation":
"LAL"
}
}
}
]
Refresh interval: Once a day
Retrieve detailed player statistics for specified
playerId.
Detailed player statistics are aggregated on a
perSeason level. Each season has the
following available coverage:
| Type | Description |
|---|---|
| Entire | Combines both regular season and post-season statistics. Pre-season data is not included. |
| Season | Includes only regular season statistics. |
The following stats are available:
| Type | Description |
|---|---|
| General | Overall player metrics including minutes, games, fouls, rebounds, ratios (assist-to-turnover, steal-to-foul, etc.), player rating, and per-game or per-48-minute averages. |
| Defense | Stats tracking defensive impact such as steals, blocks, defensive rebounds, and their per-game and per-48-minute rates. |
| Offense | Metrics covering points, assists, field goals, 3-pointers, free throws, turnovers, efficiency ratings, and offensive rebound measures. |
|
id
required
|
number
Requested player id. |
|
x-rapidapi-host
required
|
string
nba-ncaab-api.p.rapidapi.com |
|
x-rapidapi-key
required
|
string
Rapid API Token |
[
-
{
-
"id":
36827,
-
"fullName":
"Dwight Howard",
-
"logo":
"string",
-
"perSeason":
[
-
{
-
"stats":
[
-
{
-
"name":
"Total
Fouls",
-
"value":
115,
-
"category":
"Offense"
}
],
-
"teams":
[
-
{
-
"id":
4,
-
-
"name":
"Lakers",
-
"league":
"NBA",
-
"displayName":
"Los
Angeles
Lakers",
-
"abbreviation":
"LAL"
}
],
-
"league":
"NBA",
-
"season":
2022,
-
"seasonBreakdown":
"Entire"
}
]
}
]
Refresh interval: Every minute
Retrieve detailed per-player
NBA/NCAAB box score statistics by
specifying the matchId as the path parameter.
The response is an array with two elements:[homeTeam, awayTeam]
Each team object contains general team information and a list of player box scores.
Each team (home or away) has the following shape:
| Field | Description |
|---|---|
| id | Unique identifier for the team. |
| name | Team name. |
| logo | URL to the team logo, if available. |
| boxScores | List of per-player box score records for the team. |
Each item in boxScores represents a single
player’s performance in the match.
| Field | Description |
|---|---|
| id | Unique identifier for the player. |
| name | Player’s display name. |
| jersey | Player’s jersey number, if available. |
Player performance data is provided as a list of statistic
records.
Each record contains a
name/value pair.
| Field | Description |
|---|---|
| name |
Name of the statistic (e.g.
Total Points Scored,
Total Assists).
|
| value | Value of the statistic. Can be a number, string, or null if not applicable. |
The following are example statistics you may encounter.
Total Minutes Played
The total
amount of time a player has been on the court,
measured in minutes.
Total Points Scored
The sum of
all points a player has scored, including field goals
and free throws.
Successful Field Goals (FGM)
The
number of shots successfully made from the field
(2-point and 3-point shots combined).
Total Field Goals (FGA)
The
total number of shots attempted from the field,
whether made or missed.
Successful 3PT Field Goals (3PM)
The number of three-point shots successfully
made.
Total 3PT Field Goals (3PA)
The
total number of three-point shots attempted.
Successful Free Throws (FTM)
The
number of free throws successfully made.
Total Free Throws (FTA)
The
total number of free throws attempted.
Total Rebounds (REB)
The total
number of rebounds collected, combining offensive and
defensive rebounds.
Total Assists (AST)
The number
of passes that directly led to a teammate scoring a
basket.
Total Turnovers (TOV)
The number
of times a player lost possession of the ball to the
opposing team.
Total Steals (STL)
The number of
times a player legally took the ball away from an
opponent.
Total Blocks (BLK)
The number of
times a player blocked an opponent’s shot attempt.
Total Offensive Rebounds (OREB)
Rebounds collected by a player on their team’s
offensive end after a missed shot.
Total Defensive Rebounds (DREB)
Rebounds collected by a player on their team’s
defensive end after an opponent’s missed shot.
Total Fouls (PF)
The number of
personal fouls committed by a player.
Plus Minus (+/-)
The point
differential (team points scored minus points allowed)
while the player is on the court.
|
matchId
required
|
number
Requested match id |
[
-
{
-
"team":
{
-
"id":
32,
-
"name":
"Sacramento Kings",
-
-
"boxScores":
[
-
{
-
"player":
{
-
"id":
99737,
-
"name":
"Harrison
Barnes",
-
"jersey":
0
},
-
"statistics":
[
-
{
-
"name":
"Total
Minutes
Played",
-
"value":
29
}
]
}
]
}
}
]