Skip to main content
The Contracts API exposes the progression systems that reward players for earning XP in Valorant. This includes agent contracts — which unlock agent-specific sprays, player cards, and titles as you play — and the seasonal battle pass, which provides a time-limited reward track of cosmetics and currency. Each contract response includes the full chapter and level structure with rewards and XP costs.
The User-Agent header is required for all requests. Use the format AppName/Version (+URL) — for example, MyApp/1.0 (+https://example.com).

Endpoints

MethodPathDescription
GET/v1/contractsReturns all contracts
GET/v1/contracts/{uuid}Returns a single contract by UUID

GET /v1/contracts

Returns an array of all Valorant contracts, including agent contracts and battle passes.

Request parameters

User-Agent
string
required
Identifies your application. Format: AppName/Version (+URL).
language
string
default:"en-US"
Locale for localized display names. Example: ar-AE, tr-TR.

Example request

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

Response

{
  "status": 200,
  "data": [
    {
      "uuid": "64314233-457b-c490-8781-14b51bc57999",
      "displayName": "2022 Anımsama Bileti",
      "displayIcon": null,
      "shipIt": false,
      "useLevelVPCostOverride": false,
      "levelVPCostOverride": 0,
      "freeRewardScheduleUuid": null,
      "content": {
        "relationType": null,
        "relationUuid": null,
        "chapters": [
          {
            "isEpilogue": false,
            "levels": [
              {
                "isPurchasableWithVP": false,
                "isPurchasableWithDough": false,
                "reward": {
                  "type": "UObject",
                  "uuid": "4b00c963-4ff3-d147-f8ab-92b31a88c8a2",
                  "amount": 1,
                  "isHighlighted": false
                }
              }
            ],
            "freeRewards": null
          }
        ],
        "premiumRewardScheduleUuid": null,
        "premiumVPCost": 0
      },
      "assetPath": "ShooterGame/Content/Contracts/Events/Ep5_Act3_Recall_EventPass/Contract_Event_Recall_EventPass_DataAssetV2"
    }
  ]
}

GET /v1/contracts/

Returns a single contract matching the provided UUID.

Request parameters

uuid
string
required
The UUID of the contract to retrieve.
User-Agent
string
required
Identifies your application. Format: AppName/Version (+URL).
language
string
default:"en-US"
Locale for localized display names.

Example request

cURL
curl --request GET \
  --url "https://astra.teamfortuna.xyz/v1/contracts/a09dc0e0-4b06-5e5c-0eb4-979e1c8ddf35" \
  --header "User-Agent: MyApp/1.0 (+https://example.com)"

Response fields

uuid
string
required
Unique identifier for the contract.
displayName
string
required
Localized name of the contract (e.g., "Gekko Contract", "Ignition: Act I").
displayIcon
string
URL to the contract’s display icon. May be null for agent contracts.
shipIt
boolean
When true, the contract is actively surfaced to players in-game.
useLevelVPCostOverride
boolean
Whether the contract uses a VP cost override at the level tier instead of the default.
levelVPCostOverride
number
VP cost override value applied when useLevelVPCostOverride is true.
freeRewardScheduleUuid
string
UUID referencing the free reward schedule associated with this contract. May be null.
content
object
The full progression structure of the contract.
assetPath
string
Internal Unreal Engine asset path.
Use content.relationType and content.relationUuid to link a contract back to its associated agent or season using the Agents or Seasons API.