nflreadpy
A Python package for downloading NFL data from nflverse repositories
What it is and what it does
nflreadpy is a Python package that fetches NFL data from nflverse repositories and returns it as Polars DataFrames. It wraps access to multiple data sources—play-by-play records, player and team statistics, rosters, schedules, draft picks, injury reports, and fantasy football metrics—with built-in caching (memory or filesystem), progress tracking via tqdm, and configurable timeouts. The package uses requests for HTTP downloads, pydantic for configuration validation, and platformdirs for cache directory management.
You use it by calling functions like load_pbp(), load_player_stats(), or load_team_stats() with optional season parameters, and receive Polars DataFrames that can be converted to pandas if needed. Configuration is available via environment variables or programmatic calls to update_config(). The package is designed as a Python port of the R package nflreadr, so it follows similar naming and API conventions.
Use it for:
- Fetch historical play-by-play data for a season to analyze game patterns and drive efficiency.
- Load player stats across multiple seasons to build a dataset for fantasy football projections.
- Retrieve current rosters and depth charts to track roster composition changes over time.
- Download combine results and draft picks for scouting or historical analysis.
- Cache NFL schedules and injury reports locally to power a dashboard or analytics application.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Downloads and caches NFL data from nflverse repositories into Polars DataFrames, providing access to play-by-play, player stats, team stats, rosters, schedules, and other NFL analytics datasets.
Yes, if you work with NFL data. The package is actively maintained, has low install friction, carries a permissive MIT license, and provides a straightforward API to multiple authoritative nflverse data sources. The Beta status and recent release history (first release September 2025, latest November 2025) suggest it is still stabilizing; verify that the specific load functions you need are fully implemented and stable in your target version.
Install
nflreadpy on PyPI
pip
pip install nflreadpyuv
uv add nflreadpypoetry
poetry add nflreadpyInstalling nflreadpy
Before you install
Low install friction with a pure-Python wheel and six well-maintained runtime dependencies. The package is actively maintained with recent commits and is in Beta status, indicating ongoing development and refinement.
License in practice
MIT license permits unrestricted use, modification, and distribution. Note that the underlying NFL data from nflverse repositories carries its own licenses (CC-BY 4.0 for most data, CC-BY-SA 4.0 for FTN data), which may impose attribution or share-alike requirements on derived works.
Quickstart
pip install nflreadpy
import nflreadpy as nfl
# Load current season play-by-play data
pbp = nfl.load_pbp()
# Convert to pandas if needed
pbp_pandas = pbp.to_pandas()
Requires Python 3.10 or later. Underlying nflverse data sources must be accessible (requires internet connectivity).
Verify before relying
- Whether the caching system (memory or filesystem) is suitable for large datasets without performance degradation.
- Actual data freshness guarantees and update frequency for each data source.
- Whether all 22 documented load functions are fully implemented and stable in version 0.1.5.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — requests, polars, platformdirs, tqdm, pydantic, pydantic-settings |
| Maintenance | actively maintained — 268 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 85,482/month — #13,920 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nflreadpy-0.1.5-py3-none-any.whl
Keywords: nfl, football, sports, data, analytics
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
espn-apiExtracts league, team, and player data from…
permissive · top 15,000 on PyPI
nfl-data-pyImports NFL play-by-play, weekly, seasonal,…
permissive · top 15,000 on PyPI
statsbombpyStreams StatsBomb football analytics data into…
unclear · top 15,000 on PyPI
nba_apinba_api provides Python access to NBA.com's…
permissive · top 15,000 on PyPI
MLB-StatsAPIProvides Python access to MLB's Stats API,…
copyleft · top 15,000 on PyPI
pybaseballScrapes baseball data from Baseball Reference,…
permissive · top 15,000 on PyPI
fastf1FastF1 provides Python access to Formula 1…
permissive · top 5,000 on PyPI
pypistatsQueries the PyPI Stats API to retrieve download…
permissive · top 15,000 on PyPI
fr24fr24 retrieves real-time and historical flight…
permissive · top 15,000 on PyPI
stats-canFetches Statistics Canada data through the Web…
copyleft · top 15,000 on PyPI