Reputation API (Retail — Patch 12.0.0)
Comprehensive reference for reputation, faction, major factions, paragon, and neighborhood initiative APIs.
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_Reputation — Faction info, standings, watched faction, headers
- C_MajorFactions — Renown factions (Dragonflight+)
- Friendship Reputations — Friendship-style rep (Tillers, etc.)
- Paragon — Paragon reputation (post-max)
- C_NeighborhoodInitiative — Housing neighborhood rep (12.0.0)
C_Reputation — Core Reputation System
Faction Info
| Function |
Returns |
Description |
C_Reputation.GetNumFactions() |
numFactions |
Number of factions in list |
C_Reputation.GetFactionDataByIndex(index) |
factionData |
Faction data at index |
C_Reputation.GetFactionDataByID(factionID) |
factionData |
Faction data by ID |
C_Reputation.IsFactionActive(factionID) |
isActive |
Is faction active? |
C_Reputation.IsMajorFaction(factionID) |
isMajor |
Is major faction? |
C_Reputation.IsAccountWideReputation(factionID) |
isAccountWide |
Account-wide rep? |
C_Reputation.GetFactionParagonInfo(factionID) |
currentValue, threshold, questID, hasRewardPending, tooLowLevelForParagon |
Paragon info |
C_Reputation.IsFactionParagon(factionID) |
isParagon |
Has paragon? |
C_Reputation.RequestFactionParagonPreloadRewardData(factionID) |
— |
Preload paragon data |
Faction Data Fields
The factionData table contains:
factionID — Unique faction ID
name — Faction name
description — Description text
reaction — Standing index (1=Hated to 8=Exalted)
currentReactionThreshold — Min rep for current standing
nextReactionThreshold — Rep needed for next standing
currentStanding — Current rep value
atWarWith — At war? (PvP hostile)
canToggleAtWar — Can toggle at war?
isChild — Is sub-faction?
isHeader — Is a header row?
isHeaderWithRep — Header that has rep?
isCollapsed — Is header collapsed?
isWatched — Is watched faction?
hasBonusRepGain — Has rep bonus?
canSetInactive — Can set inactive?
Watched Faction
| Function |
Returns |
Description |
C_Reputation.GetWatchedFactionData() |
factionData |
Watched faction info |
C_Reputation.SetWatchedFactionByIndex(index) |
— |
Set watched by index |
Faction List Management
| Function |
Returns |
Description |
C_Reputation.ExpandFactionHeader(index) |
— |
Expand header |
C_Reputation.CollapseFactionHeader(index) |
— |
Collapse header |
C_Reputation.SetFactionActive(index) |
— |
Set faction active |
C_Reputation.SetFactionInactive(index) |
— |
Set faction inactive |
C_Reputation.ToggleAtWar(index) |
— |
Toggle at war |
Standing Names
| Index |
Standing |
| 1 |
Hated |
| 2 |
Hostile |
| 3 |
Unfriendly |
| 4 |
Neutral |
| 5 |
Friendly |
| 6 |
Honored |
| 7 |
Revered |
| 8 |
Exalted |
C_MajorFactions — Renown System
Major factions use renown levels instead of traditional reputation standings.
| Function |
Returns |
Description |
C_MajorFactions.GetMajorFactionData(factionID) |
majorFactionData |
Major faction info |
C_MajorFactions.GetMajorFactionIDs(expansionID) |
factionIDs |
Major factions for expansion |
C_MajorFactions.GetCurrentRenownLevel(factionID) |
renownLevel |
Current renown level |
C_MajorFactions.GetRenownLevels(factionID) |
levels |
All renown levels |
C_MajorFactions.GetRenownRewardsForLevel(factionID, renownLevel) |
rewards |
Rewards at level |
C_MajorFactions.HasMaximumRenown(factionID) |
hasMax |
At max renown? |
C_MajorFactions.IsWeeklyRenownCapped(factionID) |
isCapped |
Weekly cap reached? |
C_MajorFactions.GetMajorFactionRenownInfo(factionID) |
renownInfo |
Renown progress info |
Major Faction Data Fields
factionID — Faction ID
name — Faction name
celebrationSoundKit — Sound on level up
renownLevel — Current renown level
renownReputationEarned — Rep earned toward next level
renownLevelThreshold — Rep needed for next level
textureKit — UI texture kit
expansionID — Which expansion
isUnlocked — Is faction unlocked?
unlockDescription — How to unlock
Friendship Reputations
Some factions use friendship instead of traditional reputation.
| Function |
Returns |
Description |
C_Reputation.GetFriendshipReputation(factionID) |
friendshipData |
Friendship rep info |
C_Reputation.IsFactionFriendship(factionID) |
isFriendship |
Uses friendship? |
Friendship Data Fields
friendshipFactionID — Faction ID
standing — Current standing text (e.g., "Good Friend")
maxRep — Max rep for current tier
reputation — Current rep value
nextThreshold — Next tier threshold
text — Standing description
texture — Standing icon
reaction — Reaction index
reversedColor — Reverse progress bar color?
C_NeighborhoodInitiative — Housing Neighborhood (12.0.0)
New in 12.0.0 for the player housing system.
| Function |
Returns |
Description |
C_NeighborhoodInitiative.GetCurrentInitiative() |
initiativeInfo |
Current initiative |
C_NeighborhoodInitiative.GetInitiativeProgress() |
progress |
Progress info |
C_NeighborhoodInitiative.GetInitiativeRewards() |
rewards |
Initiative rewards |
Common Patterns
List All Factions with Standing
local numFactions = C_Reputation.GetNumFactions()
for i = 1, numFactions do
local data = C_Reputation.GetFactionDataByIndex(i)
if data and not data.isHeader then
local standingNames = {"Hated","Hostile","Unfriendly","Neutral","Friendly","Honored","Revered","Exalted"}
local standing = standingNames[data.reaction] or "Unknown"
print(data.name, standing, data.currentStanding)
end
end
Check Renown Level
local function GetRenownProgress(factionID)
if C_Reputation.IsMajorFaction(factionID) then
local data = C_MajorFactions.GetMajorFactionData(factionID)
if data then
print(data.name, "Renown:", data.renownLevel)
print("Progress:", data.renownReputationEarned, "/", data.renownLevelThreshold)
return data.renownLevel
end
end
return nil
end
Check Paragon Reward
local function CheckParagonReward(factionID)
if C_Reputation.IsFactionParagon(factionID) then
local currentValue, threshold, questID, hasReward =
C_Reputation.GetFactionParagonInfo(factionID)
if hasReward then
print("Paragon reward available for faction", factionID)
end
return hasReward
end
return false
end
Key Events
| Event |
Payload |
Description |
UPDATE_FACTION |
— |
Reputation changed |
QUEST_LOG_UPDATE |
— |
Quest/rep update (shared) |
MAJOR_FACTION_RENOWN_LEVEL_CHANGED |
factionID, newRenownLevel, oldRenownLevel |
Renown level up |
MAJOR_FACTION_UNLOCKED |
factionID |
Major faction unlocked |
UPDATE_EXPANSION_LEVEL |
— |
Expansion level changed |
Gotchas & Restrictions
- Headers in faction list —
C_Reputation.GetFactionDataByIndex() returns headers. Check isHeader to skip.
- Major factions vs traditional — Check
C_Reputation.IsMajorFaction() to determine which API to use.
- Paragon is post-exalted —
GetFactionParagonInfo() only works for factions at Exalted (or max renown for major factions).
- Friendship rep display — Friendship factions show custom standing names. Use
GetFriendshipReputation() for proper display text.
- Account-wide rep — Some 12.0.0 reps are account-wide. Check
IsAccountWideReputation().
- Collapsed headers — Collapsed headers hide child factions from the indexed list. Expand before iterating.
- Faction IDs are stable — Unlike indices, factionIDs are stable and can be persisted in SavedVariables.
- Neighborhood initiative — New 12.0.0 system; APIs may evolve.
1---2name: wow-api-reputation3description: Complete reference for WoW Retail Reputation, Faction, Major Factions, Paragon, and Neighborhood Initiative APIs. Covers C_Reputation (faction info, standings, watched faction, headers, friendship reps, paragon), C_MajorFactions (Dragonflight+ renown factions, renown levels, rewards), C_NeighborhoodInitiative (12.0.0 housing neighborhood reputation), faction expansion data, and reputation-related events. Use when working with reputation tracking, faction standings, renown systems, paragon rewards, friendship reputations, or neighborhood initiatives.4---5
6# Reputation API (Retail — Patch 12.0.0)
7
8Comprehensive reference for reputation, faction, major factions, paragon, and neighborhood initiative APIs.
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_Reputation** — Faction info, standings, watched faction, headers
19- **C_MajorFactions** — Renown factions (Dragonflight+)
20- **Friendship Reputations** — Friendship-style rep (Tillers, etc.)
21- **Paragon** — Paragon reputation (post-max)
22- **C_NeighborhoodInitiative** — Housing neighborhood rep (12.0.0)
23
24---
25
26## C_Reputation — Core Reputation System
27
28### Faction Info
29
30| Function | Returns | Description |
31|----------|---------|-------------|
32| `C_Reputation.GetNumFactions()` | `numFactions` | Number of factions in list |
33| `C_Reputation.GetFactionDataByIndex(index)` | `factionData` | Faction data at index |
34| `C_Reputation.GetFactionDataByID(factionID)` | `factionData` | Faction data by ID |
35| `C_Reputation.IsFactionActive(factionID)` | `isActive` | Is faction active? |
36| `C_Reputation.IsMajorFaction(factionID)` | `isMajor` | Is major faction? |
37| `C_Reputation.IsAccountWideReputation(factionID)` | `isAccountWide` | Account-wide rep? |
38| `C_Reputation.GetFactionParagonInfo(factionID)` | `currentValue, threshold, questID, hasRewardPending, tooLowLevelForParagon` | Paragon info |
39| `C_Reputation.IsFactionParagon(factionID)` | `isParagon` | Has paragon? |
40| `C_Reputation.RequestFactionParagonPreloadRewardData(factionID)` | — | Preload paragon data |
41
42### Faction Data Fields
43
44The `factionData` table contains:
45- `factionID` — Unique faction ID
46- `name` — Faction name
47- `description` — Description text
48- `reaction` — Standing index (1=Hated to 8=Exalted)
49- `currentReactionThreshold` — Min rep for current standing
50- `nextReactionThreshold` — Rep needed for next standing
51- `currentStanding` — Current rep value
52- `atWarWith` — At war? (PvP hostile)
53- `canToggleAtWar` — Can toggle at war?
54- `isChild` — Is sub-faction?
55- `isHeader` — Is a header row?
56- `isHeaderWithRep` — Header that has rep?
57- `isCollapsed` — Is header collapsed?
58- `isWatched` — Is watched faction?
59- `hasBonusRepGain` — Has rep bonus?
60- `canSetInactive` — Can set inactive?
61
62### Watched Faction
63
64| Function | Returns | Description |
65|----------|---------|-------------|
66| `C_Reputation.GetWatchedFactionData()` | `factionData` | Watched faction info |
67| `C_Reputation.SetWatchedFactionByIndex(index)` | — | Set watched by index |
68
69### Faction List Management
70
71| Function | Returns | Description |
72|----------|---------|-------------|
73| `C_Reputation.ExpandFactionHeader(index)` | — | Expand header |
74| `C_Reputation.CollapseFactionHeader(index)` | — | Collapse header |
75| `C_Reputation.SetFactionActive(index)` | — | Set faction active |
76| `C_Reputation.SetFactionInactive(index)` | — | Set faction inactive |
77| `C_Reputation.ToggleAtWar(index)` | — | Toggle at war |
78
79### Standing Names
80
81| Index | Standing |
82|-------|----------|
83| 1 | Hated |
84| 2 | Hostile |
85| 3 | Unfriendly |
86| 4 | Neutral |
87| 5 | Friendly |
88| 6 | Honored |
89| 7 | Revered |
90| 8 | Exalted |
91
92---
93
94## C_MajorFactions — Renown System
95
96Major factions use renown levels instead of traditional reputation standings.
97
98| Function | Returns | Description |
99|----------|---------|-------------|
100| `C_MajorFactions.GetMajorFactionData(factionID)` | `majorFactionData` | Major faction info |
101| `C_MajorFactions.GetMajorFactionIDs(expansionID)` | `factionIDs` | Major factions for expansion |
102| `C_MajorFactions.GetCurrentRenownLevel(factionID)` | `renownLevel` | Current renown level |
103| `C_MajorFactions.GetRenownLevels(factionID)` | `levels` | All renown levels |
104| `C_MajorFactions.GetRenownRewardsForLevel(factionID, renownLevel)` | `rewards` | Rewards at level |
105| `C_MajorFactions.HasMaximumRenown(factionID)` | `hasMax` | At max renown? |
106| `C_MajorFactions.IsWeeklyRenownCapped(factionID)` | `isCapped` | Weekly cap reached? |
107| `C_MajorFactions.GetMajorFactionRenownInfo(factionID)` | `renownInfo` | Renown progress info |
108
109### Major Faction Data Fields
110
111- `factionID` — Faction ID
112- `name` — Faction name
113- `celebrationSoundKit` — Sound on level up
114- `renownLevel` — Current renown level
115- `renownReputationEarned` — Rep earned toward next level
116- `renownLevelThreshold` — Rep needed for next level
117- `textureKit` — UI texture kit
118- `expansionID` — Which expansion
119- `isUnlocked` — Is faction unlocked?
120- `unlockDescription` — How to unlock
121
122---
123
124## Friendship Reputations
125
126Some factions use friendship instead of traditional reputation.
127
128| Function | Returns | Description |
129|----------|---------|-------------|
130| `C_Reputation.GetFriendshipReputation(factionID)` | `friendshipData` | Friendship rep info |
131| `C_Reputation.IsFactionFriendship(factionID)` | `isFriendship` | Uses friendship? |
132
133### Friendship Data Fields
134
135- `friendshipFactionID` — Faction ID
136- `standing` — Current standing text (e.g., "Good Friend")
137- `maxRep` — Max rep for current tier
138- `reputation` — Current rep value
139- `nextThreshold` — Next tier threshold
140- `text` — Standing description
141- `texture` — Standing icon
142- `reaction` — Reaction index
143- `reversedColor` — Reverse progress bar color?
144
145---
146
147## C_NeighborhoodInitiative — Housing Neighborhood (12.0.0)
148
149New in 12.0.0 for the player housing system.
150
151| Function | Returns | Description |
152|----------|---------|-------------|
153| `C_NeighborhoodInitiative.GetCurrentInitiative()` | `initiativeInfo` | Current initiative |
154| `C_NeighborhoodInitiative.GetInitiativeProgress()` | `progress` | Progress info |
155| `C_NeighborhoodInitiative.GetInitiativeRewards()` | `rewards` | Initiative rewards |
156
157---
158
159## Common Patterns
160
161### List All Factions with Standing
162
163```lua
164local numFactions = C_Reputation.GetNumFactions()
165for i = 1, numFactions do
166 local data = C_Reputation.GetFactionDataByIndex(i)
167 if data and not data.isHeader then
168 local standingNames = {"Hated","Hostile","Unfriendly","Neutral","Friendly","Honored","Revered","Exalted"}
169 local standing = standingNames[data.reaction] or "Unknown"
170 print(data.name, standing, data.currentStanding)
171 end
172end
173```
174
175### Check Renown Level
176
177```lua
178local function GetRenownProgress(factionID)
179 if C_Reputation.IsMajorFaction(factionID) then
180 local data = C_MajorFactions.GetMajorFactionData(factionID)
181 if data then
182 print(data.name, "Renown:", data.renownLevel)
183 print("Progress:", data.renownReputationEarned, "/", data.renownLevelThreshold)
184 return data.renownLevel
185 end
186 end
187 return nil
188end
189```
190
191### Check Paragon Reward
192
193```lua
194local function CheckParagonReward(factionID)
195 if C_Reputation.IsFactionParagon(factionID) then
196 local currentValue, threshold, questID, hasReward =
197 C_Reputation.GetFactionParagonInfo(factionID)
198 if hasReward then
199 print("Paragon reward available for faction", factionID)
200 end
201 return hasReward
202 end
203 return false
204end
205```
206
207---
208
209## Key Events
210
211| Event | Payload | Description |
212|-------|---------|-------------|
213| `UPDATE_FACTION` | — | Reputation changed |
214| `QUEST_LOG_UPDATE` | — | Quest/rep update (shared) |
215| `MAJOR_FACTION_RENOWN_LEVEL_CHANGED` | factionID, newRenownLevel, oldRenownLevel | Renown level up |
216| `MAJOR_FACTION_UNLOCKED` | factionID | Major faction unlocked |
217| `UPDATE_EXPANSION_LEVEL` | — | Expansion level changed |
218
219---
220
221## Gotchas & Restrictions
222
2231. **Headers in faction list** — `C_Reputation.GetFactionDataByIndex()` returns headers. Check `isHeader` to skip.
2242. **Major factions vs traditional** — Check `C_Reputation.IsMajorFaction()` to determine which API to use.
2253. **Paragon is post-exalted** — `GetFactionParagonInfo()` only works for factions at Exalted (or max renown for major factions).
2264. **Friendship rep display** — Friendship factions show custom standing names. Use `GetFriendshipReputation()` for proper display text.
2275. **Account-wide rep** — Some 12.0.0 reps are account-wide. Check `IsAccountWideReputation()`.
2286. **Collapsed headers** — Collapsed headers hide child factions from the indexed list. Expand before iterating.
2297. **Faction IDs are stable** — Unlike indices, factionIDs are stable and can be persisted in SavedVariables.
2308. **Neighborhood initiative** — New 12.0.0 system; APIs may evolve.