← All findingssource · memory/reference_nba_summer_league_stats.md
Verified 2026-07-08 that stats.nba.com serves NBA Summer League data through
sport-data-service's EXISTING NBA path — same residential proxy (PROXY_SERVER/
USERNAME/PASSWORD) + same setStatsNBAHeaders (players_refresh.go:355). Only the
LeagueID (and Season format) change vs regular NBA.
Summer League LeagueIDs (all HTTP 200, real rows):
- 13 = California Classic (Sacramento) —
Season=2026, 116 players (SAC/BKN/MIA/LAL/GWB). - 16 = Salt Lake City —
Season=2026, 61 players. Cross-validated to the DECIMAL against ESPN boxscores (Darryn Peterson UTA 26.5/3.5/7.0 both sources; Coward/Boozer/Ejiofor all match). - 15 = Las Vegas (the classic SL id, all 30 teams). Season = the stint's calendar year, SAME as
13/16: use
Season=2026for the 2026 edition. It returned 0 player rows on 2026-07-08 ONLY because leaguedashplayerstats aggregates PLAYED games and Vegas 2026 hadn't tipped (first games 2026-07-09; ESPN showed all 7 as Scheduled).Season=2025-26pulls LAST year's Vegas — verified via leaguegamelog: games dated 2025-07-10..2025-07-20 (152 team-games). So 0-rows = "not started", not a format problem;Season=2026populates once games go final. - 00 = regular NBA (control). LeagueID=10 is WNBA (separate).
THE GOTCHA (cost an hour 2026-07-08): a bare curl to stats.nba.com HANGS forever
(HTTP 000, CONNECT+TLS succeed, response never returns) if you omit the two required
headers x-nba-stats-origin: stats + x-nba-stats-token: true. It is NOT the proxy and
NOT the LeagueID — the proxy (static Smartproxy exit 104.234.48.x) tunnels fine; ipify egress
= proxy IP. Adding the full setStatsNBAHeaders set → instant HTTP 200 <1s. Always replicate
the production header block, not just Referer/User-Agent.
Endpoints confirmed: leaguedashplayerstats?...&LeagueID=13&Season=2026&SeasonType=Regular+Season&PerMode=PerGame&MeasureType=Base
(per-player season stats). scoreboardv3 works with LeagueID too.
Alternative source (no proxy, verified): ESPN site API by stint slug —
nba-summer-utah (Salt Lake), nba-summer-las-vegas (Vegas), nba-summer-sacramento
(older). /scoreboard?dates=YYYYMMDD-YYYYMMDD + /summary?event=<id> gives full per-player
boxscores (MIN/PTS/FG/3PT/FT/REB/AST/TO/STL/BLK/+-). Good fallback / cross-check.
Odds: The Odds API sport key basketball_nba_summer_league is LIVE (game lines h2h/spreads/
totals across ~4-5 books for the 2026-07-09 Vegas slate); NO player props posted yet as of 7/8.
odds-service would need this key added to LEAGUE_SPORT_KEYS + the league to ODDS_ACTIVE_LEAGUES.