nhlapi
A minimum-dependency R interface to the NHL API.
{nhlapi}
is an R package that provides functionality to retrieve and process the data exposed by the open NHL API. This includes information on players, teams, games, tournaments, drafts, standings, schedules and other endpoints. A lower-level interface to access the data via URLs directly is also provided. See below for a full list of endpoints.
Installation
You can install {nhlapi}
from CRAN:
install.packages("nhlapi")
You can also install the latest development version from the master branch on GitHub using the {remotes}
or {devtools}
packages:
# With remotes
remotes::install_github("jozefhajnala/nhlapi")
# Or with devtools
devtools::install_github("jozefhajnala/nhlapi")
Use and develop with Docker
The Docker image jozefhajnala/nhlapi has RStudio and a set of useful packages for both interactive use of the {nhlapi}
package and its development.
Running the following command and opening localhost:8787
in a web browser should open RStudio with a setup ready for analysis and development. Login user is rstudio
and password is pass
:
# Password can be changed by changing the PASSWORD option below:
# If you need root permissions, add `-e ROOT=true`
docker run --rm -p 8787:8787 -e PASSWORD=pass jozefhajnala/nhlapi
Usage
We retrieve the data from the NHL API by calling the functions exported by the {nhlapi}
package. They start with nhl_
so you can easily find them with auto-complete in your favorite editor:
In-depth look at use
The package's vignettes provide a more detailed overview of some of the functionality:
- Low Level NHL API vignette
- High-level teams API vignette
- High-level players API vignette
- Full reference manual on CRAN (pdf)
Implemented API endpoints
Major endpoints
-
Teams
- Team Metadata
nhl_teams()
- Team Rosters
nhl_teams_rosters()
- Team Schedules
nhl_teams_shedule_next()
,nhl_teams_shedule_previous()
- Team Stats
nhl_teams_stats()
- Team Metadata
-
People (Players)
- Players metadata
nhl_players
- Players season/playoff stats
nhl_players_seasons()
- Players all season stats
nhl_players_allseasons()
- Players metadata
-
Games
- Games content
nhl_games_content()
- Games full live feed
nhl_games_feed()
- Games box score info
nhl_games_boxscore()
- Games line score info
nhl_games_linescore()
- Games content
-
Tournaments
- Playoffs
nhl_tournaments_playoffs()
- Olympics
nhl_tournaments_olympics()
- World Cups
nhl_tournaments_worldcups()
- Playoffs
-
Schedule
- Generic API with all parameters
nhl_schedule()
- Today
nhl_schedule_today()
- Custom seasons
nhl_schedule_seasons()
- Custom date ranges
nhl_schedule_date_range()
- Generic API with all parameters
-
Standings
nhl_standings()
Minor endpoints
- Divisions
nhl_divisions()
- Conferences
nhl_conferences()
- Drafts
nhl_drafts()
- Seasons
nhl_seasons()
- Awards
nhl_awards()
- Venues
nhl_venues()
- Draft prospects
nhl_draft_prospects()
Metadata endpoints
- Game Types
nhl_md_game_types()
- Game Statuses
nhl_md_game_statuses()
- Play Types
nhl_md_play_types()
- Tournament Types
nhl_md_tournament_types()
- Standings Types
nhl_md_standings_types()
- Stats Types
nhl_md_stat_types()
- Event Types
nhl_md_event_types()
Acknowledgments
Thanks go to Drew Hynes for documenting this so well on GitLab.
Copyright message
NHL and the NHL Shield are registered trademarks of the National Hockey League. NHL and NHL team marks are the property of the NHL and its teams. © NHL 2021. All Rights Reserved.