BYTETOOLS

Jolpica F1 (Ergast) API

Free Formula 1 API with no key: race results, driver and constructor standings, qualifying, lap times and pit stops from 1950 onwards. Tested curl example.

No API key requiredHTTPSFree tier

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

What is the Jolpica F1 (Ergast) API?

The Jolpica F1 API is a free, key-free continuation of the Ergast API, providing Formula 1 data from 1950 to the present — race results, driver and constructor standings, qualifying, lap times, pit stops and circuit information.

Ergast was the reference F1 data API for over a decade before being retired; Jolpica maintains a drop-in compatible replacement at a new host, keeping the same URL structure and response format.

That compatibility matters because a great deal of existing F1 tooling and tutorials target the Ergast schema. The `MRData` envelope, the nested tables and the `.json` suffix all behave identically — only the hostname changed.

Quick facts

Base URL
https://api.jolpi.ca/ergast/f1
Authentication
No API key required.
Rate limit
Roughly 4 requests per second and 500 per hour for anonymous users.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Jolpica F1 (Ergast) API

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

1. List drivers for a season

GET https://api.jolpi.ca/ergast/f1/2024/drivers.json?limit=3

curl
curl 'https://api.jolpi.ca/ergast/f1/2024/drivers.json?limit=3'
JavaScript (fetch)
const res = await fetch("https://api.jolpi.ca/ergast/f1/2024/drivers.json?limit=3");
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://api.jolpi.ca/ergast/f1/2024/drivers.json?limit=3", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "MRData": {
    "xmlns": "",
    "series": "f1",
    "url": "https://api.jolpi.ca/ergast/f1/2024/drivers.json",
    "limit": "3",
    "offset": "0",
    "total": "25",
    "DriverTable": {
      "season": "2024",
      "Drivers": [
        {
          "driverId": "albon",
          "permanentNumber": "23",
          "code": "ALB",
          "url": "http://en.wikipedia.org/wiki/Alexander_Albon",
          "givenName": "Alexander",
          "familyName": "Albon",
          "dateOfBirth": "1996-03-23",
          "nationality": "Thai"
        },
        {
          "driverId": "alonso",
          "permanentNumber": "14",
          "code": "ALO",
          "url": "http://en.wikipedia.org/wiki/Fernando_Alonso",
          "givenName": "Fernando",
          "familyName": "Alonso",
          "dateOfBirth": "1981-07-29",
          "nationality": "Spanish"
        },
        {
          "driverId": "antonelli",
          "permanentNumber": "12",
          "code": "ANT",
          "url": "https://en.wikipedia.org/wiki/Andrea_Kimi_Antonelli",
          "givenName": "Andrea Kimi",
          "familyName": "Antonelli",
          "dateOfBirth": "2006-08-25",
          "nationality": "Italian"
        }
      ]
    }
  }
}

Parameters

ParameterTypeRequiredDescription
<season>pathOptionalSeason year, or `current`. 2024
<round>pathOptionalRace round number within the season. 1
limitintegerOptionalResults per page, default 30. 3
offsetintegerOptionalPagination offset. 30
<resource>pathOptionaldrivers, results, qualifying, driverStandings, constructorStandings, laps, pitstops. drivers

Response fields

MRDataobject
Envelope wrapping every response — the payload is always nested inside it.
MRData.totalstring
Total records available, as a string.
MRData.DriverTable.Driversarray
Driver records with code, permanent number, name and nationality.
MRData.RaceTable.Racesarray
Race records with circuit, date and results on results endpoints.
MRData.StandingsTableobject
Championship standings on standings endpoints.

What you can build with the Jolpica F1 (Ergast) API

  • Build an F1 results and standings dashboard
  • Analyse historical race and qualifying data back to 1950
  • Power a fantasy F1 league with official results
  • Study lap time and pit stop strategy across seasons

Common errors and how to fix them

404

Wrong path structure or a season with no data.

Fix: Paths are hierarchical: /f1/<season>/<round>/<resource>.json — the .json suffix is required.

Only 30 results returned

Default page size is 30.

Fix: Pass `limit` up to 1000 and use `offset` to page through.

429

Rate limit exceeded.

Fix: Stay under roughly 4 requests per second; cache historical seasons indefinitely since they never change.

Jolpica F1 (Ergast) API — frequently asked questions

Is there a free Formula 1 API?

Yes. The Jolpica F1 API continues the retired Ergast API with the same URL structure and response format, free and with no API key.

What happened to the Ergast API?

It was retired, but Jolpica maintains a drop-in compatible replacement. Existing Ergast code works by changing only the hostname.

How far back does the data go?

To the 1950 season, covering the entire history of the Formula 1 World Championship.

Why is everything wrapped in MRData?

It is the Ergast envelope format, preserved for backwards compatibility. The actual payload is always nested inside MRData under a table object such as DriverTable or RaceTable.

Tools that pair with this API

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