NFL API: Get player stats
Gets a named NFL player's season and career stats, with profile details. Active players are preferred when names match.
Unofficial. Not affiliated with or endorsed by NFL.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Player, required
player Player name, for example Josh Allen.
Josh Allen
- Season optional
season Season starting year, for example 2025. Defaults to the latest season shown.
Not set
Whole number.
Input as JSON
{ "player": "Josh Allen"}Output
{ "name": "Josh Allen", "team": "Buffalo Bills", "stats": [ { "group": "passing", "stat_name": "Completions", "career_value": 2729, "season_value": 114, "stat_abbreviation": "COMP" }, { "group": "passing", "stat_name": "Passing attempts", "career_value": 4259, "season_value": 171, "stat_abbreviation": "ATT" }, { "group": "passing", "stat_name": "Passing yards", "career_value": 31606, "season_value": 1504, "stat_abbreviation": "YDS" } ], "season": 2026, "position": "QB", "player_id": "josh-allen", "player_link": "https://www.nfl.com/players/josh-allen/" , "jersey_number": 17, "headshot_image_link": "https://static.www.nfl.com/image/upload/t_player_profile_landscape/t_lazy/f_auto/league/ynrhq9iv30ysjpwmrfdv" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"nfl.com/get_player_stats","input":{"player":"Josh Allen"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "nfl.com/get_player_stats" , "input": { "player": "Josh Allen" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "nfl.com/get_player_stats" , "input": { "player": "Josh Allen" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run nfl.com/get_player_stats# with {"player":"Josh Allen"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "player" ], "properties": { "player": { "type": "string", "minLength": 1, "description": "Player name, for example Josh Allen." }, "season": { "type": "integer", "description": "Season starting year, for example 2025. Defaults to the latest season shown." } }}Output schema
{ "type": "object", "required": [ "name", "team", "position", "jersey_number", "headshot_image_link", "player_link", "season", "stats", "player_id" ], "properties": { "name": { "type": "string" }, "team": { "type": [ "string", "null" ] }, "stats": { "type": "array", "items": { "type": "object", "required": [ "group", "stat_name", "season_value", "career_value", "stat_abbreviation" ], "properties": { "group": { "type": "string" }, "stat_name": { "type": "string" }, "career_value": { "type": "number" }, "season_value": { "type": [ "number", "null" ] }, "stat_abbreviation": { "type": "string", "x-fous-developer": true } }, "additionalProperties": false } }, "season": { "type": [ "integer", "null" ] }, "position": { "type": [ "string", "null" ] }, "player_id": { "type": "string", "description": "NFL player profile slug.", "x-fous-developer": true }, "player_link": { "type": "string" }, "jersey_number": { "type": [ "integer", "null" ] }, "headshot_image_link": { "type": [ "string", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
nfl.com/get_player_stats- Returns
- name, team, position, jersey number, headshot, season stats, career stats
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method nfl.com/get_player_stats with the inputs above.
Ask your agent
- What are Patrick Mahomes' passing stats for the 2024 season?
- Show me Christian McCaffrey's career rushing totals and his jersey number.
- how many touchdowns did Lamar Jackson throw in 2023
- Get the profile and season stats for CeeDee Lamb on nfl.com.
- Which team does Travis Kelce play for, and what were his receiving yards in 2022?
See more
All NFL methodsGets NFL regular-season standings by conference and division for a season, with clinch status when shown.
nfl.com/get_standingsGets an NFL team's current NFL.com roster by team name, nickname or city. You can limit it to offense, defense or special teams. Released players are left out.
nfl.com/get_team_rosterGets NFL scores and scheduled games for the week that contains a date. You can keep only one team's games. Kickoff times are in US Eastern time unless you choose another time zone.
nfl.com/get_scoresLooks up an NHL player by name, link or ID and returns the profile with regular-season stats for a season and career totals.
nhl.com/get_player_statsGets an MLB player's profile and regular-season hitting and pitching statistics for one season and for his career. Without a season it uses the current season, or the player's latest MLB season if he has no stats this year.
mlb.com/get_player_statsLooks up an ESPN player by name and returns season and career statistics. Use a league to tell apart players with the same name, and a season year or label to pick a past season.
espn.com/get_player_statsLooks up a Yahoo Sports player by name and returns the player's regular-season statistics for a season, alongside career totals. Each stat includes season and career values.
sports.yahoo.com/get_player_statsLooks up a Premier League player by name and returns the profile and either career totals or the stats for a chosen season. If names clash, a current Premier League player is preferred.
premierleague.com/get_player_stats