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-game

Written 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-game

Written 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.

Name the field or the endpoint shape. Specifics help more than categories.

Goes straight to the team as a product signal. No newsletter, no account, nothing else done with your address.

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.

MethodPathReturnsPlan
GET/v1/nfl/games?season=2024&week=1NFL schedules filtered by season and weekFree
GET/v1/nfl/games/:game_idSingle game with stadium, surface, scoresFree
GET/v1/nfl/games/:game_id/playsPlay-by-play with EPA + Win ProbabilityFree
GET/v1/nfl/players/:player_id/statsWeekly player stats (passing, rushing, receiving, PPR)Free
GET/v1/nfl/players/:player_id/game-logPer-season chronological game logFree
GET/v1/standings?sport=american_football&league=nflDivision + conference standingsFree

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.
Get a key →

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

Node.js, @bigballsdata/sdktypescript
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.

Stats reference

Get an API key in 30 seconds