UEFA API: Get competition matches
Gets 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.
Unofficial. Not affiliated with or endorsed by UEFA.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Club optional
club Only matches involving this club, for example Bayern Munich.
Not set
- Season optional
season Starting year of the season, for example 2026 for 2026/27. Defaults to the current season.
2026
Whole number from 1950 to 2200.
- End Date optional
end_date Last local match date as YYYY-MM-DD, for example 2026-09-10. Defaults to fourteen days from now.
2026-09-23
- Time Zone optional
time_zone Time zone for dates and kick-offs, for example Europe/Paris or America/New_York. Defaults to Central European Time.
America/New_York
- Start Date optional
start_date First local match date as YYYY-MM-DD, for example 2026-09-08. Defaults to seven days ago.
2026-09-22
- Competition, required
competition UEFA competition, for example champions_league.
womens_champions_league
One of
champions_league,europa_league,conference_league,womens_champions_league.
Input as JSON
{ "season": 2026, "end_date": "2026-09-23", "time_zone": "America/New_York" , "start_date": "2026-09-22", "competition": "womens_champions_league"}Output
{ "matches": [ { "city": "Unterhaching", "score": "2-2", "stage": "League phase, Matchday 1", "status": "Finished", "stadium": "Stadion Am Sportpark", "kick_off": "2026-09-22T12:45:00-04:00", "match_id": "2050547", "away_club": "Man City", "home_club": "Bayern", "match_link": "https://www.uefa.com/womenschampionsleague/match/2050547/" }, { "city": "Monza", "score": "1-0", "stage": "League phase, Matchday 1", "status": "Finished", "stadium": "Brianteo", "kick_off": "2026-09-22T12:45:00-04:00", "match_id": "2050551", "away_club": "Häcken", "home_club": "Inter", "match_link": "https://www.uefa.com/womenschampionsleague/match/2050551/" }, { "city": "Borehamwood", "score": "1-0", "stage": "League phase, Matchday 1", "status": "Finished", "stadium": "Meadow Park", "kick_off": "2026-09-22T15:00:00-04:00", "match_id": "2050548", "away_club": "HB Køge", "home_club": "Arsenal", "match_link": "https://www.uefa.com/womenschampionsleague/match/2050548/" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"uefa.com/get_competition_matches","input":{"season":2026,"end_date":"2026-09-23","time_zone":"America/New_York","start_date":"2026-09-22","competition":"womens_champions_league"}}' # 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": "uefa.com/get_competition_matches" , "input": { "season": 2026, "end_date": "2026-09-23", "time_zone": "America/New_York" , "start_date": "2026-09-22", "competition": "womens_champions_league" }})# 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": "uefa.com/get_competition_matches" , "input": { "season": 2026, "end_date": "2026-09-23", "time_zone": "America/New_York" , "start_date": "2026-09-22", "competition": "womens_champions_league" } }), 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 uefa.com/get_competition_matches# with {"season":2026,"end_date":"2026-09-23","time_zone":"America/New_York","start_date":"2026-09-22","competition":"womens_champions_league"}"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": [ "competition" ], "properties": { "club": { "type": "string", "description": "Only matches involving this club, for example Bayern Munich." }, "season": { "type": "integer", "maximum": 2200, "minimum": 1950, "description": "Starting year of the season, for example 2026 for 2026/27. Defaults to the current season." }, "end_date": { "type": "string", "description": "Last local match date as YYYY-MM-DD, for example 2026-09-10. Defaults to fourteen days from now." }, "time_zone": { "type": "string", "description": "Time zone for dates and kick-offs, for example Europe/Paris or America/New_York. Defaults to Central European Time." }, "start_date": { "type": "string", "description": "First local match date as YYYY-MM-DD, for example 2026-09-08. Defaults to seven days ago." }, "competition": { "enum": [ "champions_league", "europa_league", "conference_league", "womens_champions_league" ], "type": "string", "description": "UEFA competition, for example champions_league." } }}Output schema
{ "type": "object", "required": [ "matches" ], "properties": { "matches": { "type": "array", "items": { "type": "object", "required": [ "stage", "kick_off", "home_club", "away_club", "score", "status", "stadium", "city", "match_link", "match_id" ], "properties": { "city": { "type": [ "string", "null" ] }, "score": { "type": [ "string", "null" ] }, "stage": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "stadium": { "type": [ "string", "null" ] }, "kick_off": { "type": [ "string", "null" ] }, "match_id": { "type": "string" }, "away_club": { "type": [ "string", "null" ] }, "home_club": { "type": [ "string", "null" ] }, "match_link": { "type": "string" } } }, "description": "Matches in kick-off order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
uefa.com/get_competition_matches- Returns
- stage, kick-off, clubs, score, status, stadium, city, 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 uefa.com/get_competition_matches with the inputs above.
Ask your agent
- What Champions League games does Arsenal play between March 1 and March 20, and what time do they kick off in New York time?
- Show me all Europa League matches next week with scores, venues and cities.
- Any Women's Champions League fixtures for the 2026/27 season in September, with kick-off times in Tokyo time?
- Which Conference League matches are scheduled for late October, and where are they being played?
- On uefa.com, list the Bayern Munich matches from the upcoming Champions League round with stadium names and match links.
See more
All UEFA methodsReturns the league-phase or group-stage table for a UEFA club competition and season, with qualification labels where shown.
uefa.com/get_competition_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 FIFA tournament matches in kick-off order, with scores, stages, teams and venues. The tournament name must include a year.
fifa.com/get_tournament_matchesFinds a football match between two teams on SofaScore (on a given date, or their latest played or live match) and returns its score, goals, red cards, team statistics and player ratings.
sofascore.com/get_matchReturns 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