Skip to content

Data

NFL play-by-play data with EPA

Every NFL play since 1999 with EPA, win probability and the nflfastR columns, filterable by team, down, play type and win probability. REST or MCP.

EndzoneAPI serves NFL play-by-play for every game since 1999, with expected points added (EPA), win probability and the rest of the nflfastR model columns attached to each play.

Filter by season, week, offense, defense, down, quarter, play type, red zone, third down or win-probability range, and get back up to 1,000 plays a call. No R, no Python package, no parquet files to download first. The table below is read from the database.

Coverage by season

Counted from the database when this page was built: finished regular-season and playoff games.

SeasonGamesCoveredPlays
202647100%8,156
2025285100%48,771
2024285100%49,492
2023285100%49,665
2022284100%49,434
2021285100%49,922
2020269100%47,705
2019267100%47,260
2018267100%47,109
2017267100%47,245
2016267100%47,651
2015267100%48,122
2014267100%47,629
2013267100%48,158
2012267100%47,834
2011267100%47,448
2010267100%46,892
2009267100%46,519
2008267100%45,917
2007267100%46,266
2006267100%46,299
2005267100%46,823
2004267100%46,705
2003267100%46,811
2002267100%47,355
2001259100%44,969
200025999%45,491
1999259100%46,136

How to get it

get_plays, 10 credits a call. A full 2025 season is 49 calls and 490 credits, inside the 500 free credits every account starts with.

curl -X POST https://mcp.endzoneapi.com/v1/get_plays \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "season": 2024,
  "posteam": "KC",
  "third_down": true,
  "limit": 200
}'

What comes back

plays[]List of objects
plays[].game_id
plays[].play_id
plays[].season
plays[].week
plays[].posteam
plays[].defteam
plays[].qtr
plays[].time
plays[].down
plays[].ydstogo
plays[].yardline_100
plays[].yrdln
plays[].play_type

Every field and a real response: get_plays docs.

Questions

How far back does NFL play-by-play go?

Every game since the 1999 season, updated through the current week.

Is this the same data as nflfastR?

It is built from the nflverse play-by-play release, the same source nflfastR uses, including its EPA and win-probability models. The difference is that you query it over HTTP instead of loading files.

Can I filter to specific situations?

Yes: down, quarter, red zone, third down, play type, offense, defense, passer, rusher, receiver and win-probability range, in any combination. Charting flags like play action, motion, RPO and screens are there too, from 2022 on.

Can I use it from Claude or ChatGPT?

Yes. EndzoneAPI is an MCP server as well as a REST API: add one URL to Claude, Cursor or any MCP client and ask in plain English.

Is it free?

Every account starts with 500 free credits and no card. Plans start at $19 a month for 10,000 credits.

What it will not do

  • Up to 1,000 plays per call. A full season is about 50 calls.
  • Player tracking (Next Gen Stats speed and separation per play) is not attached to plays; weekly NGS aggregates are a separate endpoint.
  • EPA and win probability are nflverse's models, served as published. We do not refit them.

Works with

Start with 500 free credits

No card. REST or MCP.