Install
$ agentstack add skill-jburlison-wowaddonapiagents-wow-api-transmog ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
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/WorldofWarcraft_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
- CDyeColor / CDyeColorInfo — 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 |
CDyeColor / CDyeColorInfo — 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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JBurlison
- Source: JBurlison/WoWAddonAPIAgents
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.