Sports API
The Sports API provides schedules, live and final scores, standings, teams and rosters for the NFL, NBA and NHL. One API key covers every league, and every league uses the same endpoints and fields, so an app that works for one league works for all of them.
Paid plans get scores, periods and the game clock updated throughout each game, plus the three previous seasons. The free plan gets the current season with final scores, and the full schedules, standings, teams and rosters.
Available endpoints:
- /v1/sportsgames - Schedules, live and final scores
- /v1/sportsstandings - League tables
- /v1/sportsteams - Teams, divisions and venues
- /v1/sportsplayers - Rosters and player profiles
Leagues
| League | What you get | League value |
|---|---|---|
| NFL | Schedules by week, live and final scores by quarter, standings by division and conference, teams and rosters | nfl |
| NBA | Schedules, live and final scores by quarter, play-in and playoffs, standings, teams and rosters | nba |
| NHL | Schedules, live and final scores by period with overtime and shootouts, standings with points, teams and rosters | nhl |
https://api.api-ninjas.com/v1/sportsgames
Returns schedules, live scores and final scores. Ask for one day, a team's season or one game; with only league you get today's games. Paid plans see games in progress with the score, period and clock updated throughout the game; the free plan sees their status and the final score once they end. The free plan covers the current season. Developer plans add the three previous seasons, and the Business tier and above gets every stored season.
Parameters
Provide league, unless you pass game_id or a team id such as nba-bos.
leagueoptionalnfl,nbaornhl.dateoptionalGame day in US Eastern time (YYYY-MM-DD). Defaults to today when no team or season is given.
teamoptionalTeam id, abbreviation or name (e.g.
BOS): that team's games in the season.seasonoptionalSeason, as the year it starts (
2026= 2026-27). Defaults to the current season. On its own, returns the whole season.season_typeoptionalOnly games of this part of the season.
statusoptionalOnly games with this status.
game_idoptionalReturn one game.
limitoptional Premium onlyGames per page (1-500). Default
50.offsetoptionalGames to skip, for paging. Default
0.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/sportsgames endpoint returns a JSON array of games in start order, or an error.
game_idUnique id of the game, e.g.
nba-20261022-cle-phi. It never changes, even when a game is moved to another date.leaguenfl,nbaornhl.seasonSeason, as the year it starts:
2026is the 2026 NFL season and the 2026-27 NBA and NHL seasons.season_labelDisplay form of the season, e.g.
2026or2026-27.season_typepreseason,regular,cup_final(the NBA Cup championship game, which does not count in the standings),play_in(NBA) orpostseason.weekNFL only: week of the season.
dateGame day in US Eastern time (YYYY-MM-DD). A late game that starts after midnight UTC keeps its US date.
start_timeScheduled start in UTC (ISO 8601).
statusscheduled,in_progress,final,postponed,canceled,suspendedordelayed.status_detailPremium onlyDuring a game:
halftime,end_of_periodorintermission(NHL), otherwisenull. While a game is in progress, the free plan seesThis field is for premium subscribers only.periodPremium onlyCurrent period, or the last one played once the game is final: quarters in the NFL and NBA, periods in the NHL. Overtime periods continue the count. While a game is in progress, the free plan sees
This field is for premium subscribers only.clockPremium onlyTime left in the current period while the game is in progress, e.g.
5:33. The free plan seesThis field is for premium subscribers only.home_team, away_teamThe teams:
team_id,nameandabbreviation, named as they were that season (e.g. the New Orleans Hornets or the Washington Redskins). A team that moved city, such as the Oakland Raiders, has its ownteam_id.home_score, away_scorePremium onlyCurrent or final score;
nullbefore the game starts. While a game is in progress, the free plan seesThis field is for premium subscribers only.period_scoresPremium onlyPoints or goals per period for
homeandaway, including each overtime period. NHL shootout goals are not period goals: a shootout win shows in the final score and indecided_in. While a game is in progress, the free plan seesThis field is for premium subscribers only.decided_inFor final games:
regulation,overtimeorshootout(NHL).winnerteam_idof the winner once the game is final;nullbefore that and for a tie.venueWhere the game is played:
name,city,stateandcountry(ISO 3166-1 alpha-2).neutral_sitetruewhen neither team is at home, e.g. international games and the Super Bowl.original_dateFor a game moved to another date: the date it was first scheduled for. Otherwise
null.updated_atWhen any field of the game last changed (UTC).
Live Demo
Get a free API key to get started — no credit card required.
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/sportsgames?league=nba" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/sportsstandings
Returns the league table for a season, ordered by league rank, or by conference or division rank when you filter. Tables update throughout the season, shortly after each game ends. The free plan covers the current season. Developer plans add the three previous seasons, and the Business tier and above gets every stored season.
Parameters
leaguerequirednfl,nbaornhl.seasonoptionalSeason, as the year it starts. Defaults to the current season.
conferenceoptionalOnly this conference, e.g.
AFC,Eastern.divisionoptionalOnly this division, e.g.
AFC East,Atlantic.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/sportsstandings endpoint returns a JSON array of team rows, or an error. Fields that do not apply to a league are left out.
league, season, season_labelLeague and season of the table.
teamteam_id,nameandabbreviation, named as they were that season.conference, divisionThe team's conference and division that season, including temporary alignments such as the NHL's 2020-21 divisions (when
conferenceisnull).games_played, wins, lossesRecord.
tiesNFL only.
ot_losses, points, point_pct, regulation_winsNHL only: overtime and shootout losses, standings points, points percentage and regulation wins.
win_pct, games_behindNFL and NBA: winning percentage and games behind the division leader.
points_for, points_against, point_differentialNFL and NBA.
goals_for, goals_against, goal_differentialNHL.
streakCurrent streak, e.g.
W2orL1.home_record, away_recordHome and road records, e.g.
4-1(NHL: wins-losses-overtime losses).division_record, conference_recordNFL and NBA: records against division and conference opponents.
last_10NBA and NHL: record over the last 10 games.
league_rank, conference_rank, division_rankRank in the league, conference and division. In the NFL and NBA,
conference_rankis the playoff seed.wildcard_rank, clinchedNHL only: wild-card position and the clinching indicator the league publishes.
finaltrueonce the regular season is over and the table no longer changes.
Live Demo
Get a free API key to get started — no credit card required.
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/sportsstandings?league=nba" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/sportsteams
Lists teams with their conference, division and home venue. Available on every plan.
Parameters
leagueoptionalOnly this league. Without it, every league is listed.
teamoptionalTeam id, abbreviation or name (e.g.
BOS): return one team.conferenceoptionalOnly teams in this conference.
divisionoptionalOnly teams in this division.
activeoptionalfalselists former teams that appear in past seasons.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/sportsteams endpoint returns a JSON array of teams, or an error.
team_idUnique id, e.g.
nba-bos. Use it, the abbreviation or the name in other endpoints.league, abbreviation, name, nickname, cityIdentity of the team.
conference, divisionCurrent conference and division.
venueHome venue:
name,city,state,country.activefalsefor teams that have since moved, such as the Oakland Raiders, New Jersey Nets or Atlanta Thrashers, which still appear in past seasons.
Live Demo
Get a free API key to get started — no credit card required.
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/sportsteams?league=nba" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/sportsplayers
Returns current rosters and player profiles, by team or by name. Rosters refresh every day. Available on every plan.
Parameters
Provide league with team or name, or a player_id.
leagueoptionalnfl,nbaornhl.teamoptionalTeam id, abbreviation or name: that team's current roster.
nameoptionalFull or partial player name. Case and accents are ignored.
player_idoptionalReturn one player.
positionoptionalOnly this position, e.g.
G.limitoptional Premium onlyPlayers per page (1-500). Default
50.offsetoptionalPlayers to skip, for paging. Default
0.
Headers
X-Api-KeyrequiredAPI Key associated with your account.
Response
The /v1/sportsplayers endpoint returns a JSON array of players, or an error. League-specific fields are left out where they do not apply.
player_idUnique id, e.g.
nba-p-8f12176c56. It stays the same when a player changes teams.teamCurrent team (
team_id,name,abbreviation), ornullwhen the player is on no roster.name, first_name, last_namePlayer name.
position, jersey_numberPosition abbreviation and jersey number.
height_in, height_cm, weight_lb, weight_kgHeight and weight.
birth_date, birth_placeDate of birth and birthplace (
city,state,country).roster_statusactive,reserve(NFL injured reserve and similar lists),practice_squad(NFL),suspended, ornot_on_roster.college, experience_yearsNFL and NBA: college and years of professional experience.
shoots_catchesNHL only:
LorR.
Live Demo
Get a free API key to get started — no credit card required.
Code Examples
curl -X GET "https://api.api-ninjas.com/v1/sportsplayers?league=nba&team=BOS" \
-H "X-Api-Key: YOUR_API_KEY"Frequently Asked Questions
Can I use the Sports API for commercial purposes?
Yes, but you must have a premium subscription. Commercial use of the Sports API is not permitted on the free tier. See our pricing page to choose a plan that fits your needs.How do I get an API key and start using the Sports API?
Sign up for a free account to instantly get your API key, then pass it in theX-Api-Keyheader on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.What happens if I exceed my quota for the month?
Your API requests will simply be denied once you hit your monthly quota — you will never be charged more than the plan you signed up for. To increase your quota, you can upgrade your plan any time on our pricing page.What happens if a request to the Sports API fails?
The API responds with a standard HTTP status code and a JSON error message describing the problem. See our error codes reference for the full list of codes and how to resolve each one, or contact support if you need help.Which leagues does the Sports API cover?
How often are live scores updated?
On paid plans, scores, the period and the game clock update throughout every game, typically within a minute of the play. On the free plan, games in progress show their status, and the final score appears when the game ends.How much history can I access?
The free plan covers the current season. Developer plans add the three previous seasons, and the Business tier and above gets every stored season. Theseasonparameter is the year a season starts:2026is the 2026 NFL season and the 2026-27 NBA and NHL seasons.Do game ids change when a game is rescheduled?
No. Agame_idsuch asnba-20261022-cle-phiis assigned once and never changes. If a game moves to another day,dateandstart_timeupdate andoriginal_datekeeps the day it was first scheduled for.Are logos, photos or betting odds included?
No. The Sports API returns facts: schedules, scores, standings, teams and player profiles. It does not include logos, player photos, odds or predictions. API Ninjas is not affiliated with or endorsed by any league or team.
Explore API integration use cases for recommended APIs and workflow examples.
API Ninjas is not affiliated with or endorsed by the NFL, the NBA, the NHL or any team. League and team names are trademarks of their owners and are used only to identify them. If a result differs from the league's official record, the official record prevails.