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

# Weapons API — GET /v1/weapons endpoints

> Fetch all Valorant weapons or a single weapon by UUID. Returns weapon stats, categories, shop data, and default skin information.

The Weapons endpoints give you access to every buyable gun and the melee knife in Valorant, including ballistic stats, shop pricing, and references to the weapon's default skin. You can retrieve the full weapon roster or look up a specific weapon by its UUID. All responses include a `weaponStats` block with detailed combat data and a `shopData` block with in-game store information.

<Note>
  The `skins` array returned on weapon objects is a condensed summary. For full skin details — including chromas, levels, and streamed video — use the dedicated [Weapon Skins](/api-reference/weapon-skins) endpoints.
</Note>

***

## GET /v1/weapons

Retrieve a list of all weapons in Valorant. The response includes every weapon's stats, shop metadata, and a summary of its available skins.

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

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

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

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

    <ResponseField name="category" type="string" required>
      Internal category enum string, for example `"EEquippableCategory::Heavy"`. Reflects the weapon class (Sidearm, SMG, Rifle, Heavy, etc.).
    </ResponseField>

    <ResponseField name="defaultSkinUuid" type="string" required>
      UUID of the weapon's default (stock) skin.
    </ResponseField>

    <ResponseField name="displayIcon" type="string" required>
      URL to the weapon's icon image, used in most UI contexts.
    </ResponseField>

    <ResponseField name="killStreamIcon" type="string" required>
      URL to the small icon shown in the kill feed when this weapon is used.
    </ResponseField>

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

    <ResponseField name="weaponStats" type="object | null">
      Combat statistics for the weapon. `null` for the melee knife.

      <Expandable title="weaponStats properties">
        <ResponseField name="fireRate" type="number">
          Rounds fired per second in primary fire mode.
        </ResponseField>

        <ResponseField name="magazineSize" type="number">
          Number of rounds in a full magazine.
        </ResponseField>

        <ResponseField name="runSpeedMultiplier" type="number">
          Movement speed multiplier applied while the weapon is equipped (relative to base movement speed).
        </ResponseField>

        <ResponseField name="equipTimeSeconds" type="number">
          Time in seconds to draw the weapon.
        </ResponseField>

        <ResponseField name="reloadTimeSeconds" type="number">
          Time in seconds to complete a full reload.
        </ResponseField>

        <ResponseField name="firstBulletAccuracy" type="number">
          Spread value for the first bullet fired. Lower is more accurate.
        </ResponseField>

        <ResponseField name="shotgunPelletCount" type="number">
          Number of pellets fired per shot. `1` for non-shotgun weapons.
        </ResponseField>

        <ResponseField name="wallPenetration" type="string">
          Wall penetration tier as an enum string, for example `"EWallPenetrationDisplayType::Medium"`.
        </ResponseField>

        <ResponseField name="feature" type="string | null">
          Special feature flag for weapons with unique mechanics.
        </ResponseField>

        <ResponseField name="fireMode" type="string | null">
          Firing mode descriptor (e.g. burst, automatic). `null` for standard automatic fire.
        </ResponseField>

        <ResponseField name="altFireType" type="string | null">
          Describes the alternate fire behavior. `null` for weapons with no alt-fire.
        </ResponseField>

        <ResponseField name="adsStats" type="object | null">
          Stats specific to Aim Down Sights (ADS) mode. `null` for weapons that do not support ADS.

          <Expandable title="adsStats properties">
            <ResponseField name="zoomMultiplier" type="number">
              Field of view zoom factor when in ADS.
            </ResponseField>

            <ResponseField name="fireRate" type="number">
              Rounds per second while in ADS.
            </ResponseField>

            <ResponseField name="runSpeedMultiplier" type="number">
              Movement speed multiplier while in ADS.
            </ResponseField>

            <ResponseField name="burstCount" type="number">
              Number of rounds in a burst while in ADS.
            </ResponseField>

            <ResponseField name="firstBulletAccuracy" type="number">
              Spread of the first bullet while in ADS.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="altShotgunStats" type="object | null">
          Alternate fire mode stats for shotguns. `null` for non-shotgun weapons.
        </ResponseField>

        <ResponseField name="airBurstStats" type="object | null">
          Stats for weapons with an air burst mechanic. `null` for most weapons.
        </ResponseField>

        <ResponseField name="damageRanges" type="object[]">
          Array of damage values broken down by engagement range.

          <Expandable title="damageRanges[] properties">
            <ResponseField name="rangeStartMeters" type="number">
              Minimum distance (in meters) for this damage bracket.
            </ResponseField>

            <ResponseField name="rangeEndMeters" type="number">
              Maximum distance (in meters) for this damage bracket.
            </ResponseField>

            <ResponseField name="headDamage" type="number">
              Damage dealt on a headshot within this range.
            </ResponseField>

            <ResponseField name="bodyDamage" type="number">
              Damage dealt on a body shot within this range.
            </ResponseField>

            <ResponseField name="legDamage" type="number">
              Damage dealt on a leg shot within this range.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="shopData" type="object | null">
      In-game store information. `null` for weapons that cannot be purchased (e.g. the melee knife's base form).

      <Expandable title="shopData properties">
        <ResponseField name="cost" type="number">
          Purchase price in Creds.
        </ResponseField>

        <ResponseField name="category" type="string">
          Internal shop category identifier.
        </ResponseField>

        <ResponseField name="categoryText" type="string">
          Display label for the shop category, such as `"Heavy Weapons"`.
        </ResponseField>

        <ResponseField name="gridPosition" type="object">
          Row and column position of the weapon in the buy menu grid.
        </ResponseField>

        <ResponseField name="canBeTrashed" type="boolean">
          Whether the weapon can be dropped during the buy phase.
        </ResponseField>

        <ResponseField name="newImage" type="string | null">
          URL to the weapon's shop artwork image.
        </ResponseField>

        <ResponseField name="assetPath" type="string">
          Internal Unreal Engine asset path for the shop entry.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="skins" type="object[]">
      Condensed list of skins available for this weapon. See the [Weapon Skins](/api-reference/weapon-skins) endpoints for full skin data.
    </ResponseField>
  </Expandable>
</ResponseField>

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "55d8a0f4-4274-ca67-fe2c-06ab45efdf58",
      "displayName": "Ares",
      "skins": [
        {
          "uuid": "e089be41-4242-b28d-1894-bbba193957a2",
          "displayName": "Infantry Ares",
          "themeUuid": "ba8d1971-47ea-fe7c-20c2-2f95c63d567d",
          "contentTierUuid": "12683d76-48d7-84a3-4e09-6985794f0445",
          "displayIcon": "https://valmedia.teamfortuna.xyz/weapons-skins/e089be41-4242-b28d-1894-bbba193957a2/displayicon.png",
          "wallpaper": null,
          "assetPath": "ShooterGame/Content/Equippables/Guns/HvyMachineGuns/LMG/Historical/LMG_Historical_PrimaryAsset",
          "chromas": [
            {
              "uuid": "ae8e1d37-46b6-9b74-ffd9-1fa1b5bac490",
              "displayName": "Infantry Ares",
              "displayIcon": "https://valmedia.teamfortuna.xyz/weapons-skinchromas/ae8e1d37-46b6-9b74-ffd9-1fa1b5bac490/displayicon.png",
              "fullRender": "https://valmedia.teamfortuna.xyz/weapons-skinchromas/ae8e1d37-46b6-9b74-ffd9-1fa1b5bac490/fullrender.png",
              "swatch": null,
              "streamedVideo": null,
              "assetPath": "ShooterGame/Content/Equippables/Guns/HvyMachineGuns/LMG/Historical/Chromas/Standard/LMG_Historical_Standard_PrimaryAsset"
            }
          ],
          "levels": [
            {
              "uuid": "6df8b470-4248-e29d-2879-bd840ed224c1",
              "displayName": "Infantry Ares",
              "levelItem": null,
              "displayIcon": "https://valmedia.teamfortuna.xyz/weapons-skinlevels/6df8b470-4248-e29d-2879-bd840ed224c1/displayicon.png",
              "streamedVideo": null,
              "assetPath": "ShooterGame/Content/Equippables/Guns/HvyMachineGuns/LMG/Historical/Levels/LMG_Historical_Lv1_PrimaryAsset"
            }
          ]
        }
      ],
      "assetPath": "ShooterGame/Content/Equippables/Guns/HvyMachineGuns/LMG/LMGPrimaryAsset",
      "displayIcon": "https://valmedia.teamfortuna.xyz/weapons/55d8a0f4-4274-ca67-fe2c-06ab45efdf58/displayicon.png",
      "killStreamIcon": "https://valmedia.teamfortuna.xyz/weapons/55d8a0f4-4274-ca67-fe2c-06ab45efdf58/killstreamicon.png"
    }
  ]
}
```
