πFixtures
ποΈ Motorsport API Required
All Fixtures endpoints require an active Motorsport API subscription (β¬79/mo, 3,000 API calls/hr).
A fixture represents a single on-track session within a race weekend - Practice 1, Qualifying, Sprint Race, or the Race itself. Fixtures are always scoped to a Stage (race weekend) and belong to a Season.
Not sure about the difference between a Fixture and a Stage? In this API, a Stage is the full race weekend (e.g. the Australian Grand Prix) and a Fixture is a single session within it (e.g. Practice 1). See the Data Model guide for the full hierarchy.
To retrieve results for a fixture, you can use the results include. Alternatively, you can use the lineups.details nested include to retrieve additional lineup information and more result types. The types for these results are described in results-and-live-data-type-reference.
You can also use the metadata include to enrich the response with detailed information about the fixture, like the current and total lap count, race distance and fastest lap. The type reference for these details are described in metadata-and-per-season-data-type-reference.
Available endpoints
Use the endpoint that matches what you are trying to do:
GET All Fixtures: returns all fixtures available in the Motorsport API.
GET Fixture by ID: returns a single fixture by its ID.
GET Multiple Fixtures by IDs: returns multiple fixtures by providing a list of IDs.
GET Latest Updated Fixture: returns the most recently updated fixtures.
GET Fixture by Date: returns fixtures scheduled on a given date.
GET Fixture by Date Range: returns fixtures between two dates (maximum range: 100 days).
Include options
Responses from the fixtures endpoints are highly customisable. You can enrich them using include.
sport stage league season venue state lineups participants metadata results latestLaps pitstops latestPitstops stints latestStints
Want to keep responses lighter and faster? Use select to request only the fields you need. See: Request options
Choosing between results and lineups.details
Both includes return session result data, but at different levels of detail:
Use
resultsfor compact post-session summaries - position, time, interval, gap to leader, and tyre. Suitable for results tables and standings cards.Use
lineups.detailsfor the full result set - includes everything inresultsplus points scored, grid position, lap count, pitstop count, driver status (DNS/DNF/DSQ), fastest lap, and the livein_pitindicator.
Using metadata
The metadata include adds session-level information not present in the base response, including the current and total lap count (CURRENT_LAP, TOTAL_LAPS), race distance (RACE_DISTANCE), and session type flags (IS_QUALIFICATION, SPRINT_RACE, HAS_STANDING). This is the correct way to determine programmatically whether a session is a qualifying segment, a Sprint Race, or a points-eligible race - do not rely on the name field for this.
Working with fixture fields
A few fields in the base fixture response are worth understanding before you build:
leg- indicates the session's position within its session type."2/3"means Qualifying 2 of 3. On Sprint weekends, Practice 1 returns"1/1"because it is the only practice session.result_info- a human-readable result summary (e.g."Max Verstappen won."). This isnulluntil a session concludes. Use?include=stateto check live session status.starting_at- always in UTC. Convert to the user's local timezone in your application.placeholder-trueif the session slot exists but a start time has not yet been confirmed. Filter these out when building schedule displays.group_id,aggregate_id,round_id,length,has_odds,has_premium_odds- not used in the Motorsport API. These fields are inherited from the shared v3 response structure and can be safely ignored.
Common requests
Single session with full results and circuit info:
Live session with lap counter and running order:
Already have the fixture ID for a known active session?
All sessions on a specific date:
All sessions across a race weekend:
For a full season's fixtures in a single call, use the Schedules endpoint instead. It returns all stages and fixtures for a season together and avoids the 100-day limit on the date range endpoint.
Related entities
Get an overview and explanation of all the fields returned in the API response:
Related pages
Data Model - How fixtures relate to stages, seasons, and leagues
Live - Active fixtures only
Stages - Race weekends that contain fixtures
Laps - Lap-by-lap timing scoped to a fixture
Pitstops - Pit lane visits scoped to a fixture
Stints - Tyre stints scoped to a fixture
Schedules - Full season fixture list in one call
States - All possible fixture states
Last updated
Was this helpful?