wow-api-transmog
SKILL.md
Transmog API (Retail — Patch 12.0.0)
Comprehensive reference for transmogrification, appearances, sets, outfits, dyes, and barber shop 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_Transmogrify — Applying transmog at NPC
- C_TransmogCollection — Appearance sources, categories, collection status
- C_TransmogSets — Transmog set management
- C_TransmogOutfits — Outfit save/load
- C_DyeColor / C_DyeColorInfo — Armor dye system (new in 12.0.0)
- C_BarberShop — Character customization
C_Transmogrify — Applying Transmog
| Function | Returns | Description |
|---|---|---|
C_Transmogrify.ApplyAllPending() |
— | Apply all pending transmogs |
C_Transmogrify.CanHaveSecondaryAppearanceForSlotID(slotID) |
canHave |
Has secondary slot? |
C_Transmogrify.CanTransmogItem(itemInfo) |
canTransmog, selfFailure, canTransmogKnownAppearance, canTransmogUncollected |
Can transmog? |
C_Transmogrify.CanTransmogItemWithItem(targetItemInfo, sourceItemInfo) |
canTransmog |
Can transmog source to target? |
C_Transmogrify.ClearAllPending() |
— | Clear all pending transmogs |
C_Transmogrify.ClearPending(slotID) |
— | Clear pending for slot |
C_Transmogrify.Close() |
— | Close transmog window |
C_Transmogrify.GetBaseCategory(slotID) |
category |
Base category for slot |
C_Transmogrify.GetCost() |
cost |
Current transmog cost |
C_Transmogrify.GetCreatureDisplayIDForSource(sourceID) |
displayID |
Creature display for source |
C_Transmogrify.GetItemIDForSource(sourceID) |
itemID |
Item ID for source |
C_Transmogrify.GetPending(slotID) |
pendingInfo |
Pending transmog for slot |
C_Transmogrify.GetSlotEffectiveCategory(slotID) |
category |
Effective category for slot |
C_Transmogrify.GetSlotInfo(slotID) |
isTransmogrified, hasPending, isPendingCollected, canTransmogrify, cannotTransmogrifyReason, hasUndo, isHideVisual, texture |
Slot transmog info |
C_Transmogrify.GetSlotUseError(slotID) |
errorCode, errorString |
Slot error |
C_Transmogrify.GetSlotVisualInfo(slotID) |
baseSourceID, baseVisualID, appliedSourceID, appliedVisualID, pendingSourceID, pendingVisualID, hasPendingUndo, hideVisual, hasActiveSecondaryAppearance |
Slot visual details |
C_Transmogrify.SetPending(slotID, transmogType, modification, sourceID) |
— | Set pending transmog |
C_TransmogCollection — Appearance Sources
Source & Appearance Info
| Function | Returns | Description |
|---|---|---|
C_TransmogCollection.GetSourceInfo(sourceID) |
sourceInfo |
Source details |
C_TransmogCollection.GetAppearanceSourceInfo(sourceID) |
category, appearanceID, canHaveIllusion, icon, isCollected, itemLink, transmogLink, sourceType, ... |
Appearance source info |
C_TransmogCollection.GetSourceItemID(sourceID) |
itemID |
Item for source |
C_TransmogCollection.PlayerHasTransmog(itemID [, itemAppearanceModID]) |
hasTransmog |
Has transmog collected? |
C_TransmogCollection.PlayerHasTransmogItemModifiedAppearance(itemModifiedAppearanceID) |
hasAppearance |
Has modified appearance? |
C_TransmogCollection.PlayerHasTransmogByItemInfo(itemInfo) |
hasTransmog |
Has transmog by item info? |
C_TransmogCollection.GetItemInfo(itemInfo) |
appearanceID, sourceID |
Source for item |
C_TransmogCollection.GetAllAppearanceSources(appearanceID) |
sourceIDs |
All sources for appearance |
C_TransmogCollection.GetAppearanceSources(appearanceID [, categoryID [, transmogType]]) |
sources |
Sources with info |
Categories
| Function | Returns | Description |
|---|---|---|
C_TransmogCollection.GetCategoryAppearances(categoryID) |
appearances |
All appearances in category |
C_TransmogCollection.GetCategoryCollectedCount(categoryID) |
collected |
Collected count |
C_TransmogCollection.GetCategoryTotal(categoryID) |
total |
Total in category |
C_TransmogCollection.GetNumTransmogSources() |
numSources |
Total sources |
C_TransmogCollection.IsAppearanceCollected(appearanceID) |
isCollected |
Is appearance collected? |
Illusions
| Function | Returns | Description |
|---|---|---|
C_TransmogCollection.GetIllusions() |
illusions |
All weapon illusions |
C_TransmogCollection.GetIllusionSourceInfo(sourceID) |
name, hyperlink, sourceText |
Illusion source info |
C_TransmogCollection.PlayerKnowsSource(sourceID) |
isKnown |
Knows source? |
Search & Filtering
| Function | Returns | Description |
|---|---|---|
C_TransmogCollection.SetSearch(searchType, searchText) |
— | Set search filter |
C_TransmogCollection.GetSearchResults(searchType) |
results |
Get search results |
C_TransmogCollection.ClearSearch(searchType) |
— | Clear search |
C_TransmogCollection.IsSearchInProgress(searchType) |
inProgress |
Is search running? |
C_TransmogCollection.EndSearch() |
— | End search |
C_TransmogCollection.GetIsAppearanceFavorite(appearanceID) |
isFavorite |
Is favorite? |
C_TransmogCollection.SetIsAppearanceFavorite(appearanceID, isFavorite) |
— | Set favorite |
C_TransmogSets — Transmog Sets
| Function | Returns | Description |
|---|---|---|
C_TransmogSets.GetAllSets() |
sets |
All transmog sets |
C_TransmogSets.GetBaseSetsCounts() |
numCollected, numTotal |
base sets progress |
C_TransmogSets.GetSetInfo(setID) |
setInfo |
Set details |
C_TransmogSets.GetSetSources(setID) |
sources |
Sources in set |
C_TransmogSets.GetSetPrimaryAppearances(setID) |
appearances |
Primary appearances |
C_TransmogSets.GetBaseSets() |
baseSets |
All base sets |
C_TransmogSets.GetBaseSetID(setID) |
baseSetID |
Base set for variant |
C_TransmogSets.GetVariantSets(baseSetID) |
variantSets |
Variants of base set |
C_TransmogSets.GetUsableSets() |
usableSets |
Sets usable by class |
C_TransmogSets.HasUsableSets() |
hasUsable |
Has usable sets? |
C_TransmogSets.IsSetCollected(setID) |
isCollected |
Set fully collected? |
C_TransmogSets.IsSetUsable(setID) |
isUsable |
Set usable by player? |
C_TransmogSets.IsNewAppearance(appearanceID) |
isNew |
New since last viewed? |
C_TransmogSets.ClearNewAppearance(appearanceID) |
— | Mark as seen |
C_TransmogSets.GetNumSetsCollected() |
numCollected |
Sets collected count |
C_TransmogSets.GetNumSetsTotal() |
numTotal |
Total number of sets |
C_TransmogSets.GetSetSourceCounts(setID) |
numCollected, numTotal |
Sources in set progress |
C_TransmogSets.SetHasNewSources(setID) |
hasNewSources |
New sources in set? |
C_TransmogSets.SetIsFavorite(setID, isFavorite) |
— | Toggle favorite |
C_TransmogSets.GetIsFavorite(setID) |
isFavorite |
Is favorite set? |
C_TransmogOutfits — Outfits
| Function | Returns | Description |
|---|---|---|
C_TransmogOutfits.GetOutfits() |
outfits |
All saved outfits |
C_TransmogOutfits.GetOutfitInfo(outfitID) |
name, icon |
Outfit info |
C_TransmogOutfits.NewOutfit(name, icon, sources) |
outfitID |
Create new outfit |
C_TransmogOutfits.DeleteOutfit(outfitID) |
— | Delete outfit |
C_TransmogOutfits.RenameOutfit(outfitID, name) |
— | Rename outfit |
C_TransmogOutfits.SetOutfitIcon(outfitID, icon) |
— | Set outfit icon |
C_TransmogOutfits.SaveOutfit(outfitID, sources) |
— | Update outfit |
C_TransmogOutfits.GetOutfitSources(outfitID) |
sources |
Get all sources in outfit |
C_TransmogOutfits.GetSlotSourceID(outfitID, slotID) |
sourceID |
Source for slot |
C_DyeColor / C_DyeColorInfo — Armor Dyes (12.0.0)
New system for applying dye colors to armor appearances.
| Function | Returns | Description |
|---|---|---|
C_DyeColorInfo.GetDyeColorInfo(dyeColorID) |
info |
Dye color details |
C_DyeColorInfo.GetAvailableDyeColors() |
dyeColors |
Available dye colors |
C_DyeColorInfo.GetDyeColorCategories() |
categories |
Dye color categories |
C_DyeColorInfo.IsDyeColorUnlocked(dyeColorID) |
isUnlocked |
Is color unlocked? |
C_DyeColorInfo.GetNumUnlockedDyeColors() |
numUnlocked |
Unlocked dye count |
C_BarberShop — Character Customization
| Function | Returns | Description |
|---|---|---|
C_BarberShop.IsViewingAlteredForm() |
isViewing |
Viewing alt form? |
C_BarberShop.SetViewingAlteredForm(isViewing) |
— | Toggle alt form view |
C_BarberShop.GetAvailableCustomizations() |
customizations |
Available customizations |
C_BarberShop.GetCurrentCustomizations() |
customizations |
Current selections |
C_BarberShop.SetCustomizationChoice(customizationCategoryID, choiceIndex) |
— | Set a choice |
C_BarberShop.PreviewCustomizationChoice(customizationCategoryID, choiceIndex) |
— | Preview a choice |
C_BarberShop.GetCustomizationScope() |
scope |
Customization scope |
C_BarberShop.HasAnyChanges() |
hasChanges |
Has unsaved changes? |
C_BarberShop.ApplyCustomizationChoices() |
— | Apply changes |
C_BarberShop.Cancel() |
— | Cancel and close |
C_BarberShop.ResetCustomizationChoices() |
— | Reset to current |
C_BarberShop.GetCurrentCost() |
cost |
Cost for changes |
C_BarberShop.MarkCustomizationChoiceAsSeen(choiceID) |
— | Mark choice seen |
C_BarberShop.MarkCustomizationOptionAsSeen(optionID) |
— | Mark option seen |
C_BarberShop.SetSelectedSex(sex) |
— | Set selected sex |
Key Events
| Event | Payload | Description |
|---|---|---|
TRANSMOGRIFY_OPEN |
— | Transmog NPC opened |
TRANSMOGRIFY_CLOSE |
— | Transmog NPC closed |
TRANSMOGRIFY_UPDATE |
slotID | Transmog slot updated |
TRANSMOGRIFY_SUCCESS |
slotID | Transmog applied |
TRANSMOG_COLLECTION_SOURCE_ADDED |
sourceID | New source collected |
TRANSMOG_COLLECTION_SOURCE_REMOVED |
sourceID | Source removed |
TRANSMOG_COLLECTION_UPDATED |
— | Collection changed |
TRANSMOG_COLLECTION_CAMERA_UPDATE |
— | Camera update |
TRANSMOG_SETS_UPDATE_FAVORITE |
— | Set favorite changed |
TRANSMOG_SEARCH_UPDATED |
searchType | Search results updated |
TRANSMOG_OUTFITS_CHANGED |
— | Outfits changed |
BARBER_SHOP_OPEN |
— | Barber shop opened |
BARBER_SHOP_CLOSE |
— | Barber shop closed |
BARBER_SHOP_COST_UPDATE |
— | Cost updated |
BARBER_SHOP_APPEARANCE_APPLIED |
— | Appearance applied |
BARBER_SHOP_RESULT |
success | Barber shop result |
Gotchas & Restrictions
- Transmog NPC required —
C_Transmogrify.ApplyAllPending()and related functions only work at a transmog NPC. - sourceID vs appearanceID — A sourceID is a specific item drop source. An appearanceID is the visual look (multiple sources can share one appearance).
- Category by armor type — Transmog categories are divided by armor slot and armor type (cloth, leather, mail, plate).
- Dye system is new — The dye color system is new in 12.0.0 and APIs may evolve.
- Barber shop requires presence —
C_BarberShopfunctions only work while at the barber shop NPC. - Outfit limit — There's a maximum number of saved outfits per character.
- Set variants — A base set can have multiple variants (different difficulties, etc.). Use
GetVariantSets(). - illusion = weapon enchant visual — Illusions are the weapon glow effects. Separate from armor transmog.
Weekly Installs
3
Repository
jburlison/wowad…piagentsGitHub Stars
8
First Seen
10 days ago
Security Audits
Installed on
cline3
github-copilot3
codex3
gemini-cli3
cursor3
opencode3