π₯Race Results
ποΈ Motorsport API Required
All Race Results endpoints require an active Motorsport API subscription (β¬79/mo, 3,000 API calls/hr).
The Race Results endpoints return a complete season results record for a specific driver or team. Each response is structured as a nested hierarchy: stages (race weekends) containing race and sprint race fixtures, each with full lineup and result details already embedded.
These endpoints are purpose-built for season-level analysis - driver profile pages, team performance dashboards, and historical result archives. They return everything you need in a single call without requiring additional includes.
Available endpoints
GET Race Results by Season and Driver: returns the race results for a provided season ID and driver ID. Includes all stages, race fixtures, lineups, and lineup details for that season and driver.
GET Race Results by Season and Team: returns the race results for a provided season ID and team ID. Includes all stages, race fixtures, lineups, and lineup details for that season and team.
Include options
No includes are available for Race Results endpoints. The full result set - stages, fixtures, lineups, and lineup details - is embedded directly in the response.
Understanding the response structure
Unlike other Motorsport API endpoints that return flat lists, Race Results responses are deeply nested. The top-level data array contains stages, each of which embeds its fixtures, which embed lineups, which embed details:
data[] - stages (race weekends)
βββ fixtures[] - race and sprint race sessions only
βββ lineups[] - one entry per driver/team
βββ details[] - individual result data points (position, points, status, etc.)Each detail object has a type_id that identifies what the value represents - position, points scored, grid position, fastest lap, and so on. Resolve these using the Results & Live Data Type Reference.
Only race fixtures are included. The response contains race sessions and sprint race sessions only - practice and qualifying fixtures are excluded. Use the Fixtures endpoints if you need results from qualifying or practice sessions.
Working with Race Results fields
Stage-level fields:
sort_order- calendar position of the race weekend within the season. Use this to order results chronologically rather than relying onstarting_at.finished-trueonce all race sessions in the stage are complete. Useful for separating completed rounds from upcoming ones when building a season results table.games_in_current_weekandtie_breaker_rule_id- not used in the Motorsport API.
Fixture-level fields:
name-"Race"or"Sprint". Use this to distinguish main race results from sprint race results within the same stage.leg- for race fixtures this is always"1/1". For sprint races it may differ on Sprint weekends.length- total scheduled lap count for race sessions.
Lineup-level fields:
player_id- this is the same value asparticipant_idused across other Motorsport API endpoints (laps, pitstops, stints). Use it to join race result data with lap and stint data from those endpoints.team_id- the constructor ID. When querying by team, all drivers who raced for that team in the season appear in the lineups array.grid_position- starting grid position for the race. Available from the 2022 season onward.driver_number- the race number displayed on the car.
Pagination
Race Results endpoints support pagination at the stage level. A full 24-round F1 season will return results across multiple pages. Use the standard pagination parameters to iterate through all stages:
Common requests
Full season results for a driver:
Full season results for a team (both drivers):
Finding the driver ID
The DRIVER_ID in the URL corresponds to the player_id field in lineup objects, and the participant_id field in laps, pitstops, and stints responses. To find the correct ID for a driver, use the Drivers endpoints:
Finding the team ID
The TEAM_ID corresponds to the team_id field in lineup objects. Retrieve it via the Teams endpoints:
Race Results vs Fixtures with includes
Both approaches can return race session results for a season, but they serve different purposes:
Race Results endpoints
Fixtures with lineups.details
Scope
Full season for one driver or team
Any fixture, any session type
Structure
Nested (stages > fixtures > lineups > details)
Flat fixture with nested includes
Includes available
None - all data embedded
Full include options
Best for
Season-level driver/team profiles
Single race or session analysis
Pagination
At stage level
Standard fixture pagination
If you need results for a single race weekend across all drivers, use the Fixtures endpoint with ?include=lineups.details instead. Race Results is the right choice when you need a complete season record scoped to a specific driver or team.
Related entities
Get an overview and explanation of all the fields returned in the API response:
Related pages
Last updated
Was this helpful?