πStages
ποΈ Motorsport API Required
All Stages endpoints require an active Motorsport API subscription (β¬79/mo, 3,000 API calls/hr).
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
GET All Stages: returns all stages available in the Motorsport API.
GET Stage by ID: returns a single stage by its ID.
GET Stages by Season ID: returns all stages linked to a provided season ID.
GET Stages by Search: returns stages that match your search query.
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
fixturesAdding ?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
typeThe 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 onstarting_atalone 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=fixturesand readstarting_aton the individual fixture objects.finished-trueonce all sessions in the stage are complete. Useful for filtering between upcoming, in-progress, and completed race weekends.is_current-truefor the stage that is currently active or most recently completed. Only one stage carries this flag at a time.games_in_current_weekandtie_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.
Related entities
Get an overview and explanation of all the fields returned in the API response:
Related pages
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?