BYTETOOLS

F1API.dev API

Free Formula 1 API with no key: current season calendar, race results, driver and constructor standings, circuits and historical champions. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the F1API.dev API?

F1API.dev is a free, key-free Formula 1 REST API covering the current and historical seasons. It returns the race calendar with dates and circuits, race and qualifying results, driver and constructor standings, team and driver profiles, and past champions.

This API fills the gap left by Ergast, which was the community standard for Formula 1 data for over a decade before being retired. Where OpenF1 focuses on telemetry and timing at sub-second resolution, F1API.dev covers the classic structured layer: who raced where, who finished where, and what the standings look like — the data most fan sites and fantasy-league tools actually need.

The `/current` endpoint is the natural entry point because it self-updates: it returns the championship in progress with every round, circuit, date and time, so an application built on it survives the turn of the season without a code change. Responses carry `limit`, `offset` and `total` alongside the payload, and each race record includes the circuit's own metadata rather than just an id, which saves a second lookup.

Quick facts

Base URL
https://f1api.dev/api
Authentication
No API key or account. Community-run project with open documentation.
Rate limit
No published hard limit. Season data changes at most weekly, so cache it.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the F1API.dev API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch the current Formula 1 season calendar

GET https://f1api.dev/api/current

curl
curl 'https://f1api.dev/api/current'
JavaScript (fetch)
const res = await fetch("https://f1api.dev/api/current");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://f1api.dev/api/current", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "api": "https://f1api.dev",
  "url": "https://f1api.dev/api/current",
  "limit": 30,
  "offset": 0,
  "total": 22,
  "season": 2026,
  "championship": {
    "championshipId": "f1_2026",
    "championshipName": "2026 Formula 1 World Championship",
    "url": "https://en.wikipedia.org/wiki/2026_Formula_One_World_Championship",
    "year": 2026
  },
  "races": [
    {
      "raceId": "australian_2026",
      "championshipId": "f1_2026",
      "raceName": "Formula 1 Qatar Airways Australian Grand Prix",
      "schedule": {
        "race": {
          "date": "2026-03-08",
          "time": "04:00:00Z"
        },
        "qualy": {
          "date": "2026-03-07",
          "time": "05:00:00Z"
        },
        "fp1": {
          "date": "2026-03-06",
          "time": "01:30:00Z"
        },
        "fp2": {
          "date": "2026-03-06",
          "time": "05:00:00Z"
        },
        "fp3": {
          "date": "2026-03-07",
          "time": "01:30:00Z"
        },
        "sprintQualy": {
          "date": null,
          "time": null
        },
        "sprintRace": {
          "date": null,
          "time": null
        }
      },
      "laps": 58,
      "round": 1,
      "url": "https://en.wikipedia.org/wiki/2026_Australian_Grand_Prix",
      "fast_lap": {
        "fast_lap": "1:22.091",
        "fast_lap_driver_id": "max_verstappen",
        "fast_lap_team_id": "red_bull"
      },
      "circuit": {
        "circuitId": "albert_park",
        "circuitName": "Albert Park Circuit",
        "country": "Australia",
        "city": "Melbourne",
        "circuitLength": "

Parameters

ParameterTypeRequiredDescription
(current)path segmentOptionalReturns the championship in progress. Self-updating, so it needs no yearly maintenance.
yearpath segmentOptionalA specific season, for historical queries. 2023
roundpath segmentOptionalA specific round within a season, appended after the year. 1
limitqueryOptionalPage size. Defaults to 30. 10
offsetqueryOptionalPagination offset, used with `limit` and the `total` field. 0

Response fields

season / championshipobject
The championship this response describes, with id, name, year and a Wikipedia link.
totalinteger
How many records exist in total — the number of rounds, for the calendar.
limit / offsetinteger
Pagination state, echoed back so you know where you are.
races[].raceIdstring
Stable identifier such as `australian_2026`, readable and usable as a route slug.
races[].raceNamestring
Official grand prix name.
races[].circuitobject
Circuit details embedded in the race record rather than referenced by id, which saves a lookup.
races[].scheduleobject
Session times across the weekend — practice, qualifying, sprint and race.

What you can build with the F1API.dev API

  • Show the upcoming race calendar with countdowns on a fan site
  • Build a Formula 1 fantasy league scoring system from real results
  • Display live driver and constructor standings
  • Look up historical champions and season results

Common errors and how to fix them

404

Unknown season or round.

Fix: Historical coverage does not reach every year of the sport. Check `/seasons` for what is available before requesting an old year.

Empty races array

The season exists but its calendar is not yet published.

Fix: Very early in a year the next season may be listed with no rounds. Fall back to the previous season.

Stale standings

Standings update after each race, not live during one.

Fix: For in-session data use OpenF1. This API is the structured results layer, not a live timing feed.

F1API.dev API — frequently asked questions

Is the F1 API free?

Yes, free with no API key or account. It is a community-run project with open documentation.

How is this different from OpenF1?

OpenF1 provides timing and car telemetry at sub-second resolution — throttle traces, radio, pit stops. F1API.dev provides the structured layer: calendars, results, standings, drivers and circuits. Most fan sites need this one; analysis tools need OpenF1.

What replaced the Ergast API?

Ergast was retired after more than a decade as the community standard. F1API.dev is one of the successors covering the same structured data, and the Jolpica mirror is another — both are documented in this directory.

Does the current endpoint need updating each season?

No, and that is the point of it. `/current` resolves to whichever championship is in progress, so an application built on it rolls over to the new season without a code change.

Tools that pair with this API

F1API.dev is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.