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

# Weapon Skins API — GET /v1/weapons/skins endpoints

> List all Valorant weapon skins or retrieve a single skin by UUID, including theme grouping, chroma color variants, and Radianite-unlocked levels.

Weapon skins are cosmetic reskins that change the visual appearance of a weapon. Each skin belongs to a named theme collection (such as "Prime" or "Glitchpop") identified by a `themeUuid`, and may have a `contentTierUuid` indicating its rarity tier. A skin is composed of two sub-collections: **chromas** (color or style variants of the skin) and **levels** (Radianite-unlocked upgrade tiers that add effects or animations). Use the list endpoint to browse all skins or the UUID endpoint to retrieve a specific one.

***

## Skin hierarchy

Understanding the relationship between skins, chromas, and levels helps you build richer UI:

* A **skin** is the top-level cosmetic item and represents the full package for a weapon theme.
* **Chromas** are color or style variants within that skin. The first chroma (`index 0`) is always the base skin appearance. Additional chromas are unlocked with Radianite Points.
* **Levels** are progressive upgrades within the skin, also unlocked with Radianite Points. Each level adds a new feature such as visual effects, custom animations, or a finisher. See the [Skin Levels](/api-reference/weapon-skinlevels) endpoints for full level details, and [Skin Chromas](/api-reference/weapon-skinchromas) for standalone chroma lookups.

***

## GET /v1/weapons/skins

Retrieve a list of all weapon skins in Valorant, each including their chromas and levels.

### 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 skins theme={null}
  curl --request GET \
    --url "https://astra.teamfortuna.xyz/v1/weapons/skins" \
    --header "User-Agent: MyApp/1.0 (+https://example.com)"
  ```

  ```bash With language theme={null}
  curl --request GET \
    --url "https://astra.teamfortuna.xyz/v1/weapons/skins?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 weapon skin objects.

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

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

    <ResponseField name="themeUuid" type="string" required>
      UUID of the theme collection this skin belongs to (for example, the "Prime" collection).
    </ResponseField>

    <ResponseField name="contentTierUuid" type="string | null">
      UUID of the content tier (rarity level) for this skin. `null` for default skins with no rarity tier.
    </ResponseField>

    <ResponseField name="displayIcon" type="string | null">
      URL to the skin's primary display icon image.
    </ResponseField>

    <ResponseField name="wallpaper" type="string | null">
      URL to a full-resolution wallpaper image for the skin, if available.
    </ResponseField>

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

    <ResponseField name="chromas" type="object[]" required>
      Color and style variants for this skin. The first element is always the base skin color.

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

        <ResponseField name="displayName" type="string" required>
          Display name of the chroma variant, such as `"Prime Vandal"` (base) or `"Prime Vandal\nVariant 1 Yellow"`.
        </ResponseField>

        <ResponseField name="displayIcon" type="string | null">
          URL to the chroma's display icon.
        </ResponseField>

        <ResponseField name="fullRender" type="string | null">
          URL to a full-resolution render of the weapon in this chroma.
        </ResponseField>

        <ResponseField name="swatch" type="string | null">
          URL to a small color swatch image, useful for color picker UI elements.
        </ResponseField>

        <ResponseField name="streamedVideo" type="string | null">
          URL to a preview video for this chroma, if available.
        </ResponseField>

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

    <ResponseField name="levels" type="object[]" required>
      Upgrade tiers for this skin, unlocked progressively with Radianite Points.

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

        <ResponseField name="displayName" type="string" required>
          Display name of the level, such as `"Prime Vandal Level 1"`.
        </ResponseField>

        <ResponseField name="levelItem" type="string | null">
          The type of upgrade this level adds, for example `"EEquippableSkinLevelItem::VFX"`. `null` for the base level. See the [Skin Levels](/api-reference/weapon-skinlevels) reference for all possible values.
        </ResponseField>

        <ResponseField name="displayIcon" type="string | null">
          URL to the level's display icon.
        </ResponseField>

        <ResponseField name="streamedVideo" type="string | null">
          URL to a preview video for this level's effect, if available.
        </ResponseField>

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

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "67d3e2f7-4b73-7598-0027-63bd9e2e5fcc",
      "displayName": ".EXE Ghost",
      "themeUuid": "271874eb-491b-eae3-51f8-6f93f93035f9",
      "contentTierUuid": "12683d76-48d7-84a3-4e09-6985794f0445",
      "displayIcon": null,
      "wallpaper": null,
      "assetPath": "ShooterGame/Content/Equippables/Guns/Sidearms/Luger/Grid/LugerPistol_Grid_PrimaryAsset",
      "chromas": [
        {
          "uuid": "12966603-4cb3-03dd-bf2e-338fb15d144f",
          "displayName": ".EXE Ghost",
          "displayIcon": "https://valmedia.teamfortuna.xyz/weapons-skinchromas/12966603-4cb3-03dd-bf2e-338fb15d144f/displayicon.png",
          "fullRender": "https://valmedia.teamfortuna.xyz/weapons-skinchromas/12966603-4cb3-03dd-bf2e-338fb15d144f/fullrender.png",
          "swatch": null,
          "streamedVideo": null,
          "assetPath": "ShooterGame/Content/Equippables/Guns/Sidearms/Luger/Grid/Chromas/Standard/LugerPistol_Grid_Standard_PrimaryAsset"
        }
      ],
      "levels": [
        {
          "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"
        }
      ]
    }
  ]
}
```
