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

πŸ“…Seasons

🏎️ Motorsport API Required

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

View pricing β†’

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

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 is 25273. 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 - true for 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 - true for a season that has been announced but not yet started. A season moves from pending: true β†’ is_current: true β†’ finished: true over its lifecycle.

  • finished - true once 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 in YYYY-MM-DD format. 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:

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

  • Leagues - The league a season belongs to, and the currentSeason include shortcut

  • Stages - 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?