Premier League API: Get player stats
Looks 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.
Unofficial. Not affiliated with or endorsed by Premier League.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Player, required
player Player name, for example Bukayo Saka.
Bukayo Saka
- Season optional
season Premier League season, for example 2025/26. Omit for career totals.
(default)
Input as JSON
{ "player": "Bukayo Saka"}Output
{ "club": "Arsenal", "name": "Bukayo Saka", "goals": 63, "assists": 50, "position": "Forward", "photo_url": "https://resources.premierleague.com/premierleague25/photos/players/110x140/223340.png" , "player_id": "223340", "red_cards": 0, "player_url": "https://www.premierleague.com/en/players/223340/bukayo-saka/stats" , "appearances": 233, "nationality": "England", "clean_sheets": null, "shirt_number": 7, "yellow_cards": 28, "date_of_birth": "2001-09-05", "minutes_played": 17992}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"premierleague.com/get_player_stats","input":{"player":"Bukayo Saka"}}' # 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": "premierleague.com/get_player_stats" , "input": { "player": "Bukayo Saka" }})# 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": "premierleague.com/get_player_stats" , "input": { "player": "Bukayo Saka" } }), 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 premierleague.com/get_player_stats# with {"player":"Bukayo Saka"}"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", "description": "Player name, for example Bukayo Saka." }, "season": { "type": "string", "default": "", "description": "Premier League season, for example 2025/26. Omit for career totals." } }}Output schema
{ "type": "object", "required": [ "name", "club", "position", "shirt_number", "nationality", "date_of_birth", "photo_url", "player_url", "appearances", "goals", "assists", "clean_sheets", "yellow_cards", "red_cards", "minutes_played", "player_id" ], "properties": { "club": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "goals": { "type": "integer" }, "assists": { "type": "integer" }, "position": { "type": [ "string", "null" ] }, "photo_url": { "type": [ "string", "null" ] }, "player_id": { "type": "string", "x-fous-developer": true }, "red_cards": { "type": "integer" }, "player_url": { "type": "string" }, "appearances": { "type": "integer" }, "nationality": { "type": [ "string", "null" ] }, "clean_sheets": { "type": [ "integer", "null" ] }, "shirt_number": { "type": [ "integer", "null" ] }, "yellow_cards": { "type": "integer" }, "date_of_birth": { "type": [ "string", "null" ], "format": "date" }, "minutes_played": { "type": "integer" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
premierleague.com/get_player_stats- Returns
- name, club, position, shirt number, nationality, date of birth, photo and profile URL, appearances, goals, assists, clean sheets, cards, minutes played
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 premierleague.com/get_player_stats with the inputs above.
Ask your agent
- What are Bukayo Saka's career totals for appearances, goals, and assists in the Premier League?
- Show me Erling Haaland's stats for the 2024/25 season, including goals, assists, and minutes played.
- I need Mohamed Salah's shirt number, club, nationality, and date of birth from the Premier League site.
- How many clean sheets and yellow cards does Virgil van Dijk have for the 2023/24 season?
- Pull up the profile and career stats for Cole Palmer, including his photo and minutes played.
See more
All Premier League methodsRanks Premier League players for a season by goals, assists or goalkeeper clean sheets, with each player's club and nationality.
premierleague.com/list_top_scorersGets the Premier League table for the current season or a chosen season, with each club's last five league results.
premierleague.com/get_league_tableGets Premier League fixtures and results in a date range, with kickoff times in your chosen time zone. Returns up to 380 matches.
premierleague.com/get_fixtures_and_resultsGets a named NFL player's season and career stats, with profile details. Active players are preferred when names match.
nfl.com/get_player_statsLooks 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_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_statsFinds a football club on Transfermarkt by name, link or ID and returns its squad for a season with each player's position, age, nationality, market value and contract, highest value first.
transfermarkt.com/get_club_squad