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
Method Path Description 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
Identifies your application. Format: AppName/Version (+URL).
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
The UUID of the contract to retrieve.
Identifies your application. Format: AppName/Version (+URL).
Locale for localized display names.
Example request
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
Unique identifier for the contract.
Localized name of the contract (e.g., "Gekko Contract", "Ignition: Act I").
URL to the contract’s display icon. May be null for agent contracts.
When true, the contract is actively surfaced to players in-game.
Whether the contract uses a VP cost override at the level tier instead of the default.
VP cost override value applied when useLevelVPCostOverride is true.
UUID referencing the free reward schedule associated with this contract. May be null.
The full progression structure of the contract. The type of entity the contract is associated with. Common values: "Agent", "Season".
UUID of the related entity (e.g., the agent UUID for an agent contract).
Ordered list of contract chapters. Each chapter contains one or more reward levels. Whether this chapter is an epilogue (bonus rewards beyond the main track).
Ordered reward levels within the chapter. The reward granted upon completing this level. Reward item type (e.g., "EquippableSkinLevel", "Currency", "Title").
Quantity of the reward granted.
Whether this reward is highlighted as a featured milestone.
XP required to unlock this level.
VP cost to directly purchase this level, bypassing XP requirements.
Whether this level can be unlocked by spending VP.
Whether this level can be unlocked with Kingdom Credits (Dough).
Free rewards included at this chapter tier. null if no free rewards exist.
premiumRewardScheduleUuid
UUID referencing a premium reward schedule (e.g., for battle pass premium track). May be null.
VP cost to unlock the premium track for this contract. 0 if no premium track exists.
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.