EndzoneAPI

io.github.noahowshPublished by GitHub account noahowshv1.1.6Updated Nov 6, 2026

NFL player props by sportsbook since 2023, plus play-by-play with EPA, stats and odds. REST and MCP.

VerifiedStreamable HTTPWeb executableDatabasesFinanceData & Analytics

Overview

AI-generated overview

Hosted NFL data MCP server giving an assistant teams, standings, stats, play-by-play, injuries, odds and player prop lines.

What you can do
  • Look up teams, standings with tiebreakers, schedules and game results with closing lines
  • Retrieve team and player season or weekly stats, leaders, snap counts, advanced and Next Gen metrics
  • Pull play-by-play with EPA and win probability, filtered by down, quarter, red zone or player
  • Check injury reports and depth charts by team and week
  • Query odds, line movement, player props, prop history and alternate lines by sportsbook
When to use it
Useful when someone wants an assistant to answer NFL questions with real data: historical and current game results, advanced efficiency metrics, injury and depth-chart context, or sportsbook lines and player prop history. It suits analysts, fantasy and betting-research workflows rather than general web lookups.
Requirements
A remote Streamable HTTP endpoint; nothing to install. An EndzoneAPI API key is required to call tools (listing tools works without one), sent as an x-api-key header, a bearer token, or a key query parameter. A free tier of 500 credits per month is offered; paid plans and top-ups exist. Each tool call consumes credits.
Before you install
Tool calls spend credits from a metered account, and some tools cost far more than others, so heavy use can exhaust the free allowance or incur paid plans. The key is a secret and should not be shared or committed. Odds and prop data are market information; the server's own tool descriptions say not to compute stakes, recommend bets or send users to a sportsbook. Data comes from third-party sources and is not affiliated with the NFL.

Installation

In SourceWeft

  1. Open EndzoneAPI in the dashboard and add it to a workspace.
  2. Connect x-api-key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.noahowsh%2Fendzoneapi/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "endzoneapi": {
      "type": "http",
      "url": "https://mcp.endzoneapi.com/mcp",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

EndzoneAPI MCP server

[Smithery]

The football data API. Play-by-play with EPA and win probability, player and team stats, schedules, injuries, depth charts and closing lines for every NFL game since 1999. REST API and MCP server. 500 free credits every month, no card.

Website: https://endzoneapi.com · Docs: https://endzoneapi.com/docs · Get a key: https://endzoneapi.com/signup

You:    "What was the closing spread for every Chiefs game last season?"Claude: [calls get_games -> one call, every game with spread, total and moneyline]
You:    "Which offenses had the best EPA per play on third down in 2025?"Claude: [calls get_plays with third_down filter -> EPA already attached]

Skills

16 free Claude skills turn Claude into a football analyst wired to these tools: EPA per play and success rate, Next Gen Stats, weekly player stats, odds and devigging, prop modeling, college football and FCS, and honest backtesting. They are plain markdown folders.

bash
git clone https://github.com/noahowsh/endzoneapi-mcp.git

Or install them as a Claude Code plugin:

/plugin marketplace add noahowsh/endzoneapi-mcp/plugin install endzoneapi-skills@endzoneapi

Or with the skills CLI: npx skills add noahowsh/endzoneapi-mcp.

Point Claude (Claude Code, or any client that loads skills) at the skills/ folder, and connect the MCP server above so the skills can call live data. The dispatch skill routes a request to the right two or three skills. Full list: skills/README.md

You:    "Which offenses were best on third down in 2025, and how many plays is that based on?"Claude: [loads epa-analysis + endzoneapi-tool, calls get_plays with third_down and a limit that         holds the split, reports EPA per play, success rate and the play count]

Useful pages

Python

The official Python client is on PyPI: endzoneapi.

bash
pip install endzoneapiexport ENDZONEAPI_API_KEY=sk_live_...
python
from endzoneapi import Client, to_dataframe
client = Client()
print(client.get_player_props(game_id="2025_01_KC_LAC", estimate_only=True))
props = client.get_player_props(    game_id="2025_01_KC_LAC",    market="player_pass_yds",    bookmaker="draftkings",)df = to_dataframe(props, key="props")print(df[["player_name", "line", "over_odds", "under_odds"]])

Typed errors for a bad key, no credits left, not found and rate limits, automatic retries, and to_dataframe for pandas.

Quick start

This is a hosted (remote) MCP server over Streamable HTTP. There is nothing to install.

Claude Code

bash
claude mcp add --transport http endzoneapi "https://mcp.endzoneapi.com/mcp?key=YOUR_API_KEY"

Claude Desktop, Cursor and other clients

json
{  "mcpServers": {    "endzoneapi": {      "url": "https://mcp.endzoneapi.com/mcp?key=YOUR_API_KEY"    }  }}

The key can also be sent as an x-api-key header or Authorization: Bearer. Connecting and listing tools works without a key; calling a tool needs one.

REST

bash
curl -X POST https://mcp.endzoneapi.com/v1/list_teams -H "x-api-key: YOUR_API_KEY"

Every tool is POST /v1/{tool} with a JSON body.

Tools (18)

ToolWhat it returns
list_teamsAll 32 teams with conference, division, colours, and logos
get_standingsStandings and playoff seeding by the NFL tiebreaking procedure, with the step that decided each rank
get_scheduleUpcoming games by week or for the next N days
search_playersFind players by name, team, or position
get_injuriesInjury report by team and week with practice and game status
get_depth_chartTeam depth chart by week
get_gamesQuery games by season, week, team, date, type, or status, with closing lines
get_team_statsTeam totals and per-week lines with EPA, success rate, and situational splits
get_player_statsWeekly and season stat lines for one player: passing, rushing, receiving, defense, kicking, fantasy
get_player_leadersLeaderboard for any stat, filtered by position, team, and season
get_snap_countsOffensive, defensive, and special-teams snaps and shares by game or player
get_advanced_statsNext Gen Stats tracking metrics and Pro Football Reference advanced stats
get_playsPlay-by-play with EPA, win probability, situation filters, and optional FTN charting
get_oddsOdds by game with bookmaker filters
get_game_detailFull game detail with team stats, starting QBs, odds, weather, and officials
get_head_to_headMatchup history with win/loss records and margins
get_line_movementTime-series odds grouped by bookmaker
get_player_propsPlayer prop lines by sportsbook, opening and closing: passing, rushing and receiving yards, TDs, receptions, anytime TD
get_prop_historyOne player against his prop line over time for one market, with hit rate
get_alt_linesAlternate spreads and totals by sportsbook, every point on each ladder with its price

Data

  • Play-by-play for every game since 1999 with EPA, win probability and model columns
  • Closing spread, total and moneyline for every game since 1999; per-book odds from 2020 (up to 8 books, hourly in season from 2026)
  • Player prop lines from 2023, captured live before every game
  • Weekly player and team stats, injuries (2009+), depth charts (2001+), snap counts (2012+), Next Gen Stats, FTN charting (2022+)

Coverage by season, read live from the database: https://endzoneapi.com/data/historical-odds, https://endzoneapi.com/data/player-props and https://endzoneapi.com/data/play-by-play

Used by

NoPunt, our NFL predictions site, runs on this API.

  • nfl-props-backtest: a season of NFL player props against what happened (calibration, over rates, line moves, anytime TD prices), in Python and R.

Pricing

500 free credits every month, no card. Plans: Starter $19/mo (10,000 credits), Pro $49/mo (30,000), Scale $149/mo (125,000). Wallet top-ups from $5, kept while your account is open. https://endzoneapi.com/pricing

Attribution

Stats, schedules and play-by-play are from nflverse (CC BY 4.0), modified and combined with our own models. Not affiliated with the NFL or any team.

License

MIT for the contents of this repository. Data terms as above.

Use with Codex

Add this repo as a Codex plugin marketplace, then install the plugin:

bash
codex plugin marketplace add noahowsh/endzoneapi-mcp

Then open the plugin directory in Codex and install endzoneapi-skills from the endzoneapi marketplace. The plugin bundles the skills in skills/ and the EndzoneAPI MCP server (https://mcp.endzoneapi.com/mcp). Set your key first (free at https://endzoneapi.com/signup):

bash
export ENDZONEAPI_API_KEY=your_key

Codex sends it as a bearer token.

Use with Gemini CLI

bash
export ENDZONEAPI_API_KEY=your_keygemini extensions install https://github.com/noahowsh/endzoneapi-mcp

The extension adds the EndzoneAPI MCP server (https://mcp.endzoneapi.com/mcp) and sends the key in the x-api-key header. Get a free key (500 credits a month) at https://endzoneapi.com/signup.

Source: README.md at commit 5a7d447

Tools

20

list_teams

List teams

Use when you need team codes, or all 32 current teams with conference, division, colours, and logo URLs. Team codes are standard abbreviations (LA for the Rams, WAS for Washington). Cheapest tool at 1 credit.

Parametersdivisionconference

get_standings

Standings

Use for regular-season standings and playoff seeding: record, win%, points for/against, home/away/division/conference records, streak, division rank, and conference seed. Ranks apply the real NFL tiebreaking procedure and report which step decided each one. Computed from final scores. Defaults to the current season. Costs 2 credits.

Parametersseasondivisionconference

get_team_stats

Team stats

Use for one team's season: totals (passing, rushing, receiving, defense, kicking, penalties), EPA per play, yards per attempt/carry, the standings row, and every weekly stat line. Costs 5 credits.

Parametersteamrequiredseasonseason_type

get_games

Games

Use when querying past or future games with filters: season, week, team, date range, game type, status. Returns scores, kickoff (UTC), venue, rest days, starting QBs, coaches, referee, and the consensus closing spread, total, and moneylines. For upcoming-only games prefer get_schedule (2 cr). Costs 5 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersteamweeklimitseasonstatusdate_todate_fromgame_type

get_schedule

Schedule

Use to see what is coming up: unplayed games in the next N days (default 7), or a specific week of the current season. Includes consensus lines where posted. Costs 2 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersdaysteamweek

get_game_detail

Game detail

Use when you need everything about one game: both teams, full team box-score stats (EPA, success, drives), consensus closing line, per-bookmaker opening/closing/latest odds, weather, surface, and officials. Requires a game id from get_games or get_schedule. Costs 10 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersgame_idrequired

get_head_to_head

Head to head

Use to compare two teams' history: recent meetings with scores, the win/loss record between them, and average margin. Filter by season or get all-time. Costs 10 credits.

Parameterslimitteam1requiredteam2requiredseason

search_players

Search players

Use to find a player by name (partial match). Searches ~25,000 players back to 1999; returns current-season players by default, falling back to all players back to 1999 when none match. Returns the GSIS player id needed by get_player_stats. Costs 2 credits.

Parametersteamlimitqueryrequiredactiveposition

get_player_stats

Player stats

Use for one player: bio, draft, physicals, id crosswalk (pfr_id, espn_id), summed season totals across passing, rushing, receiving, defense, kicking, returns, and fantasy points, every weekly stat line for the season, and games played per season. Defaults to the player's latest season. Costs 5 credits.

Parametersseasonplayer_idrequiredseason_type

get_player_leaders

Player leaders

Use to rank players on any weekly stat over a season: passing_yards, passing_tds, rushing_yards, receiving_yards, receptions, targets, def_sacks, def_interceptions, fantasy_points_ppr, passing_epa, rushing_epa, receiving_epa, and ~130 more. Counting stats are summed, rate stats averaged. Filter by position, team, minimum games. Costs 5 credits.

Parametersstatrequiredteamlimitseasonpositionmin_gamesseason_type

get_injuries

Injuries

Use for the official injury report: game status (Out, Doubtful, Questionable) and practice participation with the injury named, by team and week. Defaults to the latest reported week of the current season. Costs 2 credits.

Parametersteamweekseasonstatus

get_depth_chart

Depth chart

Use for a team's depth chart by week: formation, position, depth rank, player. Defaults to the latest week available. Costs 2 credits.

Parametersteamrequiredweekseasonformation

get_snap_counts

Snap counts

Use for playing time: offensive, defensive, and special-teams snaps and snap shares, for one game, one player (PFR id), or a team's season. Costs 5 credits.

Parametersteamweeklimitseasongame_idplayer_id

get_plays

Plays

Use for play-by-play with advanced metrics: EPA, WPA, win probability, success, CPOE, air yards, formation flags, and the players involved. Filter by game, or by season plus week/team/player, plus play type, down, quarter, win-probability band, red zone, third down. Returns a per-query EPA and success-rate summary. Paginate with offset. Costs 10 credits.

Parametersdownweeklimitmax_wpmin_wpoffsetseasondefteamgame_idposteamquarterred_zone+5 more

get_advanced_stats

Advanced stats

Use for tracking and advanced metrics the box score does not carry. Next Gen Stats (2016+): time to throw, air yards, completion percentage above expectation, separation, cushion, rush yards over expected. Pro Football Reference advanced (2018+): pressures, hurries, blitzes, drops, bad throws, missed tackles, coverage yards allowed. Pick a source, then filter by season, week, player or team. Costs 5 credits.

Parametersteamweeklimitseasonsourcerequiredplayer_id

get_odds

Odds

Use for betting lines. Pass game_id for one game (10 credits): the consensus closing spread and total (every game since 1999; moneyline every game since 2010) plus each sportsbook's closing line from the 2014 season (4-9 books for 2014-2019, closing only) and per-bookmaker opening, closing and latest lines from the 2020 season (up to 8 books, including Pinnacle). Or pass season (optionally team) for a season of per-book closing lines in one call, with final scores and the consensus close, at 10 credits per game returned, 100 games a page by default (up to 500); each book's line is an array in the order given by columns. Each line carries a source field (one value for the 2014-2019 closing lines, another from 2020); a season answer lists each game's sources. For consensus closing lines only, get_games returns a whole season for 5 credits. Set estimate_only to get the price without being charged. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersteamlimitoffsetseasongame_idbookmakerestimate_onlysnapshot_type

get_line_movement

Line movement

Use to see how a game's lines moved: each bookmaker's hourly snapshots where a line changed, plus the latest (all_snapshots for every capture). Most expensive tool (25 cr); use get_odds (10 cr) if you only need opening, closing, or current lines. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersgame_idrequiredbookmakerall_snapshots

get_player_props

Player props

Use for player prop lines by sportsbook: over/under on passing yards, passing TDs, rushing yards, receiving yards and receptions, plus anytime TD, from the 2023 season (7 books: DraftKings, FanDuel, BetMGM, ESPN BET, Pinnacle, Bovada, BetOnline). Pass game_id for every player's props in one game (10 credits), or player_id with season for one player across a season (10 credits per game returned). Returns the closing line by default (the last before kickoff) or the opening line. Set estimate_only to get the price without being charged. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersmarketseasongame_idbookmakerplayer_idestimate_onlysnapshot_type

get_prop_history

Prop history

Use to see how a player did against his prop line over time: for one market (passing, rushing or receiving yards, passing touchdowns, completions, attempts, interceptions, carries, receptions or anytime touchdown), one row per game with the closing line (the median across books, or one book's), the opening line (the same as the close wherever only one capture was taken), the prices, what the player actually recorded from our box scores and the result against the line, plus the over rate. Costs 10 credits for up to 200 games. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parameterslimitmarketrequiredto_datebookmakerfrom_dateplayer_idrequired

get_alt_lines

Alt lines

Use for alternate spreads and totals by sportsbook: every point on each book's ladder with its price (e.g. KC -10.5 at +260, over 51.5 at +140), for one game, from the 2023 season on, the current season included (6 to 7 books: FanDuel, DraftKings, BetMGM, Bovada, Pinnacle, ESPN BET). Returns each book's closing ladder by default (the last before kickoff) or its opening one. side is home or away for spreads (point is that side's spread) and over or under for totals. 10 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Parametersmarketgame_idrequiredbookmakersnapshot_type

Version history

6
  1. v1.1.6LatestOct 16, 2026
  2. v1.1.4Oct 8, 2026
  3. v1.1.3Oct 7, 2026
  4. v1.1.2Sep 27, 2026
  5. v1.1.1Sep 27, 2026
  6. v1.1.0Sep 27, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts