A Python client library for interacting with NHL APIs, providing easy access to player statistics, team information, schedules, and more.
- Player Data: Access active and historical player information
- Statistics: Get skater and goalie statistics with flexible filtering
- Team Information: Retrieve team rosters, stats, and schedules
- Game Data: Access game schedules and results
- Easy to Use: Simple, intuitive API with comprehensive documentation
pip install edgeworkfrom edgework import Edgework
# Initialize the client
client = Edgework()
# Get active players
players = client.players(active_only=True)
print(f"Found {len(players)} active players")
# Get top scorers
top_scorers = client.skater_stats(
season="2023-2024",
sort="points",
limit=10
)
for player in top_scorers:
print(f"{player.name}: {player.points} points")Full documentation is available at: https://problemxl.github.io/edgework/
To view documentation locally:
# Install documentation dependencies
pip install mkdocs mkdocs-material mkdocstrings[python] pymdown-extensions
# Serve documentation locally
mkdocs serve
# Or use the helper script
python docs.py serveThe documentation will be available at http://127.0.0.1:8000/edgework/
from edgework import Edgework
client = Edgework(user_agent="MyApp/1.0") # Optional custom user agentclient.players(active_only=True)- Get player listclient.skater_stats(season, ...)- Get skater statisticsclient.goalie_stats(season, ...)- Get goalie statistics
client.team_stats(season, ...)- Get team statisticsclient.get_teams()- Get all teamsclient.get_roster(team_code, season)- Get team roster
client.get_schedule()- Get current scheduleclient.get_schedule_for_date(date)- Get schedule for specific dateclient.get_schedule_for_date_range(start, end)- Get schedule for date range
# Clone the repository
git clone https://github.com/problemxl/edgework.git
cd edgework
# Install development dependencies
pdm install --dev
# Or using pip
pip install -e .pytest# Install documentation dependencies
pip install mkdocs mkdocs-material mkdocstrings[python] pymdown-extensions
# Build documentation
mkdocs build
# Serve locally
mkdocs servefrom edgework import Edgework
client = Edgework()
# Get assists leaders
assist_leaders = client.skater_stats(
season="2023-2024",
sort="assists",
limit=10
)
# Get goalie wins leaders
goalie_wins = client.goalie_stats(
season="2023-2024",
sort="wins",
limit=5
)# Get team statistics
team_stats = client.team_stats(season="2023-2024")
# Get team roster
team = team_stats[0] # First team
roster = team.get_roster()
print(f"Roster for {team.name}:")
print(f"Forwards: {len(roster.forwards)}")
print(f"Defensemen: {len(roster.defensemen)}")
print(f"Goalies: {len(roster.goalies)}")All season parameters should use the format "YYYY-YYYY":
"2023-2024"for the 2023-2024 season"2022-2023"for the 2022-2023 season
Contributions are welcome! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Please be respectful of the NHL's servers:
- Implement appropriate delays between requests
- Cache responses when possible
- Handle errors gracefully
- NHL for providing the API data
- Contributors and maintainers
- The Python community
- π Documentation
- π Issues
- π¬ Discussions
Made with β€οΈ for the hockey community