Every data feed, disclosed
Our models are only as good as the data feeding them. Here's every source we use, how often we pull from it, and for which sport. No hidden feeds.
The Odds APIPaid
the-odds-api.com
Live odds across 40+ sportsbooks (moneyline, spread, total, props, alt markets)
NBAMLBCBBCFBNFL
Every 10 min pre-game, every 2 min in-game
NBA Stats APIFree
stats.nba.com
Team efficiency, player stats, rotation minutes, schedule, injuries
NBA
Overnight + morning pull
MLB Stats APIFree
statsapi.mlb.com
Pitcher splits, lineup data, schedule, umpire assignments, weather stubs
MLB
Morning + lineup-drop + hourly during games
Baseball SavantFree
baseballsavant.mlb.com
Statcast pitch-level data, TTO splits, first-inning ERA, park factors
MLB
Daily CSV downloads
CollegeBasketballData.comFree
collegebasketballdata.com
Team pace, efficiency, schedule, conference standings, D1 team data
CBB
Daily
CollegeFootballData.comFree
collegefootballdata.com
CFB stats, recruiting rankings, FPI, advanced team metrics
CFB
Daily during season
nflverseFree
github.com/nflverse
NFL play-by-play, player stats, roster data, schedule
NFL
Weekly + post-game
OpenWeatherMapFree
openweathermap.org
Weather forecasts for outdoor games (MLB, NFL, CFB)
MLBNFLCFB
Hourly pre-game
ESPN APIFree
espn.com
Schedule cross-reference, result validation, injury news backfill
NBAMLBCBBCFBNFL
Daily
Basketball-ReferenceFree
basketball-reference.com
Historical NBA backfill, playoff matchup history
NBA
Backfill only
Pro Football ReferenceFree
pro-football-reference.com
Historical NFL data, ATS/situational records
NFL
Backfill only
UmpScoresFree
umpscores.com
MLB umpire K%, BB%, runs-per-game tendencies
MLB
Weekly
Freshness
Caching & freshness
We pull from external APIs on a schedule — never at user request. Every data read goes through our cache (Upstash Redis). This means pages load fast, API costs stay predictable, and no upstream provider sees traffic from individual users.
Odds:Every 10 min pre-game, 2 min in-game
Schedules:Morning refresh + lineup-drop for MLB
Team/player stats:Overnight after results settle
Historical data:Cached permanently, versioned
Weather:Hourly before outdoor games
Out of scope
What we don't use
No scraped sportsbook data without authorization
No proprietary feeds from individual bettors or "insiders"
No pay-to-play "tipster" feeds
No paid public betting percentage data (accuracy is too inconsistent)
Reliability
API changes & drift
Unofficial APIs (NBA Stats, etc.) can change without notice. We monitor schema drift automatically and log every data-source failure. When something breaks, we disclose it in our public changelog →