American football data hub

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 NFL history. Live scores resume for the 2026 NFL season. That launch has happened: live score state is available while games are on.

Aggregate sport hub · choose a league before league-specific detail calls

250 req/day free (500 with GitHub). No credit card.

NFL · NCAAF · a decade of history · 294,989 plays with EPA + WP · fixed 2020-2025 snapshot; 291,603 carry both values · 2026 plays landing now

The NFL API page focuses on the NFL historical surface with field-level docs for plays and weekly stats. See the NFL API →

Featured league example · not aggregate coverage

NFL

single-league example · response shape, not coverage

1season · week
2home_team · away_team
3score · status
Open the NFL authority →

Leagues in this sport

7
seasons in the archive
1,802 finished games, back to 2020

How far back the National Football League archive goes

7 seasons are on record, back to 2020 — 1,802 finished games you can query today. One route serves the full span. These figures are measured from the customer-facing routes listed below, so this page cannot silently drift from the product.

ArchiveRouteSeasonsReaches back toFinished games
National Football League/v1/matches72020 – 20261,802

What each plan reaches

Edge & Pro
all 7 seasons
Solo & Trio
5 seasons
Free
the current season

Edge and Pro reach everything listed above. Solo and Trio reach five seasons. Free covers the current season.

Unified schema

One American football envelope. League context stays explicit.

Canonical IDs, league keys, status and timestamps travel with the row. The hub describes shared fields; each league authority documents its own depth.

american_football
sport
selected key
league
canonical
id
served
status

No featured-league field is promoted to a sport-wide guarantee.

Event surface

League-native events inside the American football hub.

Event granularity differs by competition. Discover a match and league first, then use that authority’s event contract rather than assuming one featured feed applies everywhere.

  1. 1/v1/nfl/games/:game_id/playsPlay-by-play with EPA + Win Probabilitypro
  2. 2/v1/nfl/players/:player_id/statsWeekly player stats (passing, rushing, receiving, PPR)free
  3. 3/v1/nfl/players/:player_id/game-logPer-season chronological game logfree

What you can build

5 American football products from the connected sport surface.

Each concept points to a real league authority, guide or reference. The phone mockups are product patterns, not claims that every league supplies identical depth.

League directory

Choose the American football competition you are actually building.

League pages own seasons, participants, examples and measured depth. This hub owns discovery across them.

League authorityRoleNext step

Coverage strength

What the aggregate American football surface connects.

Counts below describe published route rows on this hub, not a promise that every league fills every field.

0

League authorities

6

Published routes

5

Build patterns

4

FAQ answers

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

What you get, by plan

One row per capability, not per field per endpoint. Season spans are counted from rows that are actually populated, and each capability names the simplest endpoint that returns it.

Offensive stats

CapabilityFreeSoloTrioEdgeProEndpoint
Carries—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Completions—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Interceptions thrown—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Pass attempts—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Passing touchdowns—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Passing yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
PPR fantasy points—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Receiving touchdowns—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Receiving yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Receptions—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Rushing touchdowns—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Rushing yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Targets—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats

Defensive stats

CapabilityFreeSoloTrioEdgeProEndpoint
Defensive touchdowns—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Forced fumbles—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Interception return yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Interceptions caught—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Passes defended—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Quarterback hits—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Sack yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Sacks—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Safeties—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Solo tackles—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Tackle assists—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Tackle-for-loss yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Tackles for loss—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Tackles with assist—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Two-point attempts defended—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Two-point conversions defended—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats

Kicking and special teams

CapabilityFreeSoloTrioEdgeProEndpoint
Extra points blocked—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Field goals blocked—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats
Punts blocked—PENDINGPENDINGPENDINGPENDING/v1/nfl/players/{player_id}/stats

Play-by-play

CapabilityFreeSoloTrioEdgeProEndpoint
Defending team————7 seasons/v1/nfl/games/{game_id}/plays
Distance to go————7 seasons/v1/nfl/games/{game_id}/plays
Down————7 seasons/v1/nfl/games/{game_id}/plays
Expected points added————PENDING/v1/nfl/team-stats
Field position————7 seasons/v1/nfl/games/{game_id}/plays
Game clock————7 seasons/v1/nfl/games/{game_id}/plays
Passer on a play————7 seasons/v1/nfl/games/{game_id}/plays
Play type————7 seasons/v1/nfl/games/{game_id}/plays
Receiver on a play————7 seasons/v1/nfl/games/{game_id}/plays
Rusher on a play————7 seasons/v1/nfl/games/{game_id}/plays
Score differential————7 seasons/v1/nfl/games/{game_id}/plays
Team in possession————7 seasons/v1/nfl/games/{game_id}/plays
Win probability————7 seasons/v1/nfl/games/{game_id}/plays
Yards gained————7 seasons/v1/nfl/games/{game_id}/plays

Team stats

CapabilityFreeSoloTrioEdgeProEndpoint
Completion percentage over expected—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Interceptions thrown (team)—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Passing air yards—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Passing EPA—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Passing first downs—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Receiving EPA—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Rushing EPA—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Rushing first downs—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats
Sacks taken—PENDINGPENDINGPENDINGPENDING/v1/nfl/team-stats

Schedules and fixtures

CapabilityFreeSoloTrioEdgeProEndpoint
Final scorePENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
Game typePENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
Kickoff datePENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
Playing surfacePENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
Rest days per teamPENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
Roof typePENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
StadiumPENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games
WeekPENDINGPENDINGPENDINGPENDINGPENDING/v1/nfl/games

Injuries, rosters and depth charts

CapabilityFreeSoloTrioEdgeProEndpoint
Depth chart position—PENDINGPENDINGPENDINGPENDING/v1/nfl/depth-charts
Depth chart rank—PENDINGPENDINGPENDINGPENDING/v1/nfl/depth-charts
Depth chart validity interval—PENDINGPENDINGPENDINGPENDING/v1/nfl/depth-charts
Jersey number—PENDINGPENDINGPENDINGPENDING/v1/players
Listed position—PENDINGPENDINGPENDINGPENDING/v1/nfl/rosters
Practice participation status—PENDINGPENDINGPENDINGPENDING/v1/nfl/injuries
Reported injury detail—PENDINGPENDINGPENDINGPENDING/v1/nfl/injuries
Roster status—PENDINGPENDINGPENDINGPENDING/v1/scores
Weekly injury report status—PENDINGPENDINGPENDINGPENDING/v1/nfl/injuries
Years of experience—PENDINGPENDINGPENDINGPENDING/v1/nfl/rosters

Ratings and derived intelligence

CapabilityFreeSoloTrioEdgeProEndpoint
Current Elo rating—PENDINGPENDINGPENDINGPENDING/v1/teams/{id}/elo
Elo rating history—PENDINGPENDINGPENDINGPENDING/v1/teams/{id}/elo

Images and identity

CapabilityFreeSoloTrioEdgeProEndpoint
Player headshots—PENDINGPENDINGPENDINGPENDING/v1/players
Player name✓✓✓✓✓/v1/players
Player position✓✓✓✓✓/v1/players
Team abbreviationPENDINGPENDINGPENDINGPENDINGPENDING/v1/matches
Team name✓✓✓✓✓/v1/players

Measured against production on 2026-09-13. A capability appears here only when it has rows, an endpoint that returns it, and a source we may both serve and quote.

Stats included

Every football stat field the API returns today — 108 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-09-16.

Endpoint
/v1/players/:id/stats
Last updated
2026-09-16

Fields (89)

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, Defensive Interceptions, Defensive Sacks, Extra Points Made, Extra Points Made Extra Point Attempts, Field Goal Attempts, Field Goals Made, Field Goals Made Field Goal Attempts, Fumble Recovery Touchdowns, 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, Passer Rating, Passing Attempts, Passing Completions, Passing Interceptions, Passing Sack Yards Lost, Passing Sacks Taken, 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-09-16.

Endpoint
/v1/matches/:id/statistics
Last updated
2026-09-16

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 (new granularity, not yet mapped for display).
  • 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.

Player availability

American football availability is league-scoped.

Injury, lineup and participant availability vary by league and season. Missing rows stay missing; the hub does not borrow another league’s records.

Nullable by design

Check the selected league authority and response timestamp before presenting a status as current.

Next up

Schedules across American football competitions.

Each league publishes its own schedule and its own season boundaries. Call the league you selected and read the status and kickoff on the rows it returns, rather than inferring a season from this hub.

DiscoverGET /v1/leagues

Choose a real league key

Schedule/v1/nfl/games?season=2024&week=1

Keep league + season

DetailGET /v1/matches/{id}

Traverse canonical IDs

From response to product

A featured league example, rendered and raw.

This is visibly scoped to NFL, single-league example · response shape, not coverage; it demonstrates the shared envelope without claiming that league represents all American football.

Featured league example

NFL

single-league example · response shape, not coverage

season · weekhome_team · away_teamscore · status
{
  "data": [
    {
      "id": "canonical-id-from-response",
      "sport": "american_football",
      "league": "selected-league-key",
      "status": "finished",
      "home": {
        "name": "Home participant"
      },
      "away": {
        "name": "Away participant"
      },
      "score": {
        "home": null,
        "away": null
      }
    }
  ],
  "meta": {
    "example_scope": "NFL · single-league example · response shape, not coverage",
    "note": "Shape example; request the API for current values."
  }
}

American football resources

Docs, comparisons and build guides.

Every card is a real destination. League authorities remain separate from supporting product and documentation routes.

Real API example

Start at aggregate American football discovery.

The request deliberately omits a featured league when the route supports sport-wide discovery. Select a returned league key before league-specific calls.

curl -H "Authorization: Bearer $BBS_API_KEY" "https://api.bigballsdata.com/v1/nfl/games?season=2024&week=1"
{
  "data": [
    {
      "id": "canonical-id-from-response",
      "sport": "american_football",
      "league": "selected-league-key",
      "status": "finished",
      "home": {
        "name": "Home participant"
      },
      "away": {
        "name": "Away participant"
      },
      "score": {
        "home": null,
        "away": null
      }
    }
  ],
  "meta": {
    "example_scope": "NFL · single-league example · response shape, not coverage",
    "note": "Shape example; request the API for current values."
  }
}

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);
}

MCP

Connect an agent. Choose scope first.

An agent should discover American football leagues, select one explicitly, then traverse matches and players by returned canonical IDs.

1get_leaguessport: american_football
2get_matchesleague: selected key
3get_match_detailsmatch_id: returned UUID

Data freshness

Freshness belongs to the selected league and dataset.

The hub never turns a single-league example into a current sport-wide claim, and it states no season of its own.

Scoped

Schedules

Current when populated

Source: League response

Scoped

Scores

Event-driven

Source: Match response

Scoped

Stats

Category-specific

Source: Dataset response

Scoped

Example

single-league example · response shape, not coverage

Source: Static label

Plan decision

Choose by endpoint, not by the hub headline.

Each row preserves its league or sport scope and resolves against the endpoint plan registry when that route has a canonical entry.

EndpointScopeMinimum plan
/v1/nfl/games?season=2024&week=1League-specificfree
/v1/nfl/games/:game_idLeague-specificfree
/v1/nfl/games/:game_id/playsLeague-specificpro
/v1/nfl/players/:player_id/statsLeague-specificfree
/v1/nfl/players/:player_id/game-logLeague-specificfree
/v1/standings?sport=american_football&league=nflLeague-specificfree

Founder pricing

Start with American football. Add depth as the product grows.

Prices and included dimensions come from the shared billing manifest; league coverage remains documented on each authority page.

Free

$0
  • ✓ 1 sport
  • ✓ 250 requests / day (500 with GitHub)
  • ✓ Current season
  • ✓ Scores, schedules, fixtures
Get a key

Solo

$19per month
  • ✓ Everything in Free, plus
  • ✓ 1 sport
  • ✓ 10,000 requests / day
  • ✓ Up to 5 seasons
Choose Solo

Trio

$49per month
  • ✓ Everything in Solo, plus
  • ✓ 3 sports
  • ✓ 25,000 requests / day
  • ✓ Up to 5 seasons
Choose Trio

Edge

$149per month
  • ✓ Everything in Trio, plus
  • ✓ All sports
  • ✓ 100,000 requests / day
  • ✓ All available history
Choose Edge

Pro

$299per month
  • ✓ Everything in Edge, plus
  • ✓ All sports
  • ✓ 200,000 requests / day
  • ✓ All available history
Choose Pro

Start on the free tier

100 requests per minute and 250 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 500.
  • 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 →

Free covers a real app. Scale when you need to.

250 req/day free (500 with GitHub). Production starts at $49/mo. Live WebSocket push on Pro+.

Frequently asked

Answers before you choose a league.

Is American football data live right now?

Yes, while games are on. /v1/matches?sport=american_football carries live score state during games, and the historical surface (schedules, weekly stats, and play-by-play with EPA + Win Probability) is available at all times. Whether anything is on right now is a fact to read from the API rather than from this page: GET /v1/coverage?sport=american_football reports freshness.data_through and freshness.next_event per league.

Does it include EPA and Win Probability?

Yes. /v1/nfl/games/:game_id/plays returns per-play EPA and Win Probability across the six complete seasons (294,989 plays). That is the fixed 2020-2025 snapshot; 291,603 rows carry both values, and 2026 plays are also available as they land. GET /v1/coverage?sport=american_football reports the NFL match archive's current season span and match-level play-by-play coverage.

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 surface today.

Is the American football API free?

Yes. It covers schedules, weekly stats and standings. There is a free tier; pricing lists what each plan covers. Full play-by-play logs, including EPA and win probability, need Pro. Free keys get 250 req/day (500 with GitHub). No credit card.

Get an API key in 30 seconds