Migrating from Formula One API (v2) to Motorsport API v3
This guide describes everything you need to know about migrating from the old Formula One API (v1) to the new Motorsport API v3.
If you have questions or problems while migrating, or if you are missing something in the new Motorsport API v3, please let us know via [email protected] and we'll help you
Overview of Changes
The Motorsport API v3 represents a significant upgrade from the Formula One API v1:
Unified data model: While Motorsport API v3 currently only provides Formula 1 data, it is designed to allow future addition of other motorsport championships (e.g. Formula 2, Formula 3, NASCAR, etc.) within the same API structure. This is also why the 'Motorsport' name is chosen over 'Formula One'.
Cleaner architecture: Follows the same patterns as Football API v3
Granular control: Choose exactly which data to include via the
includeparameterBetter performance: Optimised queries and improved response times
Enhanced filtering: More flexible filtering options for complex queries
Renamed Entities
These are the most important changes related to entity names. The new structure is consistent with the cross-sport API v3 structure.
v1 name
Example
v3 name
Stage
Practice 1, Qualification 2, Race
Fixture
Track (in Grand Prix/race weekend context)
Australian Grand Prix
Stage
Track (in track/circuit context)
Yas Marina Circuit
Venue
Entity ID Changes
All entity IDs have been changed in the new API. You can find the reference tables for each entity type on the pages below:
Related core entities
Across Motorsport API v3, you may encounter certain entities that do not have any reference in the Motorsport API v3 documentation, like types, countries and cities. This is because those entities are part of the sport-independent Core API, which is included in any v3 API plan.
These are the core entities you may encounter in the Motorsport v3 API:
Types and positions (
type_id,position_id) can be retrieved in the Types endpoints or included with thetypeorpositioninclude.Countries (
country_id) can be retrieved using the Countries endpoints or included with thecountryinclude.Cities (
city_id) can be retrieved using the Cities endpoints or included using thecityinclude.
Endpoint Migration
Stages / Fixtures
Related endpoints: Fixtures , Schedules , Seasons , Stages
Related entities: Fixtures, Schedule , Season , Stage
Single Stage / Fixture
This endpoint includes results and some information by default. In v3, you can choose what to include tailored to your use case.
For live data purposes, it is recommended to use the GET All Livescores endpoint instead.
Old API (v1):
This endpoint included results and match information by default.
New API (v3):
In v3, you have full control over what data to include. Here are the most common scenarios:
Including track info:
Including results only:
Including a broad set of information (status, lap counter, track info, results):
Key differences:
Some data is no longer included by default, you must explicitly request it via the
includeparameterMore granular control over response size and performance
In the previous version, this endpoint includes results and some information by default. In v3, you can choose what to include tailored to your use case.
For live data purposes, it is recommended to use the GET All Livescores endpoint instead.
There are two includes available for results. The results include contains a subset of data: position, time, interval, gap to leader and tyre. The lineups.details nested include also contains laps, pitstops, fastest lap, points and grid position. Find more info on results in this tutorial.
Season Stages / Schedule / Results
This endpoint could be used for the schedule, results and some detailed information for the whole season. In v3, you can choose what to include on a season, or use the pre-defined schedule endpoint, tailored to your use case.
Also check the guide Understanding Race Results & Driver Data in v3 for more information on using result data.
Old API (v1):
New API (v3):
Including track info, no results (intended for schedules):
Note: The Schedule endpoint returns stages with nested fixtures and venue data included by default. It does not support other requested includes.
For getting fixture results and other detailed information, use the Fixtures endpoint:
Including results:
Including a broad set of information (status, track info, results, lineups):
Available includes for fixtures: sport, stage, league, season, venue, state, lineups, participants, metadata, results, latestLaps, pitstops, latestPitstops, stints, latestStints
Drivers
Related endpoint: Drivers
Related entity: Driver
Basic driver information:
Old API (v1):
New API (v3):
Including driver metadata (debut information and other driver-specific data):
New API (v3):
Available includes: sport, country, city, nationality, teams, latest, position, lineups, metadata, seasonDetails
Including teams information (current team for each driver):
New API (v3):
Teams
Related endpoint: Teams
Related entity: Team
Basic team information:
Old API (v1):
New API (v3):
Including additional team information:
New API (v3):
For season-specific team information:
New API (v3):
Available includes: sport, country, players, latest, upcoming, seasons, seasonDetails
Standings
Related endpoint: Standings
Related entity: Standing
In v3, driver and team points and positions for a season are available via dedicated standings endpoints.
Driver standings:
Old API (v1):
New API (v3):
For season-specific driver standings:
Team standings:
Old API (v1):
New API (v3):
For season-specific team standings:
Available includes: sport, participant, season, league, stage
Tracks / Venues
Related endpoint: Venues
Related entity: Venue
All available tracks:
Old API (v1):
New API (v3):
Season-specific tracks:
Old API (v1):
New API (v3):
Available includes: country, fixture, city
Key Differences Summary
Data inclusion
Default (all data included in responses)
Opt-in via include parameter (only requested data)
Endpoint structure
Single endpoints per entity (e.g., /stages, /drivers, /teams)
Separate, specialised endpoints for different data types (e.g., /fixtures, /standings/drivers, /standings/teams)
Filtering capabilities
Limited filtering options
Advanced filtering support with static and dynamic filters
Response size
Large (some data included by default)
Optimised (only requested data returned)
ID mapping
Old IDs no longer valid in V3
Use new ID mappings provided in the Entity ID Changes section
Available endpoints
Limited: Stages, Teams, Drivers, Tracks, Standings, Winners
Expanded: 14 endpoint categories including Fixtures, Laps, Pitstops, Stints, Leagues, Seasons, Schedules, and States
Migration Checklist
Getting Help
If you have questions or encounter issues during migration:
Email: [email protected]
Documentation: Motorsport API v3 Docs
Status: This API is currently in BETA - However, there are no plans for major or breaking changes during these weeks.
We're here to help make your migration as smooth as possible!
Last updated
Was this helpful?