Formula 1 API: Get championship standings
Gets Formula 1 drivers' and teams' championship standings for a season, with the last completed race. Teams' standings begin in 1958.
Unofficial. Not affiliated with or endorsed by Formula 1.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Year optional
year Championship season, for example 2025. Defaults to the current year.
2026
Whole number 1950 or more.
- Standings optional
standings Which championship standings to include, for example both.
both
One of
drivers,teams,both. Defaultboth.
Input as JSON
{ "year": 2026, "standings": "both"}Output
{ "link": "https://www.formula1.com/en/results/2026/drivers" , "teams": [ { "link": "https://www.formula1.com/en/results/2026/team/Mercedes" , "team": "Mercedes", "points": 578, "position": 1 }, { "link": "https://www.formula1.com/en/results/2026/team/Ferrari" , "team": "Ferrari", "points": 444, "position": 2 }, { "link": "https://www.formula1.com/en/results/2026/team/McLaren-Mercedes" , "team": "McLaren", "points": 339, "position": 3 } ], "season": 2026, "drivers": [ { "link": "https://www.formula1.com/en/results/2026/drivers/ANDANT01/kimi-antonelli" , "team": "Mercedes", "driver": "Kimi Antonelli", "points": 340, "position": 1, "nationality": "Italian" }, { "link": "https://www.formula1.com/en/results/2026/drivers/GEORUS01/george-russell" , "team": "Mercedes", "driver": "George Russell", "points": 238, "position": 2, "nationality": "British" }, { "link": "https://www.formula1.com/en/results/2026/drivers/LEWHAM01/lewis-hamilton" , "team": "Ferrari", "driver": "Lewis Hamilton", "points": 229, "position": 3, "nationality": "British" } ], "last_race_counted": "Singapore"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"formula1.com/get_standings","input":{"year":2026,"standings":"both"}}' # 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": "formula1.com/get_standings" , "input": { "year": 2026, "standings": "both" }})# 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": "formula1.com/get_standings" , "input": { "year": 2026, "standings": "both" } }), 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 formula1.com/get_standings# with {"year":2026,"standings":"both"}"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": { "year": { "type": "integer", "minimum": 1950, "description": "Championship season, for example 2025. Defaults to the current year." }, "standings": { "enum": [ "drivers", "teams", "both" ], "type": "string", "default": "both", "description": "Which championship standings to include, for example both." } }}Output schema
{ "type": "object", "required": [ "season", "last_race_counted", "drivers", "teams", "link" ], "properties": { "link": { "type": "string" }, "teams": { "type": "array", "items": { "type": "object", "properties": { "link": { "type": "string" }, "team": { "type": "string" }, "points": { "type": "number" }, "position": { "type": "integer" } } } }, "season": { "type": "integer" }, "drivers": { "type": "array", "items": { "type": "object", "properties": { "link": { "type": "string" }, "team": { "type": [ "string", "null" ] }, "driver": { "type": "string" }, "points": { "type": "number" }, "position": { "type": "integer" }, "nationality": { "type": "string" } } } }, "last_race_counted": { "type": [ "string", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
formula1.com/get_standings- Returns
- season, last race counted, drivers, teams, 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 formula1.com/get_standings with the inputs above.
Ask your agent
- What are the drivers' and constructors' championship standings after the latest completed F1 race this season?
- Show me the 2019 Formula 1 driver points table and which race was the last one counted.
- Who is leading the team standings in the 1982 F1 season, and how many points does each constructor have?
- Give me the full 2003 world championship order for both drivers and teams on formula1.com.
- Can I see the current F1 season's standings for drivers only, with the most recent race included?
See more
All Formula 1 methodsReturns the main-race finishing order and fastest lap for a Formula 1 Grand Prix. Defaults to the most recent completed race in the current season.
formula1.com/get_race_resultsGets a Formula 1 season calendar with venues, sprint weekends, status, and session start times in circuit local time or a chosen city or IANA time zone.
formula1.com/get_race_calendarGets NFL regular-season standings by conference and division for a season, with clinch status when shown.
nfl.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_standingsReturns 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_standingsReturns Yahoo Sports team standings for a league and season, grouped by division or conference.
sports.yahoo.com/get_standingsGets NHL standings as of a date, ordered by conference, division and division rank, with each team's official homepage.
nhl.com/get_standingsGets the Premier League table for the current season or a chosen season, with each club's last five league results.
premierleague.com/get_league_table