> ## 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.

# Level Borders API — GET /v1/levelborders endpoints

> Fetch all Valorant account level border frames or a single border by UUID. Level borders appear around player portraits based on account level milestones.

The Level Borders API provides data on the decorative frame overlays that appear around a player's portrait in the Valorant UI. Borders change as players reach account level milestones — for example, at levels 20, 100, 200, and beyond — giving long-time players a visible marker of their playtime. Each border entry includes its starting level threshold and image assets for both the portrait frame and level number appearance.

<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/levelborders`        | Returns all level border definitions  |
| GET    | `/v1/levelborders/{uuid}` | Returns a single level border by UUID |

***

## GET /v1/levelborders

Returns an array of all account level border frame definitions.

### 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: `id-ID`, `ko-KR`.
</ParamField>

### Example request

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

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

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "ebc736cd-4b6a-137b-e2b0-1486e31312c9",
      "displayName": "Border Level 1",
      "startingLevel": 1,
      "levelNumber": null,
      "levelNumberAppearance": "https://valmedia.teamfortuna.xyz/levelborders/ebc736cd-4b6a-137b-e2b0-1486e31312c9/levelnumberappearance.png",
      "smallPlayerCardAppearance": "https://valmedia.teamfortuna.xyz/levelborders/ebc736cd-4b6a-137b-e2b0-1486e31312c9/smallplayercardappearance.png",
      "assetPath": "ShooterGame/Content/Personalization/LevelBorders/BorderLevel01Tier01_PrimaryAsset"
    }
  ]
}
```

***

## GET /v1/levelborders/{uuid}

Returns a single level border definition matching the provided UUID.

### Request parameters

<ParamField path="uuid" type="string" required>
  The UUID of the level border 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/levelborders/ebc736cd-4b6a-137b-e2b0-1486e31312c9" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"
```

### Response

```json theme={null}
{
  "status": 200,
  "data": {
    "uuid": "ebc736cd-4b6a-137b-e2b0-1486e31312c9",
    "displayName": "Level 1 Border",
    "startingLevel": 1,
    "levelNumber": null,
    "levelNumberAppearance": "https://valmedia.teamfortuna.xyz/levelborders/ebc736cd-4b6a-137b-e2b0-1486e31312c9/levelnumberappearance.png",
    "smallPlayerCardAppearance": "https://valmedia.teamfortuna.xyz/levelborders/ebc736cd-4b6a-137b-e2b0-1486e31312c9/smallplayercardappearance.png",
    "assetPath": "ShooterGame/Content/Personalization/LevelBorders/BorderLevel01Tier01_PrimaryAsset"
  }
}
```

***

## Response fields

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

<ResponseField name="displayName" type="string" required>
  Localized display name of the border (e.g., `"Level Border 1"`, `"Level Border 5"`).
</ResponseField>

<ResponseField name="startingLevel" type="number">
  The account level at which this border first becomes active. Use this value to determine which border a player at a given level should display.
</ResponseField>

<ResponseField name="levelNumberAppearance" type="string">
  URL to the image asset defining how the level number is rendered within this border style.
</ResponseField>

<ResponseField name="smallPlayerCardAppearance" type="string">
  URL to the small player card frame image. This is the border overlay applied to portrait thumbnails shown in scoreboards and pre-game lobby screens.
</ResponseField>

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

<Tip>
  To resolve a player's current border, sort all borders by `startingLevel` in descending order and select the first entry where `startingLevel` is less than or equal to the player's account level.
</Tip>
