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

Stages

This guide covers how stages work in the Motorsport API, how to retrieve them, and how to use them to access the sessions within a race weekend.

When to use this

Use the Stages endpoints when you want to:

  • Retrieve a specific race weekend by its ID

  • List all race weekends in a season with their dates and status

  • Get all sessions (fixtures) for a specific race weekend

  • Check whether a race weekend is finished or currently active

What a stage is

A stage represents a race weekend. It groups all the individual sessions at a single circuit: practice sessions, qualifying, the sprint race (if applicable), and the main race. Each session within the weekend is a Fixture.

Stage (race weekend: "Bahrain Grand Prix 2025")
  └── Fixtures
        β”œβ”€β”€ Practice 1
        β”œβ”€β”€ Practice 2
        β”œβ”€β”€ Practice 3
        β”œβ”€β”€ Qualifying
        └── Race

The Stage entity fields

Field
Description

id

Unique ID of the stage

sport_id

Sport ID (2 for Motorsport)

league_id

The championship this weekend belongs to

season_id

The season this weekend belongs to

type_id

The stage type (e.g. race weekend, test session)

name

The name of the race weekend (e.g. "Bahrain Grand Prix 2025")

sort_order

The round number within the season

finished

Whether the weekend is complete

is_current

Whether this is the current active race weekend

starting_at

Start date of the weekend

ending_at

End date of the weekend

games_in_current_week and tie_breaker_rule_id are not used in the Motorsport API.

Retrieving stages

Get all stages for a season:

Get a specific stage by ID:

Get all sessions within a stage:

Get stages with their type resolved:

Available includes

sport league season type fixtures

Working with the data

List all race weekends in a season

Get all sessions for a race weekend

Find the current active race weekend

Common pitfalls

Using the Schedule endpoint when you need includes. The Schedule endpoint returns a denormalised view of stages and fixtures together, but has no include options. If you need to attach results, lineups, or venue details to fixtures within a weekend, query the stage with &include=fixtures first, then enrich individual fixtures via the Fixtures endpoint.

Confusing sort_order with id. sort_order is the round number within the season (1, 2, 3...). id is the unique database ID of the stage. Use sort_order for display and sorting, id for API lookups.

finished returns a boolean, is_current also returns a boolean. Both are true booleans on the Stage entity (unlike is_current on Season which returns an integer). Check the entity page for the specific type of each field before writing comparison logic.

type_id requires a separate lookup. The stage type (e.g. race weekend vs test session) is an integer ID that maps to a type entity. Include type to get the human-readable label, or fetch all types once and cache them locally.

Common errors

Status
Likely cause

401

Missing or invalid api_token

404

The stage_id does not exist or is not in your subscription

See also

Related tutorials

Reference

FAQ

What is the difference between a stage and a fixture? A stage is the race weekend as a whole. A fixture is a single session within that weekend (e.g. Practice 1 or the Race). A stage contains multiple fixtures.

How do I find a stage ID if I only know the race name or round number? Query all stages for the season with stageSeasons filter, then match on name or sort_order.

Does each season always start at sort_order 1? Yes. sort_order reflects the round number within the season, starting at 1.

How do I tell if a weekend has a sprint race? Fetch the stage with &include=fixtures and check the fixture names. A sprint weekend will include a "Sprint Qualifying" and "Sprint" fixture in addition to the standard sessions.

Last updated

Was this helpful?