πŸ₯‡Race Results

🏎️ Motorsport API Required

All Race Results endpoints require an active Motorsport API subscription (€79/mo, 3,000 API calls/hr).

View pricing β†’

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 on starting_at.

  • finished - true once 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_week and tie_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 as participant_id used 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.

Get an overview and explanation of all the fields returned in the API response:

Last updated

Was this helpful?