Sports Reference API: List season leaders
Lists league leaders for a season and statistic in NBA basketball, NFL football, MLB baseball or NHL hockey. If no season is given, it uses the latest season with published leaders.
Unofficial. Not affiliated with or endorsed by Sports Reference.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Stat, required
stat Statistic in plain words. Example: points per game.
points per game
- Sport, required
sport Sport: basketball, football, baseball, or hockey. Example: basketball.
basketball
One of
basketball,football,baseball,hockey.- Season optional
season Year the season ends, for example 2025. Defaults to the latest season with stats.
2025
Whole number 1900 or more.
- Max Results optional
max_results Number of leaders to list, for example 10. Default 10, maximum 50.
50
Whole number from 1 to 50. Default
10.
Input as JSON
{ "stat": "points per game", "sport": "basketball", "season": 2025, "max_results": 50}Output
{ "sport": "basketball", "league": "NBA", "season": 2025, "leaders": [ { "rank": 1, "team": "OKC", "value": 32.7, "player": "Shai Gilgeous-Alexander", "player_link": "https://www.basketball-reference.com/players/g/gilgesh01.html" }, { "rank": 2, "team": "MIL", "value": 30.4, "player": "Giannis Antetokounmpo", "player_link": "https://www.basketball-reference.com/players/a/antetgi01.html" }, { "rank": 3, "team": "DEN", "value": 29.6, "player": "Nikola Jokić", "player_link": "https://www.basketball-reference.com/players/j/jokicni01.html" } ], "stat_name": "Points Per Game", "leaders_page_link": "https://www.basketball-reference.com/leagues/NBA_2025_leaders.html#leaders_pts_per_g" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"sports-reference.com/list_season_leaders","input":{"stat":"points per game","sport":"basketball","season":2025,"max_results":50}}' # 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": "sports-reference.com/list_season_leaders" , "input": { "stat": "points per game", "sport": "basketball", "season": 2025, "max_results": 50 }})# 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": "sports-reference.com/list_season_leaders" , "input": { "stat": "points per game", "sport": "basketball", "season": 2025, "max_results": 50 } }), 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 sports-reference.com/list_season_leaders# with {"stat":"points per game","sport":"basketball","season":2025,"max_results":50}"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": [ "sport", "stat" ], "properties": { "stat": { "type": "string", "description": "Statistic in plain words. Example: points per game." }, "sport": { "enum": [ "basketball", "football", "baseball", "hockey" ], "type": "string", "description": "Sport: basketball, football, baseball, or hockey. Example: basketball." }, "season": { "type": "integer", "minimum": 1900, "description": "Year the season ends, for example 2025. Defaults to the latest season with stats." }, "max_results": { "type": "integer", "default": 10, "maximum": 50, "minimum": 1, "description": "Number of leaders to list, for example 10. Default 10, maximum 50." } }}Output schema
{ "type": "object", "required": [ "sport", "league", "season", "stat_name", "leaders_page_link", "leaders" ], "properties": { "sport": { "type": "string" }, "league": { "type": "string" }, "season": { "type": "integer" }, "leaders": { "type": "array", "items": { "type": "object", "required": [ "rank", "player", "value", "player_link" ], "properties": { "rank": { "type": "integer" }, "team": { "type": [ "string", "null" ] }, "value": { "type": "number" }, "player": { "type": "string" }, "player_link": { "type": "string" } } } }, "stat_name": { "type": "string" }, "leaders_page_link": { "type": "string" } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
sports-reference.com/list_season_leaders- Returns
- sport, league, season, stat name, leaders page link, leaders (rank, player, team, value, player link)
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 sports-reference.com/list_season_leaders with the inputs above.
Ask your agent
- Who led the NBA in points per game in the 2024 season? Show me the top 10.
- Top 15 NFL passing yards leaders for the 2023 season, please.
- List the MLB home run leaders from 1998 with the top 20 players.
- Show the NHL goals leaders for the 2019 season on sports-reference.com.
- What were the latest basketball assists per game leaders, top 5 only?
See more
All Sports Reference methodsFinds a player on Basketball, Pro Football, Baseball or Hockey Reference and returns regular-season career statistics, awards and a season-by-season record.
sports-reference.com/get_player_careerRanks Premier League players for a season by goals, assists or goalkeeper clean sheets, with each player's club and nationality.
premierleague.com/list_top_scorersLooks 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_statsReturns Yahoo Sports team standings for a league and season, grouped by division or conference.
sports.yahoo.com/get_standingsReturns MLB regular-season division standings for a season: records, win percentage, games back, streak, last 10 games and wild-card games back. Defaults to the current year.
mlb.com/get_standingsLooks 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_statsReturns NBA regular-season standings for a season, with Eastern and Western Conference teams in rank order. Defaults to the season shown on the NBA standings page.
nba.com/get_standings