> ## Documentation Index
> Fetch the complete documentation index at: https://docs.teamfortuna.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Seasons API — GET /v1/seasons endpoints

> Retrieve all Valorant seasons or a single season by UUID. Access competitive season records linking acts to their active competitive tier sets.

The Seasons API provides data on Valorant's episodic content structure. Seasons are organized into episodes (multi-act periods) and acts (roughly six-week ranked play windows). In addition to the standard season list, you can query competitive season data, which maps each act to a specific set of competitive tiers — useful for building rank history tools or tracking how the tier system has evolved across episodes.

<Note>
  The `User-Agent` header is required for all requests. Use the format `AppName/Version (+URL)` — for example, `MyApp/1.0 (+https://example.com)`.
</Note>

## Endpoints

| Method | Path                             | Description                                 |
| ------ | -------------------------------- | ------------------------------------------- |
| GET    | `/v1/seasons`                    | Returns all seasons                         |
| GET    | `/v1/seasons/{uuid}`             | Returns a single season by UUID             |
| GET    | `/v1/seasons/competitive`        | Returns all competitive season data         |
| GET    | `/v1/seasons/competitive/{uuid}` | Returns a single competitive season by UUID |

***

## GET /v1/seasons

Returns an array of all Valorant seasons, including episodes and acts.

### Request parameters

<ParamField header="User-Agent" type="string" required>
  Identifies your application. Format: `AppName/Version (+URL)`.
</ParamField>

<ParamField query="language" type="string" default="en-US">
  Locale for localized display names. Example: `de-DE`, `vi-VN`.
</ParamField>

### Example request

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://astra.teamfortuna.xyz/v1/seasons" \
    --header "User-Agent: MyApp/1.0 (+https://example.com)"
  ```

  ```bash cURL with language theme={null}
  curl --request GET \
    --url "https://astra.teamfortuna.xyz/v1/seasons?language=de-DE" \
    --header "User-Agent: MyApp/1.0 (+https://example.com)"
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "3ea2b318-423b-cf86-25da-7cbb0eefbe2d",
      "displayName": "ACT I",
      "title": "",
      "type": "EAresSeasonType::Act",
      "startTime": "2026-01-07T00:00:00Z",
      "endTime": "2026-03-18T00:00:00Z",
      "parentUuid": "15a01c8a-4637-7b7b-de7b-9f906719c020",
      "assetPath": "ShooterGame/Content/Seasons/Season_EpisodeV26-1_Act1_DataAsset"
    }
  ]
}
```

***

## GET /v1/seasons/{uuid}

Returns a single season matching the provided UUID.

### Request parameters

<ParamField path="uuid" type="string" required>
  The UUID of the season to retrieve.
</ParamField>

<ParamField header="User-Agent" type="string" required>
  Identifies your application. Format: `AppName/Version (+URL)`.
</ParamField>

<ParamField query="language" type="string" default="en-US">
  Locale for localized display names.
</ParamField>

### Example request

```bash cURL theme={null}
curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/seasons/0df5adb9-4dc2-4e28-aac6-edd0eb6a6839" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"
```

***

## GET /v1/seasons/competitive

Returns an array of all competitive season records. Each record links a season act to the competitive tier set active during that period.

### Request parameters

<ParamField header="User-Agent" type="string" required>
  Identifies your application. Format: `AppName/Version (+URL)`.
</ParamField>

<ParamField query="language" type="string" default="en-US">
  Locale for localized data.
</ParamField>

### Example request

```bash cURL theme={null}
curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/seasons/competitive" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"
```

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "8d9e3688-470b-c0e0-5b20-ca964d907adb",
      "startTime": "2020-04-06T16:00:00Z",
      "endTime": "2020-05-29T06:59:00Z",
      "seasonUuid": "0df5adb9-4dcb-6899-1306-3e9860661dd3",
      "competitiveTiersUuid": "97071510-9fef-31b8-8356-2cc03fdf1bf8",
      "borders": null,
      "assetPath": "ShooterGame/Content/Seasons/Competitive/CompetitiveSeason_CB_DataAsset"
    }
  ]
}
```

***

## GET /v1/seasons/competitive/{uuid}

Returns a single competitive season record by UUID.

### Request parameters

<ParamField path="uuid" type="string" required>
  The UUID of the competitive season to retrieve.
</ParamField>

<ParamField header="User-Agent" type="string" required>
  Identifies your application. Format: `AppName/Version (+URL)`.
</ParamField>

<ParamField query="language" type="string" default="en-US">
  Locale for localized data.
</ParamField>

### Example request

```bash cURL theme={null}
curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/seasons/competitive/3e47230a-4d87-48b0-beac-6c2c6b9e3c91" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"
```

***

## Response fields

### Season fields

<ResponseField name="uuid" type="string" required>
  Unique identifier for the season.
</ResponseField>

<ResponseField name="displayName" type="string" required>
  Localized display name of the season (e.g., `"EPISODE 8 ACT 3"`).
</ResponseField>

<ResponseField name="type" type="string">
  Season type identifier. Common values: `"EAresSeasonType::Act"`, `"EAresSeasonType::Episode"`.
</ResponseField>

<ResponseField name="startTime" type="string">
  ISO 8601 UTC timestamp for the season's start date.
</ResponseField>

<ResponseField name="endTime" type="string">
  ISO 8601 UTC timestamp for the season's end date.
</ResponseField>

<ResponseField name="parentUuid" type="string">
  UUID of the parent episode. Present on act-type seasons; `null` on episode-type seasons.
</ResponseField>

<ResponseField name="assetPath" type="string">
  Internal Unreal Engine asset path.
</ResponseField>

### Competitive season fields

<ResponseField name="uuid" type="string" required>
  Unique identifier for the competitive season record.
</ResponseField>

<ResponseField name="startTime" type="string">
  ISO 8601 UTC timestamp for when ranked play opened for this act.
</ResponseField>

<ResponseField name="endTime" type="string">
  ISO 8601 UTC timestamp for when ranked play closed for this act.
</ResponseField>

<ResponseField name="seasonUuid" type="string">
  UUID of the corresponding season act. Use this to join with the `/v1/seasons` response.
</ResponseField>

<ResponseField name="competitiveTiersUuid" type="string">
  UUID of the competitive tier set active during this season. Use this to join with the `/v1/competitivetiers` response.
</ResponseField>

<ResponseField name="assetPath" type="string">
  Internal Unreal Engine asset path.
</ResponseField>

<Tip>
  Use `competitiveTiersUuid` alongside the Competitive Tiers API to look up the exact ranked ladder (Iron through Radiant) that was in use during any given act.
</Tip>
