Weekly Rewards API (Retail — Patch 12.0.0)
Comprehensive reference for the Great Vault / weekly rewards system.
Source: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API
Current as of: Patch 12.0.0 (Build 65655) — January 28, 2026
Scope: Retail only.
Scope
- C_WeeklyRewards — Great Vault UI, activities, rewards, item selection
C_WeeklyRewards — Great Vault System
Activity Tracking
| Function |
Returns |
Description |
C_WeeklyRewards.GetActivities(type) |
activities |
Activities for type |
C_WeeklyRewards.HasAvailableRewards() |
hasRewards |
Rewards available? |
C_WeeklyRewards.CanClaimRewards() |
canClaim |
Can claim now? |
C_WeeklyRewards.HasGeneratedRewards() |
hasGenerated |
Rewards generated? |
C_WeeklyRewards.GetNumCompletedDungeonRuns(level) |
numCompleted |
M+ runs at level+ |
Activity Types
| Enum |
Value |
Description |
Enum.WeeklyRewardChestThresholdType.Activities |
0 |
World activities |
Enum.WeeklyRewardChestThresholdType.RankedPvP |
1 |
Rated PvP |
Enum.WeeklyRewardChestThresholdType.MythicPlus |
2 |
Mythic+ dungeons |
Enum.WeeklyRewardChestThresholdType.Raid |
3 |
Raid bosses |
Enum.WeeklyRewardChestThresholdType.World |
4 |
World content |
Activity Data Fields
Each activity entry contains:
type — Activity type enum
index — Slot index (1, 2, 3)
threshold — Completions needed
progress — Current completions
id — Activity ID
level — Key level / difficulty / rating tier
rewards — Available rewards table
rewardOptions — Reward item options
Reward Selection
| Function |
Returns |
Description |
C_WeeklyRewards.ClaimReward(id) |
— |
Claim specific reward |
C_WeeklyRewards.GetItemHyperlink(rewardInfo) |
hyperlink |
Item link for reward |
C_WeeklyRewards.GetExampleRewardItemHyperlinks(id) |
hyperlinks |
Example rewards |
C_WeeklyRewards.AreRewardsForCurrentRewardPeriod() |
isCurrent |
Current week's rewards? |
Item Preview & Equip
| Function |
Returns |
Description |
C_WeeklyRewards.CanClaimRewards() |
canClaim |
Can claim? |
C_WeeklyRewards.HasAvailableRewards() |
hasAvailable |
Has unclaimed? |
Concurrency Info
| Function |
Returns |
Description |
C_WeeklyRewards.GetConquestWeeklyProgress() |
progress |
Conquest earned |
Common Patterns
Display Great Vault Status
local function ShowVaultStatus()
local activityTypes = {
{type = Enum.WeeklyRewardChestThresholdType.MythicPlus, name = "Mythic+"},
{type = Enum.WeeklyRewardChestThresholdType.Raid, name = "Raid"},
{type = Enum.WeeklyRewardChestThresholdType.RankedPvP, name = "PvP"},
{type = Enum.WeeklyRewardChestThresholdType.World, name = "World"},
}
for _, actType in ipairs(activityTypes) do
local activities = C_WeeklyRewards.GetActivities(actType.type)
if activities then
print(actType.name .. ":")
for _, activity in ipairs(activities) do
local status = activity.progress >= activity.threshold and "COMPLETE" or
(activity.progress .. "/" .. activity.threshold)
local levelInfo = activity.level > 0 and (" (Level " .. activity.level .. ")") or ""
print(" Slot " .. activity.index .. ": " .. status .. levelInfo)
end
end
end
end
Check for Available Rewards
local f = CreateFrame("Frame")
f:RegisterEvent("WEEKLY_REWARDS_UPDATE")
f:SetScript("OnEvent", function()
if C_WeeklyRewards.HasAvailableRewards() then
print("You have Great Vault rewards to claim!")
end
end)
Preview Vault Rewards
local function PreviewVaultRewards()
local allActivities = {
C_WeeklyRewards.GetActivities(Enum.WeeklyRewardChestThresholdType.MythicPlus),
C_WeeklyRewards.GetActivities(Enum.WeeklyRewardChestThresholdType.Raid),
C_WeeklyRewards.GetActivities(Enum.WeeklyRewardChestThresholdType.RankedPvP),
}
for _, activities in ipairs(allActivities) do
if activities then
for _, activity in ipairs(activities) do
if activity.progress >= activity.threshold then
local links = C_WeeklyRewards.GetExampleRewardItemHyperlinks(activity.id)
if links then
for _, link in ipairs(links) do
print(" Possible:", link)
end
end
end
end
end
end
end
Key Events
| Event |
Payload |
Description |
WEEKLY_REWARDS_UPDATE |
— |
Vault data changed |
WEEKLY_REWARDS_SHOW |
— |
Vault UI opened |
WEEKLY_REWARDS_HIDE |
— |
Vault UI closed |
WEEKLY_REWARDS_ITEM_CHANGED |
— |
Reward item changed |
Gotchas & Restrictions
- Weekly reset timing — Rewards are generated at weekly reset; APIs return no data before Tuesday/Wednesday reset.
- Claim requires hardware —
ClaimReward() requires user interaction.
- Activity types vary by season — Not all activity types are active every season.
- Three slots per type — Each type has 3 reward slots with increasing thresholds.
- Level field meaning changes — For M+ it's key level, for raids it's difficulty, for PvP it's rating bracket.
- Example rewards are estimates —
GetExampleRewardItemHyperlinks() shows possible rewards, not guaranteed ones.
- Rewards expire — Unclaimed vault rewards from a previous week may be forfeited.
- HasAvailableRewards() vs HasGeneratedRewards() — Generated means the vault has rolled items; Available means the player can claim them now.
1---2name: wow-api-weekly-rewards3description: Complete reference for WoW Retail Weekly Rewards (Great Vault) API. Covers C_WeeklyRewards — vault activities (M+, raids, PvP, world), reward selection, item preview, canEquip checks, vault UI state, and related events. Use when working with the Great Vault, weekly reward choices, vault activity tracking, or end-of-week item selection.4---5
6# Weekly Rewards API (Retail — Patch 12.0.0)
7
8Comprehensive reference for the Great Vault / weekly rewards system.
9
10> **Source:** https://warcraft.wiki.gg/wiki/World_of_Warcraft_API
11> **Current as of:** Patch 12.0.0 (Build 65655) — January 28, 2026
12> **Scope:** Retail only.
13
14---
15
16## Scope
17
18- **C_WeeklyRewards** — Great Vault UI, activities, rewards, item selection
19
20---
21
22## C_WeeklyRewards — Great Vault System
23
24### Activity Tracking
25
26| Function | Returns | Description |
27|----------|---------|-------------|
28| `C_WeeklyRewards.GetActivities(type)` | `activities` | Activities for type |
29| `C_WeeklyRewards.HasAvailableRewards()` | `hasRewards` | Rewards available? |
30| `C_WeeklyRewards.CanClaimRewards()` | `canClaim` | Can claim now? |
31| `C_WeeklyRewards.HasGeneratedRewards()` | `hasGenerated` | Rewards generated? |
32| `C_WeeklyRewards.GetNumCompletedDungeonRuns(level)` | `numCompleted` | M+ runs at level+ |
33
34### Activity Types
35
36| Enum | Value | Description |
37|------|-------|-------------|
38| `Enum.WeeklyRewardChestThresholdType.Activities` | 0 | World activities |
39| `Enum.WeeklyRewardChestThresholdType.RankedPvP` | 1 | Rated PvP |
40| `Enum.WeeklyRewardChestThresholdType.MythicPlus` | 2 | Mythic+ dungeons |
41| `Enum.WeeklyRewardChestThresholdType.Raid` | 3 | Raid bosses |
42| `Enum.WeeklyRewardChestThresholdType.World` | 4 | World content |
43
44### Activity Data Fields
45
46Each activity entry contains:
47- `type` — Activity type enum
48- `index` — Slot index (1, 2, 3)
49- `threshold` — Completions needed
50- `progress` — Current completions
51- `id` — Activity ID
52- `level` — Key level / difficulty / rating tier
53- `rewards` — Available rewards table
54- `rewardOptions` — Reward item options
55
56### Reward Selection
57
58| Function | Returns | Description |
59|----------|---------|-------------|
60| `C_WeeklyRewards.ClaimReward(id)` | — | Claim specific reward |
61| `C_WeeklyRewards.GetItemHyperlink(rewardInfo)` | `hyperlink` | Item link for reward |
62| `C_WeeklyRewards.GetExampleRewardItemHyperlinks(id)` | `hyperlinks` | Example rewards |
63| `C_WeeklyRewards.AreRewardsForCurrentRewardPeriod()` | `isCurrent` | Current week's rewards? |
64
65### Item Preview & Equip
66
67| Function | Returns | Description |
68|----------|---------|-------------|
69| `C_WeeklyRewards.CanClaimRewards()` | `canClaim` | Can claim? |
70| `C_WeeklyRewards.HasAvailableRewards()` | `hasAvailable` | Has unclaimed? |
71
72### Concurrency Info
73
74| Function | Returns | Description |
75|----------|---------|-------------|
76| `C_WeeklyRewards.GetConquestWeeklyProgress()` | `progress` | Conquest earned |
77
78---
79
80## Common Patterns
81
82### Display Great Vault Status
83
84```lua
85local function ShowVaultStatus()
86 local activityTypes = {
87 {type = Enum.WeeklyRewardChestThresholdType.MythicPlus, name = "Mythic+"},
88 {type = Enum.WeeklyRewardChestThresholdType.Raid, name = "Raid"},
89 {type = Enum.WeeklyRewardChestThresholdType.RankedPvP, name = "PvP"},
90 {type = Enum.WeeklyRewardChestThresholdType.World, name = "World"},
91 }
92
93 for _, actType in ipairs(activityTypes) do
94 local activities = C_WeeklyRewards.GetActivities(actType.type)
95 if activities then
96 print(actType.name .. ":")
97 for _, activity in ipairs(activities) do
98 local status = activity.progress >= activity.threshold and "COMPLETE" or
99 (activity.progress .. "/" .. activity.threshold)
100 local levelInfo = activity.level > 0 and (" (Level " .. activity.level .. ")") or ""
101 print(" Slot " .. activity.index .. ": " .. status .. levelInfo)
102 end
103 end
104 end
105end
106```
107
108### Check for Available Rewards
109
110```lua
111local f = CreateFrame("Frame")
112f:RegisterEvent("WEEKLY_REWARDS_UPDATE")
113f:SetScript("OnEvent", function()
114 if C_WeeklyRewards.HasAvailableRewards() then
115 print("You have Great Vault rewards to claim!")
116 end
117end)
118```
119
120### Preview Vault Rewards
121
122```lua
123local function PreviewVaultRewards()
124 local allActivities = {
125 C_WeeklyRewards.GetActivities(Enum.WeeklyRewardChestThresholdType.MythicPlus),
126 C_WeeklyRewards.GetActivities(Enum.WeeklyRewardChestThresholdType.Raid),
127 C_WeeklyRewards.GetActivities(Enum.WeeklyRewardChestThresholdType.RankedPvP),
128 }
129
130 for _, activities in ipairs(allActivities) do
131 if activities then
132 for _, activity in ipairs(activities) do
133 if activity.progress >= activity.threshold then
134 local links = C_WeeklyRewards.GetExampleRewardItemHyperlinks(activity.id)
135 if links then
136 for _, link in ipairs(links) do
137 print(" Possible:", link)
138 end
139 end
140 end
141 end
142 end
143 end
144end
145```
146
147---
148
149## Key Events
150
151| Event | Payload | Description |
152|-------|---------|-------------|
153| `WEEKLY_REWARDS_UPDATE` | — | Vault data changed |
154| `WEEKLY_REWARDS_SHOW` | — | Vault UI opened |
155| `WEEKLY_REWARDS_HIDE` | — | Vault UI closed |
156| `WEEKLY_REWARDS_ITEM_CHANGED` | — | Reward item changed |
157
158---
159
160## Gotchas & Restrictions
161
1621. **Weekly reset timing** — Rewards are generated at weekly reset; APIs return no data before Tuesday/Wednesday reset.
1632. **Claim requires hardware** — `ClaimReward()` requires user interaction.
1643. **Activity types vary by season** — Not all activity types are active every season.
1654. **Three slots per type** — Each type has 3 reward slots with increasing thresholds.
1665. **Level field meaning changes** — For M+ it's key level, for raids it's difficulty, for PvP it's rating bracket.
1676. **Example rewards are estimates** — `GetExampleRewardItemHyperlinks()` shows possible rewards, not guaranteed ones.
1687. **Rewards expire** — Unclaimed vault rewards from a previous week may be forfeited.
1698. **HasAvailableRewards() vs HasGeneratedRewards()** — Generated means the vault has rolled items; Available means the player can claim them now.