Discover/F1 API
live

F1 APIf1.com

Access F1 driver standings, constructor standings, race results, driver profiles, schedules, and awards data via a single REST API with 7 endpoints.

Endpoint health
verified 19h ago
get_driver_standings
get_driver_profile
get_race_results_by_season
get_constructor_standings
get_race_result
7/7 passing latest checkself-healing
Endpoints
7
Updated
22d ago

What is the F1 API?

The F1.com API exposes 7 endpoints covering Formula 1 championship data from standings to detailed race results. Use get_driver_standings to retrieve per-season driver positions, points, nationality, and team, or call get_race_result with a specific meeting_id to get lap counts, finishing times, gaps to leader, and points scored for every classified finisher.

Try it
Season year.
api.parse.bot/scraper/cf31b48a-e6f4-4bee-82bc-3b1864cf9a19/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/cf31b48a-e6f4-4bee-82bc-3b1864cf9a19/get_driver_standings?year=2024' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace f1-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: F1 SDK — season standings, race results, driver profiles."""
from parse_apis.official_formula_1_api import F1, MeetingNotFound

client = F1()

# Get the 2024 season and list driver standings
season = client.season("2024")
for standing in season.driver_standings(limit=5):
    print(standing.position, standing.driver, standing.team, standing.points)

# List races in the season, then drill into one race's result
race = season.races(limit=1).first()
if race:
    try:
        result = race.result()
        print(result.session, result.season)
        for finisher in result.results[:3]:
            print(finisher.position, finisher.driver, finisher.team, finisher.time)
    except MeetingNotFound as exc:
        print(f"Race not found: {exc}")

# Fetch a driver profile with career stats
driver = client.drivers.get(identifier="max-verstappen")
print(driver.identifier, driver.biography[:80])
print(driver.career_stats.first_name, driver.career_stats.last_name, driver.career_stats.titles)

# Get the current race schedule
schedule = client.seasons.schedule()
for meeting in schedule.meetings[:3]:
    print(meeting.city, meeting.meeting_id, meeting.timezone)

print("exercised: driver_standings / races / race.result / drivers.get / seasons.schedule")
All endpoints · 7 totalmissing one? ·

Returns driver championship standings for a given season year. Each standing includes position, driver name, nationality, team, and points. One request returns the full season standings (no pagination).

Input
ParamTypeDescription
yearstringSeason year.
Response
{
  "type": "object",
  "fields": {
    "season": "string — the requested season year",
    "standings": "array of driver standing objects with position, driver, nationality, team, points"
  },
  "sample": {
    "data": {
      "season": "2024",
      "standings": [
        {
          "team": "Red Bull Racing Honda RBPT",
          "driver": "Max Verstappen",
          "points": "437",
          "position": 1,
          "nationality": "NED"
        },
        {
          "team": "McLaren Mercedes",
          "driver": "Lando Norris",
          "points": "374",
          "position": 2,
          "nationality": "GBR"
        }
      ]
    },
    "status": "success"
  }
}

About the F1 API

Standings and Championship Data

Both get_driver_standings and get_constructor_standings accept an optional year parameter, making it straightforward to query historical seasons alongside the current one. Driver standing objects include position, driver, nationality, team, and points. Constructor standing objects follow the same pattern with position, team, and points. Omitting year returns the current season by default.

Race Results

Fetching race-level data is a two-step process. Call get_race_results_by_season with a year to get a list of all meetings for that season — each object contains grand_prix, meeting_id, country_code, and country_name. Pass any meeting_id to get_race_result to retrieve the full finishing order, including each driver's position, driver_tla, team, time, laps, status, gap_to_leader, and championship points earned. The session field identifies the session type (e.g., Race).

Schedule and Driver Profiles

get_schedule returns the current season calendar without any inputs: an array of meetingDates objects, each with city, meetingId, startDate, endDate, and timezone. The meetingId values align with those returned by get_race_results_by_season, so schedule and result lookups can be chained. get_driver_profile takes a driver_slug in firstname-lastname format and returns biography text, a driverProfileImage object with URL and dimensions, and an assemblyRegion object containing related articles.

Awards

get_awards accepts an optional year and returns two objects: fastest_laps, which includes the DHL Fastest Lap Award winner and per-race fastest lap data, and pit_stops, which contains fastest pit stop data broken down by race. This endpoint covers season-level award aggregates rather than session-level telemetry.

Reliability & maintenanceVerified

The F1 API is a managed, monitored endpoint for f1.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when f1.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official f1.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
19h ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a season standings tracker that updates driver and constructor points after each race using get_driver_standings and get_constructor_standings.
  • Power a race history browser by iterating all meeting_ids from get_race_results_by_season and fetching detailed results via get_race_result.
  • Display a team's full season finishing data by filtering get_race_result responses by the team field across every meeting_id.
  • Create a driver comparison tool using biography, images, and article links from get_driver_profile for multiple driver slugs.
  • Build a race weekend countdown widget from get_schedule data, using startDate, endDate, and timezone fields.
  • Track fastest lap and fastest pit stop award winners across seasons using get_awards with different year values.
  • Generate a season calendar cross-referenced with results by matching meetingId values from get_schedule and get_race_results_by_season.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Formula 1 provide an official developer API?+
Formula 1 does not publish a public developer API with documented endpoints for third-party use. The official F1.com site exposes data for fans but not through a supported API program.
What does get_race_result return beyond just finishing position?+
For each classified finisher it returns driver name, three-letter abbreviation (driver_tla), team, total laps completed, finish time, gap_to_leader, race status (e.g. finished, DNF), and championship points earned. The meeting_id and session type are also included at the top level of the response.
Does get_schedule return data for past seasons, or only the upcoming calendar?+
get_schedule returns the current season calendar only and takes no input parameters. For historical season race lists, use get_race_results_by_season with a year parameter. You can fork this API on Parse and revise it to add a schedule endpoint that accepts a year parameter.
Are qualifying, sprint, or practice session results available?+
Not currently. The get_race_result endpoint covers the main Race session, and the session field in its response reflects that. Qualifying, sprint race, and practice session breakdowns are not exposed. You can fork this API on Parse and revise it to add endpoints for those session types.
How do I look up a driver slug for get_driver_profile?+
Slugs follow a firstname-lastname format, for example max-verstappen, lewis-hamilton, or charles-leclerc. The driver field values in get_driver_standings and get_race_result responses can be used to infer the correct slug. If a slug is malformed the endpoint will return an error rather than a partial result.
Page content last updated . Spec covers 7 endpoints from f1.com.
Related APIs in SportsSee all →
formula1.com API
Get comprehensive Formula 1 data including race results, qualifying sessions, practice sessions, pit stops, and driver/team standings from 1950 to present. Track live race schedules, fastest laps, starting grids, and historical world champions to stay updated on all F1 season information.
motorsport.com API
Access comprehensive Formula 1 data from Motorsport.com, including the latest news headlines, driver profiles, race schedules, championship standings, and detailed race results by season.
ergast.com API
Access comprehensive Formula 1 historical data dating back to 1950, including race results, driver and constructor standings, qualifying times, lap records, and pit stop information. Track driver and constructor performance across seasons, explore circuit details, and analyze standings to dive deep into F1 history.
driverdb.com API
Access driver performance data, detailed career statistics, and race results across all major motorsports series. Retrieve championship standings, team information, and head-to-head driver comparisons, and browse comprehensive profiles, race calendars, and circuit details.
cyclocross24.com API
Track cyclocross races and riders with access to current race calendars, detailed results, athlete profiles, and UCI rankings all in one place. Search for specific riders, monitor live standings, and stay updated on competitive rankings throughout the season.
procyclingstats.com API
Access comprehensive professional cycling data including race results, team rosters, and rider victory rankings to analyze performance and track statistics across the sport. Build cycling applications that deliver real-time insights into races, teams, and top-performing athletes.
fifa.com API
Track FIFA world rankings for men's and women's teams, browse tournament schedules and standings, access detailed match information with live timelines, and explore comprehensive player statistics and profiles. Stay updated with the latest football news and easily search across teams, players, and matches all in one place.
racing.hkjc.com API
Access comprehensive horse racing data from the Hong Kong Jockey Club. Retrieve race results, detailed horse profiles including pedigree and form records, jockey and trainer season rankings, upcoming race meeting fixtures, and horse search by name.