fbdata publishes a transparent baseline and the evidence needed to challenge it: team efficiency, player opportunity, market lines, pace, pressure, coverage and opponent-adjusted ratings, all queryable as they were known on a past date.
| prediction job | start with | why |
|---|---|---|
| Spreads | teams, adjusted, games | net EPA, schedule strength, closing lines and ATS resolution |
| Totals | teams, tendencies, games | pace, pass rate, PF/PA, weather and total-line history |
| Fantasy | passing, rushing, receiving | dropbacks, carries, targets, target share, WOPR and half-PPR |
| Player props | pressure, coverage, receiving | pressure exposure, coverage results, usage and efficiency splits |
| Market agents | prediction API, sources, llms.txt | reproducible baseline, source readiness and low-context discovery |
# team ratings for current modelling
curl '/v1/leaders/adjusted?season=2025&format=json'
# transparent game-level baseline with model version and inputs
curl '/v1/predictions/games?season=2025&week=1'
# what a model would have known before week 10, not what is known today
curl '/v1/leaders/receiving?season=2025&week_min=1&week_max=9&min=40&as_of=2025-11-03T00:00:00Z'
# raw fields when you need feature engineering rather than a board
curl '/v1/query?dataset=pbp&partition=2025&columns=game_id,play_id,posteam,defteam,epa,yards_gained&limit=500'
The rule is simple: if the answer touches a historical decision, pin
as_of. If you omit it, the API marks the response
x-fbdata-point-in-time: false. For live archives, check
/v1/catalog first; its snapshot window tells you which
dates the store can answer.