The American Football API for developers ballers.
NFL and NCAA football under one API: schedules, play-by-play with EPA and Win Probability on every play, and weekly player stats, built on a decade of nflverse history. Live scores resume for the 2026 NFL season.
1,000 req/day free (2,000 with GitHub). No credit card.
NFL · NCAAF · nflverse historical · 294,989 plays with EPA + WP
The NFL API page focuses on the nflverse surface with field-level docs for plays and weekly stats. See the NFL API →
Stats included
Every football stat field the API returns today — 96 in total, grouped by how they are produced. Each group carries its own freshness, because a sport is rarely uniformly current.
Per-game player stats
Post-gameWritten after the game ends — not a live in-game feed. Last ingested 2026-08-30.
- Endpoint
- /v1/players/:id/stats
- Last updated
- 2026-08-30
Fields (77)
QB Hits, QB Rating, Adjusted QBR, Passes Defended, QB Hurries, Sacks, Solo Tackles, Defensive Touchdowns, Tackles for Loss, Total Tackles, Fumbles, Fumbles Lost, Fumbles Recovered, Interceptions, Interception Return Touchdowns, Interception Return Yards, Kick Return Average, Longest Kick Return, Kick Returns, Kick Return Touchdowns, Kick Return Yards, Field Goals, Longest Field Goal, Field Goal %, Kicking Points, Total Kicking Attempts, Extra Points, Yards per Attempt, Completions/Attempts, Interceptions Thrown, QBR, Passing Touchdowns, Passing Yards, Punt Return Average, Longest Punt Return, Punt Returns, Punt Return Touchdowns, Punt Return Yards, Punting Average, Punts Inside the 20, Longest Punt, Punts, Touchbacks, Punting Yards, Yards per Reception, Longest Reception, Receptions, Receiving Touchdowns, Receiving Yards, Yards per Carry, Carries, Longest Rush, Rushing Touchdowns, Rushing Yards, Completions Passing Attempts, Extra Points Made Extra Point Attempts, Field Goals Made Field Goal Attempts, Gross Average Punt Yards, Hurries, Interception Touchdowns, Interception Yards, Long Field Goal Made, Long Kick Return, Long Punt, Long Punt Return, Long Reception, Long Rushing, Punt Yards, Punts Inside20, Receiving Targets, Rushing Attempts, Sacks/Sack Yards Lost, Total Kicking Points, Yards per Kick Return, Yards per Pass Attempt, Yards per Punt Return, Yards per Rush Attempt
Team stats (per game)
Post-gameWritten after the game ends — not a live in-game feed. Last ingested 2026-08-30.
- Endpoint
- /v1/matches/:id/statistics
- Last updated
- 2026-08-30
Fields (25)
Completions/Attempts, Defensive Touchdowns, First Downs, First Downs (passing), First Downs (penalty), First Downs (rushing), Fourth-Down Efficiency, Fumbles Lost, Interceptions Thrown, Net Passing Yards, Time of Possession, Red Zone Attempts, Rushing Attempts, Rushing Yards, Sacks / Yards Lost, Score, Third-Down Efficiency, Total Drives, Total Offensive Plays, Total Penalties Yards, Total Yards, Turnovers, Yards per Pass, Yards per Play, Yards per Rush Attempt
Not included
- Not shown here — player_per_week_nflverse: nflverse per-week player stats — the same granularity as the primary per-game set, from a second source.
- Not shown here — play_by_play: play-by-play events, not a stat line — mostly identifiers once classified.
- Not shown here — rosters: roster listings — reference data, and no route serves them.
Missing a stat?
We build what people actually ask for. If a field you need is not on this page, tell us — requests are how we decide what to add next.
What you can build
EPA / WP model
Train win-probability and expected-points models on every play in the dataset.
Play-by-play research
Query 294,989 plays with EPA and Win Probability for situational analysis.
Fantasy historical tool
Weekly player stats across seasons for projections and backtests.
Schedule explorer
Season schedules with stadium, surface, and final scores.
Betting backtest engine
Replay historical games against closing lines to validate a model.
Endpoints
On the gateway at api.bigballsdata.com. Authenticate with the bearer token from /dashboard/keys.
| Method | Path | Returns | Plan |
|---|---|---|---|
| GET | /v1/nfl/games?season=2024&week=1 | NFL schedules filtered by season and week | Free |
| GET | /v1/nfl/games/:game_id | Single game with stadium, surface, scores | Free |
| GET | /v1/nfl/games/:game_id/plays | Play-by-play with EPA + Win Probability | Free |
| GET | /v1/nfl/players/:player_id/stats | Weekly player stats (passing, rushing, receiving, PPR) | Free |
| GET | /v1/nfl/players/:player_id/game-log | Per-season chronological game log | Free |
| GET | /v1/standings?sport=american_football&league=nfl | Division + conference standings | Free |
Start on the free tier
100 requests per minute and 1,000 per day, free — the highest per-minute burst of any free sports API we checked. Burst is what matters when something asks several questions in a row and waits on each answer.
- Every sport and league we cover — the paid tiers add history depth and premium fields, not more leagues.
- Calls are counted one for one — no credit weighting, no markets-times-regions arithmetic.
- Link GitHub and the daily cap goes to 2,000.
- No credit card.
Or ask your AI tool directly
Connect your account to Claude, ChatGPT, Cursor, Perplexity or any other MCP-compatible tool and ask for football data in conversation — scores, standings, player stats and Elo ratings, with no API key to paste and no code to write. Your plan and limits carry over exactly as they do here.
Connect your AI tool →Integrate in a few lines
import { BigBallSportsClient } from '@bigballsdata/sdk';
const client = new BigBallSportsClient(process.env.BBS_API_KEY!);
type NflPlay = { posteam: string; play_type: string | null; epa: number | null; wp: number | null };
// Every play of a game, with EPA + win probability.
const plays = await client.get<NflPlay[]>('/v1/nfl/games/2025_01_DAL_PHI/plays');
for (const p of plays.data) {
console.log(p.posteam, p.play_type, 'EPA', p.epa, 'WP', p.wp);
}Free covers a real app. Scale when you need to.
1,000 req/day free (2,000 with GitHub). Production starts at $49/mo. Live WebSocket push on Pro+.
Frequently asked
- Is American football data live right now?
- The NFL is between seasons, so there are no live games today. The nflverse historical surface (schedules, weekly stats, and play-by-play with EPA + Win Probability) is available now; live scores resume for the 2026 season.
- Does it include EPA and Win Probability?
- Yes. /v1/nfl/games/:game_id/plays returns per-play EPA and Win Probability across the six loaded seasons (294,989 plays).
- Does it cover NCAA football?
- NCAAF schedules and records are covered via the college-football surface; the deepest play-level analytics (EPA / WP) are on the NFL nflverse dataset today.
- Is the American football API free?
- Yes. Schedules, weekly stats, play-by-play, and standings on the free tier at 1,000 req/day (2,000 with GitHub), no credit card.
Leagues in this sport
Every league we serve for this sport, each with its own endpoints and coverage.