Skip to main content
Premier is Valorant’s competitive ladder. Teams are bucketed into regional conferences and pick a team logo from a curated icon set. Use these endpoints to render conference standings, build a team-creation flow, or display a team’s chosen logo alongside its name.
Both sub-resources support the standard language query parameter for localized display names. The conference key is a stable identifier (e.g. na-east) that will not change across patches — prefer it over displayName for keys in your data store.

GET /v1/premier/conferences

Retrieve every Premier conference.

Query parameters

language
string
default:"en-US"
The locale used for displayName. Accepts any Valorant-supported locale, for example en-US, de-DE, ja-JP, or zh-TW.

Example request

curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/premier/conferences" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"

Response

status
number
required
HTTP status code of the response. 200 indicates success.
data
object[]
required
Array of conference objects.

Example response

{
  "status": 200,
  "data": [
    {
      "uuid": "1f1d7b1c-2c2a-4d8f-8e0b-3c4d5e6f7a80",
      "displayName": "NA East",
      "key": "na-east",
      "icon": "https://valmedia.teamfortuna.xyz/premier-conferences/1f1d7b1c-2c2a-4d8f-8e0b-3c4d5e6f7a80/icon.png",
      "isSuper": false,
      "assetPath": "ShooterGame/Content/Premier/Conferences/NA_East_PrimaryAsset"
    }
  ]
}

GET /v1/premier/conferences/

Retrieve a single conference by UUID.

Path parameters

uuid
string
required
UUID of the conference.

Query parameters

language
string
default:"en-US"
The locale used for displayName.

Example request

curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/premier/conferences/1f1d7b1c-2c2a-4d8f-8e0b-3c4d5e6f7a80" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"

Response

The response body has the same shape as a single entry in the list endpoint above, wrapped in { "status": 200, "data": { ... } }. Returns 404 when no conference with the given UUID exists.

GET /v1/premier/logos

Retrieve every Premier team logo.

Query parameters

language
string
default:"en-US"
The locale used for displayName. Accepts any Valorant-supported locale.

Example request

curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/premier/logos" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"

Response

status
number
required
HTTP status code of the response. 200 indicates success.
data
object[]
required
Array of team logo objects.

Example response

{
  "status": 200,
  "data": [
    {
      "uuid": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",
      "displayName": "Aegis",
      "iconName": "TX_TeamLogo_Aegis",
      "displayIcon": "https://valmedia.teamfortuna.xyz/premier-team-logos/a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d/displayicon.png",
      "assetPath": "ShooterGame/Content/Premier/TeamLogos/Aegis_PrimaryAsset"
    }
  ]
}

GET /v1/premier/logos/

Retrieve a single team logo by UUID.

Path parameters

uuid
string
required
UUID of the logo.

Query parameters

language
string
default:"en-US"
The locale used for displayName.

Example request

curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/premier/logos/a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"

Response

The response body has the same shape as a single entry in the list endpoint above, wrapped in { "status": 200, "data": { ... } }. Returns 404 when no logo with the given UUID exists.
The displayIcon returned by /v1/premier/logos is a base PNG painted with marker colors that map to the team’s customization slots. Substitute each marker with the team’s chosen color to render the customized logo.
Marker colorMeaning
BlackDo not replace — keep as-is in output
BlueOutline
RedPrimary color
GreenSecondary color
The team customization payload uses Unreal Engine’s normalized color format ((R=…,G=…,B=…,A=…) with each channel in [0, 1]). Convert it to 8-bit RGB before substituting, or pass plain RGB tuples directly.
When matching marker pixels, allow a tolerance band rather than an exact equality check. Anti-aliased edges sit between the marker color and the surrounding pixels — a band that’s too tight leaves colored fringes, one that’s too loose recolors detail you wanted to keep.