{"id":1377,"url":"https://github.com/JovaniPink/awesome-nba-data","name":"awesome-nba-data","description":"Curated NBA data sources, APIs, analytics tools, learning resources, and metric explainers.","projects_count":45,"last_synced_at":"2026-09-19T10:00:19.599Z","repository":{"id":101823074,"uuid":"324619194","full_name":"JovaniPink/awesome-nba-data","owner":"JovaniPink","description":"Curated NBA data sources, APIs, analytics tools, learning resources, and metric explainers.","archived":false,"fork":false,"pushed_at":"2026-09-07T00:25:42.000Z","size":76,"stargazers_count":36,"open_issues_count":2,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-09-13T00:05:37.655Z","etag":null,"topics":["awesome-list","basketball","datasets","nba","nba-data","open-data","sports-analytics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JovaniPink.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-26T19:11:46.000Z","updated_at":"2026-09-07T00:25:46.000Z","dependencies_parsed_at":"2024-01-07T01:28:38.925Z","dependency_job_id":"60a48f8a-eb0e-47f6-9f19-b48285233873","html_url":"https://github.com/JovaniPink/awesome-nba-data","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JovaniPink/awesome-nba-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JovaniPink%2Fawesome-nba-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JovaniPink%2Fawesome-nba-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JovaniPink%2Fawesome-nba-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JovaniPink%2Fawesome-nba-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JovaniPink","download_url":"https://codeload.github.com/JovaniPink/awesome-nba-data/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JovaniPink%2Fawesome-nba-data/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":341189360,"owners_count":37474580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-19T02:00:07.094Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-04T17:50:06.864Z","updated_at":"2026-09-19T10:00:19.600Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Data Analysis Libraries \u0026 Tools","Official \u0026 League Data","Official Sites","NBA Analysis and Stats Sites","Analytics \u0026 Advanced Metrics Sites","Legacy / Archived (still useful)","YouTube Channels","Advanced Stats Explained","APIs \u0026 Open Data","YouTube \u0026 Learning","Licensed Production Feeds"],"sub_categories":[],"readme":"# Awesome NBA Data \u0026 Stats [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n\u003e A curated list of up-to-date NBA data sources, analytics sites, APIs, tools, and explainers. Each item includes a short description and a reliable URL.\n\nCatalog structure reviewed: August 2026.\n\nCatalog entries present on August 13, 2026, were reviewed on that date. Later additions carry\ntheir own `reviewed_at` dates in the dated [source audit](docs/source-audit.tsv), which records URL\nbehavior and access classification. The [source matrix](docs/source-matrix.md) keeps programmatic\ncoverage and use constraints separate from link availability. A responding URL is not permission\nto collect, store, model, or republish its data.\n\nThe [machine-readable resource index](catalog/resources.v1.json) assigns stable public identifiers while preserving the catalog boundary: inclusion is curation, not endorsement, permission, maintenance proof, or model fitness proof. The index uses schema version 1.1 and retains unknown access and source authority until reviewed evidence is supplied. See the [resource index contract](docs/knowledge-resource-index.md) before using an entry in a model or lab.\n\n## Contents\n\n- [Official \u0026 League Data](#official--league-data)\n- [Analytics \u0026 Advanced Metrics Sites](#analytics--advanced-metrics-sites)\n- [APIs \u0026 Open Data](#apis--open-data)\n- [Licensed Production Feeds](#licensed-production-feeds)\n- [YouTube \u0026 Learning](#youtube--learning)\n- [Data Analysis Libraries \u0026 Tools](#data-analysis-libraries--tools)\n- [Advanced Stats Explained](#advanced-stats-explained)\n- [Legacy / Archived (still useful)](#legacy--archived-still-useful)\n\n---\n\n## Official \u0026 League Data\n\nAbout this section: Official league-operated sites. Best sources for box scores, play-by-play, tracking summaries, rules/officiating and press releases.\n\n- [NBA.com](https://www.nba.com/) - Official league site for scores, schedules, standings, news, and video; use remains subject to NBA terms.\n- [NBA Stats (stats.nba.com)](https://www.nba.com/stats/) - Official stats portal for box scores, play-by-play, shooting, tracking summaries, lineups, and Hustle data; it is not a published bulk-data license.\n- [NBA Official (Officiating Hub)](https://official.nba.com/) - Official rulebook, Coach's Challenge, and Last Two Minute report hub.\n- [NBA Communications](https://pr.nba.com/) - Official press releases for transactions, awards, schedule changes, and league announcements.\n- [NBA Injury Report: 2025-26 Season](https://official.nba.com/nba-injury-report-2025-26-season/) - Official, season-specific reports containing participation statuses and stated reasons that teams update throughout reporting windows; this changing web reference is not a historical bulk-data API.\n- [NBA Player Transactions](https://www.nba.com/players/transactions) - Official filterable transaction reference for signings, waivers, trades, and other roster moves; the public page does not establish a documented bulk-data license.\n\n## Analytics \u0026 Advanced Metrics Sites\n\nHigh-signal analytics destinations and dashboards (some paid). Great for impact metrics, lineup analysis, and specialty views.\n\n- [Basketball-Reference](https://www.basketball-reference.com/) - Unofficial historical reference for player, team, season, and game pages; automated reuse is governed by Sports Reference's data-use policy.\n- [Stathead (Sports-Reference)](https://stathead.com/basketball/) - Paid research queries for player, team, game, streak, and split analysis.\n- [ESPN NBA Stats](https://www.espn.com/nba/stats) - Unofficial league-wide player and team leaderboards with sortable tables.\n- [Cleaning the Glass](https://cleaningtheglass.com/) - Paid analytics that filter garbage time and provide team, player, and lineup views.\n- [Dunks \u0026 Threes - EPM](https://dunksandthrees.com/epm) - Derived Estimated Plus-Minus and team-rating leaderboards with a public methodology page.\n- [BBall Index - LEBRON](https://www.bball-index.com/lebron-database/) - Derived role, skill, and LEBRON tooling with a mix of public and paid access.\n- [PBP Stats](https://www.pbpstats.com/) - Derived on-off, WOWY, lineup, and possession views with a subscriber API.\n- [NBAstuffer](https://www.nbastuffer.com/) - Aggregated dashboards, pace/strength-of-schedule, lineup tools, and analytics guides.\n- [Inpredictable](https://www.inpredictable.com/) - Win probability models and tempo/variance research for NBA and other sports.\n- [82Games](https://www.82games.com/) - Lineup, five-player-unit, on/off, physicality, and game-analysis archives with current-season research.\n- [Crafted NBA](https://craftednba.com/) - Player/team dashboards and meta-metrics (DARKO, DRIP, LEBRON, RAPTOR, CraftedPM), comparisons, and roles.\n- [NBA RAPM (nbarapm.com)](https://www.nbarapm.com/) - Career and rolling **RAPM** plus cross-metric peak summaries.\n\n## APIs \u0026 Open Data\n\nProgrammatic discovery and research tools. An open client or reachable endpoint does not grant\nrights to the upstream data.\n\n- [nba_api](https://github.com/swar/nba_api) - Unofficial MIT-licensed Python client for NBA.com endpoints; upstream schemas and endpoints change without a public stability contract.\n- [hoopR](https://hoopr.sportsdataverse.org/) - Open-source R package and bulk loaders for men's basketball data, including NBA play-by-play releases from 2002 onward.\n- [sportsdataverse-py](https://py.sportsdataverse.org/) - Open-source Python package for NBA schedules, play-by-play, box scores, rosters, and related source wrappers.\n- [pbpstats](https://github.com/dblackrun/pbpstats) - Open-source parser that derives possessions, lineups, and shot-zone context from NBA, WNBA, and G League play-by-play.\n- [PBP Stats API Docs](https://api.pbpstats.com/docs) - Paid API documentation for derived possession, lineup, on-off, and WOWY data.\n- [BALLDONTLIE NBA API](https://docs.balldontlie.io/) - API-key service with free teams, players, and games; statistics, play-by-play, lineups, injuries, and odds require paid tiers.\n- [Kaggle - NBA Datasets](https://www.kaggle.com/search?q=NBA+dataset) - Community dataset index where provenance, license, coverage, and correction behavior must be checked per dataset.\n\n## Licensed Production Feeds\n\nCommercial feeds whose contract, purchased products, and approved purpose determine permitted use.\n\n- [Sportradar NBA API](https://developer.sportradar.com/basketball/docs/nba-ig-api-basics) - Licensed B2B NBA feeds with schedules, rosters, statistics, play-by-play, change logs, and provider identifiers.\n- [SportsDataIO NBA API](https://sportsdata.io/developers/api-documentation/nba) - Commercial NBA feeds for scores, statistics, play-by-play, injuries, projections, and betting data with subscription-specific access.\n\n## YouTube \u0026 Learning\n\n- [Thinking Basketball](https://www.youtube.com/ThinkingBasketball) - Film + stats breakdowns, metric explainers, historical series.\n- [The Athletic (NBA)](https://www.youtube.com/channel/UCCl9GMgbh3IbMwyMcU3YLjA) - Reporting and analysis.\n- [Hoops Tonight](https://www.youtube.com/channel/UCw8h_jH2gB20wcZTJiaQNCA) - Analytics, history, and film breakdowns.\n\n## Data Analysis Libraries \u0026 Tools\n\n- [Polars](https://pola.rs/) - Open-source DataFrame engine suited to typed, lazy transformations over Parquet and other analytical formats.\n- [DuckDB](https://duckdb.org/) - Open-source analytical database for local SQL over Parquet and reproducible research snapshots.\n- [Basketball Reference Web Scraper](https://github.com/jaebradley/basketball_reference_web_scraper) - Unofficial Python scraper retained for legacy research; Sports Reference policy review is required before automated use.\n\n## Advanced Stats Explained\n\n- [PER - Player Efficiency Rating](https://en.wikipedia.org/wiki/Player_efficiency_rating) - Overview of John Hollinger's pace-adjusted box-score summary metric.\n- [Win Shares](https://www.basketball-reference.com/about/ws.html) - Basketball-Reference methodology for allocating estimated team wins to players.\n- [VORP - Value Over Replacement Player](https://en.wikipedia.org/wiki/Value_over_replacement_player) - Overview of the box-score estimate of points contributed relative to a replacement player.\n- [BPM - Box Plus/Minus](https://www.basketball-reference.com/about/bpm2.html) - Basketball-Reference methodology for estimating player contribution per 100 possessions from box-score data.\n- [TS% - True Shooting Percentage](https://en.wikipedia.org/wiki/True_shooting_percentage) - Overview of scoring efficiency that incorporates field goals, three-pointers, and free throws.\n- [eFG% - Effective Field Goal Percentage](https://www.breakthroughbasketball.com/stats/effective-field-goal-percentage.html) - Explanation of field-goal percentage adjusted for the added value of three-pointers.\n- [Net Rating](https://www.bball-index.com/is-net-rating-still-king/) - Discussion of team or lineup point differential per 100 possessions and its limitations.\n- [RAPTOR - Intro and Method](https://fivethirtyeight.com/features/introducing-raptor-our-new-metric-for-the-modern-nba/) - Archived FiveThirtyEight explainer for its historical player-impact model.\n- [EPM - Estimated Plus-Minus Methodology](https://dunksandthrees.com/about/epm) - Dunks \u0026 Threes methodology for its player-impact estimate.\n- [LEBRON - Metric Introduction](https://www.bball-index.com/lebron-introduction/) - Basketball Index introduction to its player-impact metric and design goals.\n\n## Legacy / Archived (still useful)\n\nHistorical or lower-activity resources - good references, but not always current.\n\n- [FiveThirtyEight NBA](https://fivethirtyeight.com/tag/nba/) - NBA coverage largely archived; RAPTOR explainer still valuable.\n- [Back Picks](https://backpicks.com/) - Ben Taylor's long-form analytics pieces and historical series.\n\n---\n\n## Contributing\n\nSpotted a dead link, better mirror, or a new high-signal resource? Pull requests are welcome. Keep\nadditions current, specific, and non-promotional; see [contributing.md](contributing.md).\n\nBefore opening a pull request, run the dependency-free catalog gate with Python 3.11 or newer:\n\n```sh\npython3 -m unittest discover -s tests -v\npython3 scripts/validate_readme.py README.md\n```\n\nGitHub Actions runs the same checks on Python 3.11 and Python 3.14 for every pull request and push to\n`main`. The validator checks Contents order and anchors, required files, relative links, unique HTTPS\nresource URLs, entry formatting, and exact coverage in the dated source audit. A passing result does\nnot prove permission, maintenance quality, or fit for a particular use; those require the source\nmatrix and an explicit terms review.\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/jovanipink%2Fawesome-nba-data/projects"}