π Seasons
ποΈ Motorsport API Required
All Seasons endpoints require an active Motorsport API subscription (β¬79/mo, 3,000 API calls/hr).
A season represents a specific year of competition within a motorsport league - for example, the 2025 Formula 1 World Championship. Seasons are the second level of the data hierarchy, sitting between a League and its Stages (race weekends).
Use the Seasons endpoints to retrieve season details, identify the current active season, and access season-level includes such as stages, fixtures, and competing teams.
Available endpoints
GET All Seasons: returns all seasons available in the Motorsport API.
GET Season by ID: returns a single season by its ID.
Include options
You can enrich season responses using include:
sport, league, stages, currentStage, fixtures, teams
Want to keep responses lighter and faster? Use select to request only the fields you need. See: Request options
stages vs fixtures
Both includes return session-level access but at different levels of detail. Use stages to get race weekends for the season - each stage object includes its own ID which you can then pass to the Stages endpoints or Fixtures endpoints. Use fixtures to get all individual sessions across the entire season in one call - this is a large response for a full 24-round season.
For most use cases, use stages to get race weekend structure, then fetch fixtures per stage as needed. Use the Schedules endpoint if you need stages, fixtures, and venues together in a single optimised call.
currentStage
Returns the race weekend currently in progress or most recently completed. Use this for "current round" widgets or to show live context without having to iterate through all stages.
Include depth: Seasons endpoints support a maximum of 3 nested includes.
Working with season fields
id- the unique season ID. The 2025 F1 season ID is25273. This is the ID used across Stages, Standings, Race Results, Drivers by Season, Teams by Season, and Schedules endpoints.name- the season year as a string, e.g."2025". Not an integer - parse accordingly if doing year comparisons.is_current-truefor the active season. Only one season carries this flag at a time. This is the quickest way to identify which season ID to use in other endpoints without hardcoding it.pending-truefor a season that has been announced but not yet started. A season moves frompending: trueβis_current: trueβfinished: trueover its lifecycle.finished-trueonce the final race of the season is complete.standings_recalculated_at- the datetime when championship standings were last recalculated. Use this as a cache invalidation signal for standing data - if this timestamp has not changed since your last fetch, the standings have not been updated.starting_at/ending_at- season start and end dates inYYYY-MM-DDformat. These are the dates of the first and last race weekends, not session datetimes.tie_breaker_rule_id- not meaningful for the Motorsport API.games_in_current_week- not used in the Motorsport API. Inherited from the shared v3 response structure and can be safely ignored.
Finding the current season ID
The most efficient way to get the current season ID without hardcoding it is via the Leagues endpoint with currentSeason:
Alternatively, fetch all seasons and filter for is_current: true:
Once you have the season ID, pass it to downstream endpoints:
Common requests
Current season with active race weekend:
Current season with all race weekends:
Current season with all competing teams:
All seasons - full history:
Related entities
Get an overview and explanation of all the fields returned in the API response:
Related pages
Leagues - The league a season belongs to, and the
currentSeasoninclude shortcutStages - Race weekends within a season
Schedules - Full season calendar with stages, fixtures, and venues in one call
Standings - Championship standings by season ID
Race Results - Season result records by season ID
Drivers - Drivers by season ID
Teams - Teams by season ID
Data Model - How seasons fit into the League > Season > Stage > Fixture hierarchy
Last updated
Was this helpful?