NewConnect Claude, Gemini, ChatGPT, and other AI agents to API Ninjas via our MCP server →

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:

League guides: NFL API, NBA API and NHL API.

Leagues

LeagueWhat you getLeague value
NFLSchedules by week, live and final scores by quarter, standings by division and conference, teams and rostersnfl
NBASchedules, live and final scores by quarter, play-in and playoffs, standings, teams and rostersnba
NHLSchedules, live and final scores by period with overtime and shootouts, standings with points, teams and rostersnhl
4 endpoints

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.

  • league  optional

    nfl, nba or nhl.

  • date  optional

    Game day in US Eastern time (YYYY-MM-DD). Defaults to today when no team or season is given.

  • team  optional

    Team id, abbreviation or name (e.g. BOS): that team's games in the season.

  • season  optional

    Season, as the year it starts (2026 = 2026-27). Defaults to the current season. On its own, returns the whole season.

  • season_type  optional

    Only games of this part of the season.

  • status  optional

    Only games with this status.

  • game_id  optional

    Return one game.

  • limit  optional Premium only

    Games per page (1-500). Default 50.

  • offset  optional

    Games to skip, for paging. Default 0.

Headers

  • X-Api-Key  required

    API Key associated with your account.

Response

The /v1/sportsgames endpoint returns a JSON array of games in start order, or an error.

  • game_id

    Unique id of the game, e.g. nba-20261022-cle-phi. It never changes, even when a game is moved to another date.

  • league

    nfl, nba or nhl.

  • season

    Season, as the year it starts: 2026 is the 2026 NFL season and the 2026-27 NBA and NHL seasons.

  • season_label

    Display form of the season, e.g. 2026 or 2026-27.

  • season_type

    preseason, regular, cup_final (the NBA Cup championship game, which does not count in the standings), play_in (NBA) or postseason.

  • week

    NFL only: week of the season.

  • date

    Game day in US Eastern time (YYYY-MM-DD). A late game that starts after midnight UTC keeps its US date.

  • start_time

    Scheduled start in UTC (ISO 8601).

  • status

    scheduled, in_progress, final, postponed, canceled, suspended or delayed.

  • status_detail Premium only

    During a game: halftime, end_of_period or intermission (NHL), otherwise null. While a game is in progress, the free plan sees This field is for premium subscribers only.

  • period Premium only

    Current 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.

  • clock Premium only

    Time left in the current period while the game is in progress, e.g. 5:33. The free plan sees This field is for premium subscribers only.

  • home_team, away_team

    The teams: team_id, name and abbreviation, 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 own team_id.

  • home_score, away_score Premium only

    Current or final score; null before the game starts. While a game is in progress, the free plan sees This field is for premium subscribers only.

  • period_scores Premium only

    Points or goals per period for home and away, including each overtime period. NHL shootout goals are not period goals: a shootout win shows in the final score and in decided_in. While a game is in progress, the free plan sees This field is for premium subscribers only.

  • decided_in

    For final games: regulation, overtime or shootout (NHL).

  • winner

    team_id of the winner once the game is final; null before that and for a tie.

  • venue

    Where the game is played: name, city, state and country (ISO 3166-1 alpha-2).

  • neutral_site

    true when neither team is at home, e.g. international games and the Super Bowl.

  • original_date

    For a game moved to another date: the date it was first scheduled for. Otherwise null.

  • updated_at

    When any field of the game last changed (UTC).

Live Demo

Live demo · no API key required
Query parameters
league
date
team
season
season_type
status
game_id
limit
offset

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/sportsgames?league=nba
Sample response
[
{
"game_id": "nba-20261022-cle-phi",
"league": "nba",
"season": 2026,
"season_label": "2026-27",
"season_type": "regular",
"date": "2026-10-22",
"start_time": "2026-10-22T23:00:00Z",
"status": "final",
"status_detail": null,
"period": 4,
"clock": null,
"home_team": {
"team_id": "nba-phi",
"name": "Philadelphia 76ers",
"abbreviation": "PHI"
},
"away_team": {
"team_id": "nba-cle",
"name": "Cleveland Cavaliers",
"abbreviation": "CLE"
},
"home_score": 114,
"away_score": 106,
"period_scores": {
"home": [
18,
27,
37,
32
],
"away": [
35,
34,
21,
16
]
},
"decided_in": "regulation",
"winner": "nba-phi",
"venue": {
"name": "Xfinity Mobile Arena",
"city": "Philadelphia",
"state": "PA",
"country": "US"
},
"neutral_site": false,
"original_date": null,
"updated_at": "2026-10-23T03:14:02Z"
}
]

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

  • league  required

    nfl, nba or nhl.

  • season  optional

    Season, as the year it starts. Defaults to the current season.

  • conference  optional

    Only this conference, e.g. AFC, Eastern.

  • division  optional

    Only this division, e.g. AFC East, Atlantic.

Headers

  • X-Api-Key  required

    API 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_label

    League and season of the table.

  • team

    team_id, name and abbreviation, named as they were that season.

  • conference, division

    The team's conference and division that season, including temporary alignments such as the NHL's 2020-21 divisions (when conference is null).

  • games_played, wins, losses

    Record.

  • ties

    NFL only.

  • ot_losses, points, point_pct, regulation_wins

    NHL only: overtime and shootout losses, standings points, points percentage and regulation wins.

  • win_pct, games_behind

    NFL and NBA: winning percentage and games behind the division leader.

  • points_for, points_against, point_differential

    NFL and NBA.

  • goals_for, goals_against, goal_differential

    NHL.

  • streak

    Current streak, e.g. W2 or L1.

  • home_record, away_record

    Home and road records, e.g. 4-1 (NHL: wins-losses-overtime losses).

  • division_record, conference_record

    NFL and NBA: records against division and conference opponents.

  • last_10

    NBA and NHL: record over the last 10 games.

  • league_rank, conference_rank, division_rank

    Rank in the league, conference and division. In the NFL and NBA, conference_rank is the playoff seed.

  • wildcard_rank, clinched

    NHL only: wild-card position and the clinching indicator the league publishes.

  • final

    true once the regular season is over and the table no longer changes.

Live Demo

Live demo · no API key required
Query parameters
league
season
conference
division

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/sportsstandings?league=nba
Sample response
[
{
"league": "nba",
"season": 2026,
"season_label": "2026-27",
"team": {
"team_id": "nba-phi",
"name": "Philadelphia 76ers",
"abbreviation": "PHI"
},
"conference": "Eastern",
"division": "Atlantic",
"games_played": 2,
"wins": 2,
"losses": 0,
"win_pct": 1,
"games_behind": 0,
"points_for": 220,
"points_against": 206,
"point_differential": 14,
"streak": "W2",
"home_record": "1-0",
"away_record": "1-0",
"division_record": "1-0",
"conference_record": "2-0",
"last_10": "2-0",
"league_rank": 1,
"conference_rank": 1,
"division_rank": 1,
"final": false
}
]

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

  • league  optional

    Only this league. Without it, every league is listed.

  • team  optional

    Team id, abbreviation or name (e.g. BOS): return one team.

  • conference  optional

    Only teams in this conference.

  • division  optional

    Only teams in this division.

  • active  optional

    false lists former teams that appear in past seasons.

Headers

  • X-Api-Key  required

    API Key associated with your account.

Response

The /v1/sportsteams endpoint returns a JSON array of teams, or an error.

  • team_id

    Unique id, e.g. nba-bos. Use it, the abbreviation or the name in other endpoints.

  • league, abbreviation, name, nickname, city

    Identity of the team.

  • conference, division

    Current conference and division.

  • venue

    Home venue: name, city, state, country.

  • active

    false for teams that have since moved, such as the Oakland Raiders, New Jersey Nets or Atlanta Thrashers, which still appear in past seasons.

Live Demo

Live demo · no API key required
Query parameters
league
team
conference
division
active

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/sportsteams?league=nba
Sample response
[
{
"team_id": "nba-bos",
"league": "nba",
"abbreviation": "BOS",
"name": "Boston Celtics",
"nickname": "Celtics",
"city": "Boston",
"conference": "Eastern",
"division": "Atlantic",
"venue": {
"name": "TD Garden",
"city": "Boston",
"state": "MA",
"country": "US"
},
"active": true
}
]

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.

  • league  optional

    nfl, nba or nhl.

  • team  optional

    Team id, abbreviation or name: that team's current roster.

  • name  optional

    Full or partial player name. Case and accents are ignored.

  • player_id  optional

    Return one player.

  • position  optional

    Only this position, e.g. G.

  • limit  optional Premium only

    Players per page (1-500). Default 50.

  • offset  optional

    Players to skip, for paging. Default 0.

Headers

  • X-Api-Key  required

    API 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_id

    Unique id, e.g. nba-p-8f12176c56. It stays the same when a player changes teams.

  • team

    Current team (team_id, name, abbreviation), or null when the player is on no roster.

  • name, first_name, last_name

    Player name.

  • position, jersey_number

    Position abbreviation and jersey number.

  • height_in, height_cm, weight_lb, weight_kg

    Height and weight.

  • birth_date, birth_place

    Date of birth and birthplace (city, state, country).

  • roster_status

    active, reserve (NFL injured reserve and similar lists), practice_squad (NFL), suspended, or not_on_roster.

  • college, experience_years

    NFL and NBA: college and years of professional experience.

  • shoots_catches

    NHL only: L or R.

Live Demo

Live demo · no API key required
Query parameters
league
team
name
player_id
position
limit
offset

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/sportsplayers?league=nba&team=BOS
Sample response
[
{
"player_id": "nba-p-8f12176c56",
"league": "nba",
"team": {
"team_id": "nba-bos",
"name": "Boston Celtics",
"abbreviation": "BOS"
},
"name": "Jayson Tatum",
"first_name": "Jayson",
"last_name": "Tatum",
"position": "F",
"jersey_number": "0",
"height_in": 80,
"height_cm": 203,
"weight_lb": 224,
"weight_kg": 102,
"birth_date": "1998-03-03",
"birth_place": {
"city": "Saint Louis",
"state": "MO",
"country": "US"
},
"roster_status": "active",
"college": "Duke",
"experience_years": 10
}
]

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

  • 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.
  • Sign up for a free account to instantly get your API key, then pass it in the X-Api-Key header on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.
  • 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.
  • 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.
  • The NFL, NBA and NHL: schedules, live and final scores, standings, teams and rosters, with the same endpoints and fields for every league. League guides: NFL API, NBA API, NHL API.
  • 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.
  • The free plan covers the current season. Developer plans add the three previous seasons, and the Business tier and above gets every stored season. The season parameter is the year a season starts: 2026 is the 2026 NFL season and the 2026-27 NBA and NHL seasons.
  • No. A game_id such as nba-20261022-cle-phi is assigned once and never changes. If a game moves to another day, date and start_time update and original_date keeps the day it was first scheduled for.
  • 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.

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.