Premier League API: Get fixtures and results
Gets Premier League fixtures and results in a date range, with kickoff times in your chosen time zone. Returns up to 380 matches.
Unofficial. Not affiliated with or endorsed by Premier League.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Club optional
club Club name to include; omit for all clubs. Example: Arsenal.
Not set
- Show optional
show Include upcoming fixtures, past results, or both. Example: both.
both
One of
fixtures,results,both. Defaultboth.- End Date optional
end_date Last match date to include (YYYY-MM-DD); defaults to 14 days from today. Example: 2026-10-12.
2027-06-30
- Time Zone optional
time_zone Time zone for kickoff and date filtering. Example: America/New_York.
Europe/London (default)
- Start Date optional
start_date First match date to include (YYYY-MM-DD); defaults to 14 days ago. Example: 2026-09-14.
2026-08-01
- Max Results optional
max_results Most matches to return, up to 380. Example: 50.
380
Whole number from 1 to 380. Default
50.
Input as JSON
{ "show": "both", "end_date": "2027-06-30", "start_date": "2026-08-01", "max_results": 380}Output
{ "matches": [ { "score": "3-0", "status": "full time", "kickoff": "2026-08-21T20:00:00+01:00", "stadium": "Emirates Stadium, London", "match_id": "2645195", "away_club": "Coventry City", "home_club": "Arsenal", "matchweek": 1, "match_link": "https://www.premierleague.com/en/match/2645195/arsenal-vs-coventry-city/overview" }, { "score": "2-0", "status": "full time", "kickoff": "2026-08-22T12:30:00+01:00", "stadium": "MKM Stadium, Hull", "match_id": "2645198", "away_club": "Manchester United", "home_club": "Hull City", "matchweek": 1, "match_link": "https://www.premierleague.com/en/match/2645198/hull-city-vs-manchester-united/overview" }, { "score": "2-0", "status": "full time", "kickoff": "2026-08-22T15:00:00+01:00", "stadium": "Hill Dickinson Stadium, Liverpool", "match_id": "2645197", "away_club": "Crystal Palace", "home_club": "Everton", "matchweek": 1, "match_link": "https://www.premierleague.com/en/match/2645197/everton-vs-crystal-palace/overview" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"premierleague.com/get_fixtures_and_results","input":{"show":"both","end_date":"2027-06-30","start_date":"2026-08-01","max_results":380}}' # 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_fixtures_and_results" , "input": { "show": "both", "end_date": "2027-06-30", "start_date": "2026-08-01", "max_results": 380 }})# 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_fixtures_and_results" , "input": { "show": "both", "end_date": "2027-06-30", "start_date": "2026-08-01", "max_results": 380 } }), 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_fixtures_and_results# with {"show":"both","end_date":"2027-06-30","start_date":"2026-08-01","max_results":380}"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", "properties": { "club": { "type": "string", "description": "Club name to include; omit for all clubs. Example: Arsenal." }, "show": { "enum": [ "fixtures", "results", "both" ], "type": "string", "default": "both", "description": "Include upcoming fixtures, past results, or both. Example: both." }, "end_date": { "type": "string", "description": "Last match date to include (YYYY-MM-DD); defaults to 14 days from today. Example: 2026-10-12." }, "time_zone": { "type": "string", "default": "Europe/London" , "description": "Time zone for kickoff and date filtering. Example: America/New_York." }, "start_date": { "type": "string", "description": "First match date to include (YYYY-MM-DD); defaults to 14 days ago. Example: 2026-09-14." }, "max_results": { "type": "integer", "default": 50, "maximum": 380, "minimum": 1, "description": "Most matches to return, up to 380. Example: 50." } }}Output schema
{ "type": "object", "required": [ "matches" ], "properties": { "matches": { "type": "array", "items": { "type": "object", "required": [ "kickoff", "matchweek", "home_club", "away_club", "score", "status", "stadium", "match_link", "match_id" ], "properties": { "score": { "type": [ "string", "null" ] }, "status": { "enum": [ "scheduled", "live", "full time" ], "type": "string" }, "kickoff": { "type": "string" }, "stadium": { "type": [ "string", "null" ] }, "match_id": { "type": "string" }, "away_club": { "type": "string" }, "home_club": { "type": "string" }, "matchweek": { "type": [ "integer", "null" ] }, "match_link": { "type": "string" } } }, "description": "Matches in kickoff date order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
premierleague.com/get_fixtures_and_results- Returns
- kickoff, matchweek, clubs, score, status, stadium, match 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 premierleague.com/get_fixtures_and_results with the inputs above.
Ask your agent
- Show me Arsenal's Premier League results and upcoming games between 2026-09-14 and 2026-10-12, with kickoff times in New York time.
- What were the scores of last weekend's Premier League matches?
- List every Premier League fixture for Liverpool over the next two months, including stadiums.
- Can you pull up all top-flight English football matches scheduled for early October 2026 with kickoff times in Tokyo time?
- Give me the completed results and remaining fixtures for Manchester City from the past month, limited to 20 matches.
See more
All Premier League methodsGets the Premier League table for the current season or a chosen season, with each club's last five league results.
premierleague.com/get_league_tableLooks 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_statsRanks 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 UEFA club competition matches in a date range, with kick-off times in a chosen time zone, scores, stages and venues. You can limit the list to one club.
uefa.com/get_competition_matchesReturns a team's past results and upcoming games for a season on ESPN, with opponents, local start times, scores, broadcasts and venues. Soccer fixtures include all competitions shown for the team.
espn.com/get_team_scheduleGets scores and schedules for a league on a date, or for the football week that contains the date. Results can be limited to one team. Venue names come from each game page, for up to 22 games.
sports.yahoo.com/get_scoresGets ESPN scores and the schedule for a league on a local day. You can filter by team, and start times are shown in your time zone.
espn.com/get_scoresGets 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_scores