Skip to content

jaebradley/nba_data

Repository files navigation

NBA Stats Client

Coverage Status Build Status

Introduction

Getting (free) NBA statistics, even the most basic, can be a real pain. Luckily, the NBA Stats API (base uri: http://stats.nba.com/stats/) can provide many of these statistics. This project, and more specifically, this client, serves as an abstraction on top of the NBA Stats API.

Challenges

Unfortunately, the NBA Stats API makes no guarantees about uptime, breaking changes, and does not have much (i.e. any) documentation around it, so identifying all the available endpoints and their implementation is non-trivial.

Thus, due to these contraints this client is only as dependable and consistent as the NBA Stats service.

Additionally, this client is by no means complete, and will be in active development.

Client API Details

Installation

This project is available on PyPi.

To install

pip install nba_data

API Methods

  • get_players_for_season(season, league=League.nba, current_season_only=CurrentSeasonOnly.yes)

  • get_games_for_team(season, team, season_type=SeasonType.regular_season)

  • get_player_info(player_id)

  • get_advanced_box_score(game_id)

API Method Parameters

  • season: A Season enum value. Represents the specific season to query for.
  • league: A League enum value. Generally speaking, will always want to use League.nba.
  • current_season_only: A CurrentSeasonOnly enum value. When yes, disregards the sesaon parameter and returns all players across all seasons
  • season_type: A SeasonType enum value that represents which section of a season to query (regular season, playoffs, etc.)
  • player_id: The unique id that NBA Stats assigns to each player.
  • game_id: The unique id that NBA Stats assigns to each game.

Example Usage

Get Players For Season

from nba_data import Client
from nba_data import CurrentSeasonOnly
from nba_data import Season


def get_players_for_2015_season():
    return Client.get_players_for_season(season=Season.season_2015)


def get_players_for_every_season():
    return Client.get_players_for_season(season=Season.season_2015, current_season_only=CurrentSeasonOnly.no)

Get Games For Team

from nba_data import Client
from nba_data import Season
from nba_data import SeasonType
from nba_data import Team


def get_regular_season_games_for_2015_boston_celtics():
    return Client.get_games_for_team(season=Season.season_2015, team=Team.boston_celtics)


def get_playoff_for_2015_boston_celtics():
    return Client.get_games_for_team(season=Season.season_2015, team=Team.boston_celtics, season_type=SeasonType.playoffs)