NFL historical odds and closing lines
Closing spread and total for every NFL game since 1999, moneyline since 2010, a whole season in one call. REST or MCP, 500 free credits every month.
EndzoneAPI serves the closing spread and total for every NFL game since 1999, regular season and playoffs, plus the moneyline for every game since 2010 (most games from 2006). A whole season comes back in a single call.
It is built for backtesting. Pull every closing line for a season with get_games, pair them with final scores, which come back on the same rows, and measure your model against the number the market settled on. The table below is read from the database.
Coverage by season
Counted from the database on November 12, 2026: finished regular-season and playoff games.
| Season | Games | Covered |
|---|---|---|
| 2026 | 136 | 100% |
| 2025 | 285 | 100% |
| 2024 | 285 | 100% |
| 2023 | 285 | 100% |
| 2022 | 284 | 100% |
| 2021 | 285 | 100% |
| 2020 | 269 | 100% |
| 2019 | 267 | 100% |
| 2018 | 267 | 100% |
| 2017 | 267 | 100% |
| 2016 | 267 | 100% |
| 2015 | 267 | 100% |
| 2014 | 267 | 100% |
| 2013 | 267 | 100% |
| 2012 | 267 | 100% |
| 2011 | 267 | 100% |
| 2010 | 267 | 100% |
| 2009 | 267 | 100% |
| 2008 | 267 | 100% |
| 2007 | 267 | 100% |
| 2006 | 267 | 100% |
| 2005 | 267 | 100% |
| 2004 | 267 | 100% |
| 2003 | 267 | 100% |
| 2002 | 267 | 100% |
| 2001 | 259 | 100% |
| 2000 | 259 | 100% |
| 1999 | 259 | 100% |
How to get it
get_games, 5 credits a call. A full 2025 season is 1 call and 5 credits, inside the 500 free credits every account gets each month. In Python, pip install endzoneapi and set ENDZONEAPI_API_KEY.
curl -X POST https://mcp.endzoneapi.com/v1/get_games \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"season": 2024,
"game_type": "REG",
"limit": 300
}'What comes back
| games[] | List of objects |
| games[].game_id | |
| games[].season | |
| games[].game_type | |
| games[].week | |
| games[].gameday | |
| games[].weekday | |
| games[].kickoff | |
| games[].away_team | |
| games[].home_team | |
| games[].away_score | |
| games[].home_score | |
| games[].result | |
| games[].total |
Every field and a real response: get_games docs.
Questions
How far back do the NFL odds go?
Every game since the 1999 season, regular season and playoffs. The table on this page is the live coverage by season.
Whose closing line is it?
A consensus closing line: one market number per game. From the 2014 season get_odds also carries each sportsbook's closing line (4-9 books a game for 2014-2019), and from 2020 per-book opening and closing prices from up to 8 sportsbooks (including DraftKings, FanDuel, BetMGM, Pinnacle, and ESPN BET from 2023), get_player_props has prop lines from 2023, and from 2026 get_line_movement has hourly history.
How many calls is a full season?
One. get_games returns up to 500 games per call with the closing lines and the final score on each, for 5 credits.
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 gets 500 free credits every month and no card, enough to pull every closing line since 1999.
What it will not do
- Before 2014, historical lines are a consensus close, not per sportsbook. Per-book closing lines start in 2014 (4-9 books, no opening line until 2020); player props and alternate lines start with 2023.
- For 2024 and 2025 the per-book closing line is the last game-day snapshot, a few hours before kickoff; hourly line movement starts in 2026.
- Game lines here; player prop lines have their own page (/data/player-props). No futures.
Works with
Start with 500 free credits every month
No card. REST or MCP.