πŸ“†Stages

🏎️ Motorsport API Required

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

View pricing β†’

A stage represents a full race weekend within a championship season - for example, the Australian Grand Prix or the Chinese Grand Prix. Each stage contains multiple fixtures (individual sessions such as Practice 1, Qualifying, and the Race itself).

Use the Stages endpoints to retrieve race weekend details, list all weekends in a season, or search for a specific grand prix.

Stages vs Fixtures: A Stage is the race weekend as a whole. A Fixture is a single on-track session within that weekend. If you are looking for session-level data (results, lap times, pitstops), start with the Fixtures endpoints. See the Data Model for the full hierarchy.

Available endpoints

Include options

You can enrich stage responses using include:

sport, league, season, type, fixtures

Want to keep responses lighter and faster? Use select to request only the fields you need. See: Request options

Using fixtures

Adding ?include=fixtures returns all sessions for a stage in a single call - Practice 1 through to the Race. This is the most efficient way to build a race weekend schedule view. You can nest further includes on the returned fixtures up to a total include depth of 4:

Using type

The type_id field on a stage indicates the stage type. Resolve it with ?include=type to get the human-readable label. For Formula 1 race weekends this will typically return "Race" or "Sprint", allowing you to distinguish standard weekends from Sprint weekends programmatically.

Working with stage fields

  • sort_order - the calendar position of the stage within the season (1 = first race weekend, 2 = second, etc.). Use this field to order race weekends correctly when displaying a season calendar. Do not rely on starting_at alone for ordering, as dates can occasionally be updated.

  • starting_at / ending_at - date only (YYYY-MM-DD), not datetime. A race weekend typically runs Thursday to Sunday. For session-level start times (with time of day), use ?include=fixtures and read starting_at on the individual fixture objects.

  • finished - true once all sessions in the stage are complete. Useful for filtering between upcoming, in-progress, and completed race weekends.

  • is_current - true for the stage that is currently active or most recently completed. Only one stage carries this flag at a time.

  • games_in_current_week and tie_breaker_rule_id - not used in the Motorsport API. These fields are inherited from the shared v3 response structure and can be safely ignored.

Common requests

All race weekends in a season:

Single race weekend with all its sessions:

All upcoming race weekends (not yet finished):

Search for a specific grand prix by name:

To retrieve all stages and their fixtures in a single call, use the Schedules endpoint instead. It returns the full season structure - stages, fixtures, and venues - in one response and is the most efficient option for building season calendars.

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

  • Data Model - How stages fit into the League > Season > Stage > Fixture hierarchy

  • Fixtures - Individual sessions within a stage

  • Seasons - The season a stage belongs to

  • Schedules - Full season stage and fixture list in one call

  • Venues - The circuit a stage is held at

Last updated

Was this helpful?