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

# Buddies API — GET /v1/buddies endpoints

> Fetch all Valorant weapon buddies or a single buddy by UUID. Includes buddy levels with their own UUIDs, display icons, and localized names.

Buddies are cosmetic weapon charms that players attach to their guns in Valorant. The Buddies API gives you access to every buddy in the game, including their unlock tiers (levels), display icons, and localized names. You can query the full list or retrieve a single buddy — and its levels — by UUID.

<Note>
  All requests must include a `User-Agent` header in the format `AppName/Version (+URL)`. Requests without it will be rejected.
</Note>

***

## GET /v1/buddies

Returns a list of all weapon buddies.

<Tip>
  Use the `language` query parameter to receive localized `displayName` values in the language of your choice.
</Tip>

### Query parameters

<ParamField query="language" type="string" default="en-US">
  BCP 47 locale string for response localization. Example: `ja-JP`, `de-DE`, `fr-FR`.
</ParamField>

### Example request

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

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe",
      "displayName": "¡Rico, po! Buddy",
      "isHiddenIfNotOwned": true,
      "themeUuid": null,
      "displayIcon": "https://valmedia.teamfortuna.xyz/buddies/f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe/displayicon.png",
      "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_PrimaryAsset",
      "levels": [
        {
          "uuid": "663901dc-4c1f-edc9-1768-f7a2ad92a865",
          "charmLevel": 1,
          "hideIfNotOwned": false,
          "displayName": "¡Rico, po! Buddy",
          "displayIcon": null,
          "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_Lv1_PrimaryAsset"
        }
      ]
    }
  ]
}
```

### Response fields

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

<ResponseField name="data" type="object[]" required>
  Array of buddy objects.

  <Expandable title="buddy properties">
    <ResponseField name="uuid" type="string" required>
      Unique identifier for the buddy.
    </ResponseField>

    <ResponseField name="displayName" type="string" required>
      Localized display name of the buddy.
    </ResponseField>

    <ResponseField name="isHiddenIfNotOwned" type="boolean" required>
      Whether this buddy is hidden in the store if the player does not own it.
    </ResponseField>

    <ResponseField name="themeUuid" type="string">
      UUID of the cosmetic theme this buddy belongs to. May be `null`.
    </ResponseField>

    <ResponseField name="displayIcon" type="string" required>
      URL of the buddy's display icon image.
    </ResponseField>

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

    <ResponseField name="levels" type="object[]" required>
      Array of level objects representing the buddy's unlock tiers.

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

        <ResponseField name="charmLevel" type="number" required>
          Numeric tier of this level (e.g. `1`).
        </ResponseField>

        <ResponseField name="displayName" type="string" required>
          Localized name for this level.
        </ResponseField>

        <ResponseField name="displayIcon" type="string" required>
          URL of the level's display icon.
        </ResponseField>

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

***

## GET /v1/buddies/\{uuid}

Returns a single buddy by its UUID.

### Path parameters

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

### Query parameters

<ParamField query="language" type="string" default="en-US">
  BCP 47 locale string for response localization.
</ParamField>

### Example request

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://astra.teamfortuna.xyz/v1/buddies/f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe?language=en-US" \
    --header "User-Agent: MyApp/1.0 (+https://example.com)"
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "status": 200,
  "data": {
    "uuid": "f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe",
    "displayName": "¡Rico, po! Buddy",
    "isHiddenIfNotOwned": true,
    "themeUuid": null,
    "displayIcon": "https://valmedia.teamfortuna.xyz/buddies/f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe/displayicon.png",
    "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_PrimaryAsset",
    "levels": [
      {
        "uuid": "663901dc-4c1f-edc9-1768-f7a2ad92a865",
        "charmLevel": 1,
        "hideIfNotOwned": false,
        "displayName": "¡Rico, po! Buddy",
        "displayIcon": null,
        "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_Lv1_PrimaryAsset"
      }
    ]
  }
}
```

***

## GET /v1/buddies/levels

Returns a flat list of all buddy levels across every buddy in the game. This is useful when you need to look up a level directly by its own UUID without knowing the parent buddy first.

### Query parameters

<ParamField query="language" type="string" default="en-US">
  BCP 47 locale string for response localization.
</ParamField>

### Example request

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

### Response

```json theme={null}
{
  "status": 200,
  "data": [
    {
      "uuid": "663901dc-4c1f-edc9-1768-f7a2ad92a865",
      "charmLevel": 1,
      "hideIfNotOwned": false,
      "displayName": "¡Rico, po! Buddy",
      "displayIcon": null,
      "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_Lv1_PrimaryAsset"
    }
  ]
}
```

### Response fields

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

<ResponseField name="data" type="object[]" required>
  Array of buddy level objects.

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

    <ResponseField name="charmLevel" type="number" required>
      Numeric tier of this level.
    </ResponseField>

    <ResponseField name="displayName" type="string" required>
      Localized name for this level.
    </ResponseField>

    <ResponseField name="displayIcon" type="string" required>
      URL of the level's display icon.
    </ResponseField>

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

***

## GET /v1/buddies/levels/\{uuid}

Returns a single buddy level by its UUID.

### Path parameters

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

### Query parameters

<ParamField query="language" type="string" default="en-US">
  BCP 47 locale string for response localization.
</ParamField>

### Example request

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://astra.teamfortuna.xyz/v1/buddies/f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe?language=en-US" \
    --header "User-Agent: MyApp/1.0 (+https://example.com)"
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "st{
  "status": 200,
  "data": {
    "uuid": "f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe",
    "displayName": "¡Rico, po! Buddy",
    "isHiddenIfNotOwned": true,
    "themeUuid": null,
    "displayIcon": "https://valmedia.teamfortuna.xyz/buddies/f79a3078-4c13-d7da-cb6e-d3bb8a4ddcbe/displayicon.png",
    "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_PrimaryAsset",
    "levels": [
      {
        "uuid": "663901dc-4c1f-edc9-1768-f7a2ad92a865",
        "charmLevel": 1,
        "hideIfNotOwned": false,
        "displayName": "¡Rico, po! Buddy",
        "displayIcon": null,
        "assetPath": "ShooterGame/Content/Equippables/Buddies/EmpanadaDePino/GunBuddy_EmpanadaDePino_Lv1_PrimaryAsset"
      }
    ]
  }
}
```
