# Seasons

> **🏎️ Motorsport API Required**
>
> All Seasons endpoints require an active Motorsport API subscription (€79/mo, 3,000 API calls/hr).
>
> [View pricing →](https://www.sportmonks.com/formula-one-api/)

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](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/leagues) and its [Stages](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/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**](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/seasons/get-all-seasons): returns all seasons available in the Motorsport API.
* [**GET Season by ID**](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/seasons/get-season-by-id): returns a single season by its ID.

#### **Include options**

You can enrich season responses using `include`:

[`sport`](https://docs.sportmonks.com/v3/core-api/entities/core#sport), [`league`](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/entities/league), [`stages`](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/entities/stage), [`currentStage`](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/entities/stage), [`fixtures`](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/entities/fixture), [`teams`](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/entities/team)

{% hint style="info" %}
Want to keep responses lighter and faster? Use `select` to request only the fields you need. See: [Request options](https://docs.sportmonks.com/v3/motorsport-api/welcome/request-options)&#x20;
{% endhint %}

#### **`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](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/stages) or [Fixtures endpoints](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/fixtures). 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](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/schedules) 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`:

```http
GET /v3/motorsport/leagues/3468
?api_token=YOUR_TOKEN&include=currentSeason
```

Alternatively, fetch all seasons and filter for `is_current: true`:

```http
GET /v3/motorsport/seasons?api_token=YOUR_TOKEN
```

Once you have the season ID, pass it to downstream endpoints:

```http
GET /v3/motorsport/standings/drivers/seasons/SEASON_ID?api_token=YOUR_TOKEN
GET /v3/motorsport/stages/seasons/SEASON_ID?api_token=YOUR_TOKEN
GET /v3/motorsport/schedules/seasons/SEASON_ID?api_token=YOUR_TOKEN
```

#### **Common requests**

**Current season with active race weekend:**

```http
GET /v3/motorsport/seasons/SEASON_ID?api_token=YOUR_TOKEN&include=currentStage;league
```

**Current season with all race weekends:**

```http
GET /v3/motorsport/seasons/SEASON_ID?api_token=YOUR_TOKEN&include=stages
```

**Current season with all competing teams:**

```http
GET /v3/motorsport/seasons/SEASON_ID?api_token=YOUR_TOKEN&include=teams
```

**All seasons - full history:**

```http
GET /v3/motorsport/seasons?api_token=YOUR_TOKEN
```

#### **Related entities**

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

* [Season](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/entities/season)

#### **Related pages**

* [Leagues](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/leagues) - The league a season belongs to, and the `currentSeason` include shortcut
* [Stages](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/stages) - Race weekends within a season
* [Schedules](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/schedules) - Full season calendar with stages, fixtures, and venues in one call
* [Standings](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/standings) - Championship standings by season ID
* [Race Results](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/race-results) - Season result records by season ID
* [Drivers](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/drivers) - Drivers by season ID
* [Teams](https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/teams) - Teams by season ID
* [Data Model](https://docs.sportmonks.com/v3/motorsport-api/welcome/data-model) - How seasons fit into the League > Season > Stage > Fixture hierarchy


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportmonks.com/v3/motorsport-api/endpoints-and-entities/endpoints/seasons.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
