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

# Skin Levels — GET /v1/weapons/skinlevels endpoints

> List all Valorant weapon skin levels or retrieve a single level by UUID. Levels are Radianite-unlocked upgrades adding effects and animations.

Skin levels are the progressive upgrade tiers within a weapon skin, unlocked one at a time using Radianite Points. The first level (Level 1) is always included with the skin purchase and represents the base version of the skin. Subsequent levels add enhancements such as particle effects, custom animations, altered sound effects, or a finisher animation. You can use these endpoints to fetch all levels across all skins in a single request, or retrieve a specific level by its UUID.

***

## Understanding levelItem values

The `levelItem` field describes what kind of upgrade a level adds. The first level of any skin always has `levelItem: null` since it is the baseline. The following values appear on higher levels:

| `levelItem` value                          | Description                                                                             |
| ------------------------------------------ | --------------------------------------------------------------------------------------- |
| `EEquippableSkinLevelItem::VFX`            | Adds custom particle visual effects to the weapon (muzzle flash, bullet tracers, etc.). |
| `EEquippableSkinLevelItem::Animation`      | Adds custom animations (inspect, equip, or firing animations).                          |
| `EEquippableSkinLevelItem::Finisher`       | Adds a unique kill finisher animation shown when you eliminate an enemy.                |
| `EEquippableSkinLevelItem::SoundEffects`   | Replaces the weapon's default audio with custom sound effects.                          |
| `EEquippableSkinLevelItem::Transformation` | Applies a visual transformation to the weapon model itself.                             |
| `EEquippableSkinLevelItem::KillCounter`    | Adds a kill-counter display to the weapon.                                              |
| `EEquippableSkinLevelItem::TopFrag`        | Unlocks special effects for the top-fragging player.                                    |
| `EEquippableSkinLevelItem::InspectAndKill` | Adds a combined inspect animation and kill effect.                                      |

<Note>
  The set of `levelItem` values that appear in API responses reflects Valorant's internal enum strings. New values may be added as Riot introduces new skin features.
</Note>

***

## GET /v1/weapons/skinlevels

Retrieve a list of all weapon skin levels across every skin in Valorant.

### Query parameters

<ParamField query="language" type="string" default="en-US">
  The locale used for all display name strings in the response. Accepts any Valorant-supported locale, for example `en-US`, `de-DE`, `ja-JP`, or `zh-TW`.
</ParamField>

### Example request

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

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

### Response

<ResponseField name="status" type="number" required>
  HTTP status code of the response. `200` indicates success.
</ResponseField>

<ResponseField name="data" type="object[]" required>
  Array of skin level objects, one per level across all skins.

  <Expandable title="data[] properties">
    <ResponseField name="uuid" type="string" required>
      Unique identifier for this skin level.
    </ResponseField>

    <ResponseField name="displayName" type="string" required>
      Human-readable level name, such as `"Prime Vandal Level 2"`.
    </ResponseField>

    <ResponseField name="levelItem" type="string | null" required>
      The type of upgrade this level adds, expressed as an internal enum string. `null` for the first (base) level of any skin. See the [levelItem values table](#understanding-levelitem-values) above for all possible values and their meanings.
    </ResponseField>

    <ResponseField name="displayIcon" type="string | null">
      URL to the level's display icon image. `null` for levels that do not have a distinct icon.
    </ResponseField>

    <ResponseField name="streamedVideo" type="string | null">
      URL to a preview video demonstrating this level's effect. Available for levels with significant visual or audio upgrades; `null` otherwise.
    </ResponseField>

    <ResponseField name="assetPath" type="string" required>
      Internal Unreal Engine asset path for this skin level.
    </ResponseField>
  </Expandable>
</ResponseField>

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "9466088a-4ad8-cb08-ec9a-45aaba3a6acd",
      "displayName": ".EXE Ghost",
      "levelItem": null,
      "displayIcon": "https://valmedia.teamfortuna.xyz/weapons-skinlevels/9466088a-4ad8-cb08-ec9a-45aaba3a6acd/displayicon.png",
      "streamedVideo": null,
      "assetPath": "ShooterGame/Content/Equippables/Guns/Sidearms/Luger/Grid/Levels/LugerPistol_GridLv1_PrimaryAsset"
    }
  ]
}
```
