For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fixtures

This guide covers how to retrieve fixtures, understand the different session types within a race weekend, and enrich fixture responses with results, lineups, and session metadata.

When to use this

Use the Fixtures endpoints when you want to:

  • Retrieve a specific session by its ID

  • Get all sessions across a season or date range

  • Enrich a session with its results, lineup, lap data, or track metadata

  • Check the current state of a session or how many laps have been completed

  • Detect recently updated fixtures for syncing a local database

What a fixture is

A fixture is a single session within a race weekend: a practice session, qualifying session, sprint qualifying, sprint race, or the main race. Multiple fixtures belong to a stage (race weekend), which belongs to a season, which belongs to a league.

The Fixture entity fields

Field
Description
Type

id

Unique ID of the fixture

integer

sport_id

Sport ID (2 for Motorsport)

integer

league_id

The championship this session belongs to

integer

season_id

The season this session belongs to

integer

stage_id

The race weekend this session belongs to

integer

state_id

The current state of the session

integer

venue_id

The circuit where this session is held

integer

name

The session name (e.g. "Practice 1", "Race")

string

starting_at

Start date and time in UTC

date

starting_at_timestamp

Start time as a Unix timestamp

integer

result_info

Final result summary (populated after session ends)

string

leg

Session position within its type (e.g. "2/3" for Practice 2 of 3)

string

details

Additional details about the session

string

placeholder

Whether this is a placeholder fixture

boolean

group_id, aggregate_id, round_id, has_odds, has_premium_odds, and length are not used in the Motorsport API.

The Fixtures endpoints

The Fixtures section has six endpoints:

Endpoint
Description

GET /motorsport/fixtures

All fixtures in your subscription

GET /motorsport/fixtures/{id}

A single fixture by ID

GET /motorsport/fixtures/multi/{ids}

Multiple fixtures by comma-separated IDs

GET /motorsport/fixtures/latest

All fixtures updated in the past 10 seconds

GET /motorsport/fixtures/date/{date}

All fixtures on a specific date (YYYY-MM-DD)

GET /motorsport/fixtures/between/{start}/{end}

All fixtures between two dates

Available includes

sport stage league season venue state lineups participants metadata results latestLaps pitstops latestPitstops stints latestStints

Retrieving fixtures

Get a single fixture by ID:

Get all fixtures for a season:

Get all fixtures on a specific date:

Get all fixtures between two dates:

Get fixtures recently updated (for sync workflows):

Enriching fixtures

With state and venue:

With results and lineups:

With session metadata (lap count, fastest lap, race distance):

The metadata include returns session-level data typed by ID. The confirmed fixture metadata types are:

ID
Developer Name
Description

9737

IS_QUALIFICATION

Whether the session is part of a qualifying segment

9734

SPRINT_RACE

Whether the session is a sprint race with sprint points

164

HAS_STANDING

Whether the session contributes to championship standings

172

SPLIT_POINTS_RULE

Whether the half points rule applies

9736

CURRENT_LAP

Current lap number (live sessions)

105427

TOTAL_LAPS

Total lap count for the session

9716

FASTEST_LAP

Fastest lap time and lap number

114509

RACE_DISTANCE

Race distance in kilometres

110619

LEGACY_ID

The v1 stage ID for migration purposes

Match metadata entries by their type_id to identify which value you are reading.

Working with the data

Get a fixture with full session context

Read a metadata value by developer name

Get all fixtures for a race weekend

Detect a sprint weekend

Understanding the leg field

The leg field encodes a session's position within its session type:

leg value

Meaning

"1/3"

Practice 1 of 3

"2/3"

Practice 2 of 3

"3/3"

Practice 3 of 3 (or Qualifying 3 of 3)

"1/1"

A single session of its type (Race, or Practice 1 when sprint weekend replaces other practice sessions)

On a standard weekend, Practice 1 returns "1/3". On a sprint weekend where practice sessions are reduced, Practice 1 returns "1/1" since there are no further practice sessions of that type.

Common pitfalls

Using GET All Fixtures without a filter. This returns your entire subscription, which can be thousands of records across all seasons. Always scope your request with fixtureSeasons, fixtureStages, or a date-based endpoint.

Reading length for lap count. The length field is listed as currently unused in the Motorsport API. Use the TOTAL_LAPS metadata type (ID 105427) via &include=metadata for the lap count instead.

Assuming result_info is populated. result_info is only filled after a session has finished. For live race position data, use &include=results or &include=lineups.details.

Treating leg as a round number. leg is the session's position within its own session type, not the round number within the season. Use stage.sort_order for the round number.

group_id, aggregate_id, and round_id are not used. These fields exist for cross-sport compatibility but will always be null in motorsport responses.

Common errors

Status
Likely cause

401

Missing or invalid api_token

404

The fixture_id does not exist or is not in your subscription

422

Query complexity exceeded - reduce nested includes

See also

Related tutorials

Reference

FAQ

What is the difference between a fixture and a livescore? A fixture is a session at any point in time: past, present, or future. A livescore is the same data filtered to a 15-minute active window around a session. Use livescores for real-time polling and fixtures for everything else.

How do I find a fixture ID if I only know the race date? Use GET /motorsport/fixtures/date/{YYYY-MM-DD} or GET /motorsport/fixtures/between/{start}/{end} with a date range covering the race weekend, then filter by name for the specific session type.

How do I know if a fixture has been updated recently? Use GET /motorsport/fixtures/latest which returns all fixtures updated in the past 10 seconds. This is the recommended approach for keeping a local database in sync without re-fetching the full dataset.

Can I retrieve multiple specific fixtures in one call? Yes. Use GET /motorsport/fixtures/multi/{ids} with a comma-separated list of fixture IDs.

How do I tell if a session counts towards the championship standings? Include metadata and check the HAS_STANDING type (ID 164). A value of true means the session results contribute to the driver and constructor championships.

Last updated

Was this helpful?