askill
wow-api-items-inventory

wow-api-items-inventorySafety 100Repository

Complete reference for WoW Retail Item, Container (Bag), Bank, Loot, Equipment, Socket, Upgrade, Merchant, and World Loot Object APIs. Covers C_Item info/count/cooldown/equip/type checks, C_Container bag slots/sort/search/use, C_Bank tabs/deposit/withdraw, C_Loot roll/legacy mode, C_ItemSocketInfo gem sockets, C_ItemInteraction conversion, C_MerchantFrame vendor buy/sell/repair, item location/mixin patterns, and looting functions. Use when working with items, bags, inventory, bank, loot, equipment sets, item sockets, item upgrades, merchants, vendors, item links, or world loot objects.

1 stars
1.2k downloads
Updated 2/14/2026

Package Files

Loading files...
SKILL.md

Item & Inventory API (Retail — Patch 12.0.0)

Comprehensive reference for all Item, Container, Bank, Loot, Equipment, Merchant, Socket, Upgrade, and related APIs. Covers item information, bag management, banking, looting, equipment, gem sockets, item upgrades, merchant interactions, and world loot objects.

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. No deprecated or removed functions.

Scope

This skill covers these API systems:

  • C_Item — Item information, counts, cooldowns, equipping, type checks, transmog info
  • C_Container — Bag slot management, item queries, sorting, searching, using items
  • C_Bank — Bank tab management, deposits, withdrawals, account bank
  • C_Loot — Loot roll duration, legacy loot mode
  • C_ItemSocketInfo — Gem socket management
  • C_ItemInteraction — Item conversion/interaction UI
  • C_MerchantFrame — Vendor buy/sell/repair
  • C_WorldLootObject — World loot object queries
  • ItemLocation / ItemMixin — Item location handling patterns
  • Global Inventory Functions — PickupInventoryItem, EquipItemByName, UseInventoryItem, etc.
  • Looting Functions — LootSlot, GetNumLootItems, RollOnLoot, ConfirmLootRoll, etc.
  • Equipment Sets — C_EquipmentSet functions

When to Use This Skill

Use this skill when you need to:

  • Query item info: name, link, icon, quality, type, subtype, level
  • Check item counts, cooldowns, or usability
  • Equip or use items programmatically
  • Manage bag contents: enumerate slots, sort, search, move items
  • Interact with the bank: deposit, withdraw, purchase tabs
  • Handle loot windows and loot rolls
  • Work with gem sockets and item upgrades
  • Buy from or sell to merchants
  • Check equipment sets
  • Handle world loot objects (e.g., loot on the ground)

C_Item — Core Item API

The C_Item namespace provides comprehensive item data access. Items are identified by itemInfo (itemID, itemName, or itemLink) or ItemLocation (bag + slot).

Wiki: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API#Item

Item Information

FunctionReturnsDescription
C_Item.GetItemInfo(itemInfo)itemName, itemLink, quality, itemLevel, reqLevel, class, subclass, maxStack, equipLoc, icon, vendorPrice, classID, subClassID, bindType, expacID, setID, isCraftingReagentFull item data (may require server query)
C_Item.GetItemInfoInstant(itemInfo)itemID, itemType, itemSubType, itemEquipLoc, icon, classID, subClassIDInstant item data (no server query needed)
C_Item.GetItemName(itemLocation)itemNameName from ItemLocation
C_Item.GetItemLink(itemLocation)itemLinkHyperlink from ItemLocation
C_Item.GetItemIcon(itemLocation)iconIcon texture from ItemLocation
C_Item.GetItemIconByID(itemInfo)iconIcon texture by item ID/name/link
C_Item.GetItemQualityByID(itemInfo)qualityQuality enum value
C_Item.GetItemQualityColor(quality)r, g, b, hexColor for item quality
C_Item.GetCurrentItemLevel(itemLocation)currentItemLevelEffective item level
C_Item.GetItemClassInfo(itemClassID)resultName of item class (Armor, Weapon, etc.)
C_Item.GetItemSubClassInfo(itemClassID, itemSubClassID)subClassName, isArmorTypeSubclass name
C_Item.GetItemFamily(itemInfo)resultBag type flags for the item
C_Item.GetItemGUID(itemLocation)itemGUIDUnique item GUID
C_Item.GetItemCreationContext(itemInfo)itemID, creationContextHow the item was created
C_Item.GetItemUpgradeInfo(itemInfo)itemUpgradeInfoUpgrade track and level
C_Item.GetItemUniqueness(itemInfo)limitCategory, limitMaxUnique-equip limits
C_Item.GetItemUniquenessByID(itemInfo)isUnique, limitCategoryName, limitCategoryCount, limitCategoryIDDetailed uniqueness

Item Counts & Cooldowns

FunctionReturnsDescription
C_Item.GetItemCount(itemInfo [, includeBank [, includeUses [, includeReagentBank [, includeAccountBank]]]])countTotal item count across inventories
C_Item.GetItemCooldown(itemInfo)startTimeSeconds, durationSeconds, enableCooldownTimerItem use cooldown
C_Item.GetStackCount(itemLocation)stackCountStack count at a location

Item Type Checks

FunctionReturnsDescription
C_Item.DoesItemExist(emptiableItemLocation)itemExistsItem exists at location?
C_Item.DoesItemExistByID(itemInfo)itemExistsItem exists by ID?
C_Item.DoesItemContainSpec(itemInfo, classID [, specID])resultSuitable for spec?
C_Item.IsEquippableItem(itemInfo)resultCan be equipped?
C_Item.IsEquippedItem(itemInfo)resultCurrently equipped?
C_Item.IsEquippedItemType(type)resultItem type currently equipped?
C_Item.IsConsumableItem(itemInfo)resultIs consumable?
C_Item.IsCosmeticItem(itemInfo)resultIs cosmetic?
C_Item.IsDecorItem(itemInfo)isDecorIs housing decoration?
C_Item.IsCurioItem(itemInfo)resultIs delve curio?
C_Item.IsHelpfulItem(itemInfo)resultUsable on friendly units?
C_Item.IsHarmfulItem(itemInfo)resultUsable on hostile units?
C_Item.IsBound(itemLocation)isBoundIs soulbound?
C_Item.IsBoundToAccountUntilEquip(itemLocation)isBoundToAccountUntilEquipAccount-bound until equipped?
C_Item.IsItemBindToAccount(itemInfo)isItemBindToAccountAccount-bound?
C_Item.IsItemKeystoneByID(itemInfo)isKeystoneIs M+ keystone?
C_Item.IsItemInRange(itemInfo, targetToken)resultIn usable range? #nocombat
C_Item.IsItemDataCached(itemLocation)isCachedData available locally?
C_Item.IsItemDataCachedByID(itemInfo)isCachedData cached by ID?
C_Item.IsCurrentItem(itemInfo)resultCurrently active?
C_Item.IsDressableItemByID(itemInfo)isDressableItemCan be previewed?
C_Item.IsAnimaItemByID(itemInfo)isAnimaItemIs anima item?
C_Item.IsLocked(itemLocation)isLockedIs locked (opening)?

Item Actions

FunctionReturnsDescription
C_Item.EquipItemByName(itemInfo [, dstSlot])Equips an item
C_Item.ConfirmOnUse()Confirms item use
C_Item.ConfirmBindOnUse()Confirms bind-on-use #protected
C_Item.ConfirmNoRefundOnUse()Confirms no-refund #protected
C_Item.EndRefund(type)Confirms non-refundable
C_Item.RequestLoadItemData(itemLocation)Requests server item data
C_Item.RequestLoadItemDataByID(itemInfo)Requests data by ID

Item Transmog

FunctionReturnsDescription
C_Item.GetAppliedItemTransmogInfo(itemLoc)infoApplied transmog
C_Item.GetBaseItemTransmogInfo(itemLoc)infoBase appearance
C_Item.GetCurrentItemTransmogInfo(itemLoc)infoCurrent visual
C_Item.GetItemLearnTransmogSet(itemInfo)setIDTransmog set this teaches

C_Container — Bag & Container API

Manages bag slots, item queries, sorting, and item operations within bags.

Wiki: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API#Container

Bag Constants

ConstantValueDescription
Enum.BagIndex.Backpack0Main backpack
Enum.BagIndex.BagSlot1..41–4Equipped bag slots
Enum.BagIndex.BankBag-1Main bank
Enum.BagIndex.BankBagSlot1..75–11Bank bag slots
Enum.BagIndex.ReagentBag5Reagent bag slot
KEYRING_CONTAINER-2Keyring (legacy)
Enum.BagIndex.AccountBankTab1..513–17Account bank tabs

Container Functions

FunctionReturnsDescription
C_Container.GetContainerNumSlots(containerIndex)numSlotsNumber of slots in bag
C_Container.GetContainerNumFreeSlots(bagIndex)numFreeSlots, bagFamilyFree slots and bag type
C_Container.GetContainerFreeSlots(containerIndex)freeSlotsArray of free slot indices
C_Container.GetContainerItemInfo(containerIndex, slotIndex)containerInfoFull item info at slot
C_Container.GetContainerItemID(containerIndex, slotIndex)containerIDItem ID at slot
C_Container.GetContainerItemLink(containerIndex, slotIndex)itemLinkItem hyperlink at slot
C_Container.GetContainerItemQuestInfo(containerIndex, slotIndex)questInfoQuest item status
C_Container.GetContainerItemCooldown(containerIndex, slotIndex)startTime, duration, enableItem cooldown
C_Container.GetContainerItemDurability(containerIndex, slotIndex)durability, maxDurabilityDurability
C_Container.GetContainerItemEquipmentSetInfo(containerIndex, slotIndex)inSet, setListEquipment set membership
C_Container.GetContainerItemPurchaseInfo(containerIndex, slotIndex, isEquipped)infoRefund info
C_Container.HasContainerItem(containerIndex, slotIndex)hasItemSlot occupied?
C_Container.GetBagName(bagIndex)nameBag item name
C_Container.GetBagSlotFlag(bagIndex, flag)isSetBag filter flag
C_Container.IsContainerFiltered(containerIndex)isFilteredBag is filtered?
C_Container.IsBattlePayItem(containerIndex, slotIndex)isBattlePayItemStore-bought item?
C_Container.ContainerIDToInventoryID(containerID)inventoryIDConvert bag ID to inventory slot

Container Actions

FunctionDescription
C_Container.UseContainerItem(containerIndex, slotIndex [, unitToken [, bankType [, reagentBankOpen]]])Use/equip item in bag
C_Container.SplitContainerItem(containerIndex, slotIndex, amount)Split a stack
C_Container.PickupContainerItem(containerIndex, slotIndex)Pick up item to cursor
C_Container.SocketContainerItem(containerIndex, slotIndex)Open socket UI for item
C_Container.ShowContainerSellCursor(containerIndex, slotIndex)Show sell cursor
C_Container.ContainerRefundItemPurchase(containerIndex, slotIndex [, isEquipped])Refund item
C_Container.UseHearthstone()Use hearthstone
C_Container.SetItemSearch(searchString)Filter bags by search text

Sorting & Settings

FunctionDescription
C_Container.SortBags()Sort all bags
C_Container.SortBankBags()Sort bank bags
C_Container.SortAccountBankBags()Sort account bank bags
C_Container.SortBank(bankType)Sort specific bank type
C_Container.SetBagSlotFlag(bagIndex, flag, isSet)Set bag filtering flag
C_Container.SetBackpackAutosortDisabled(disable)Disable backpack auto-sort
C_Container.SetBankAutosortDisabled(disable)Disable bank auto-sort
C_Container.GetBackpackAutosortDisabled()Check backpack auto-sort
C_Container.GetBankAutosortDisabled()Check bank auto-sort
C_Container.GetSortBagsRightToLeft()Sort direction
C_Container.SetSortBagsRightToLeft(enable)Set sort direction
C_Container.GetInsertItemsLeftToRight()Insert direction
C_Container.SetInsertItemsLeftToRight(enable)Set insert direction
C_Container.GetBackpackSellJunkDisabled()Auto-sell junk disabled?

C_Bank — Bank API

Manages character bank, reagent bank, and account bank (Warband bank) tabs.

Wiki: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API#Bank

Bank Functions

FunctionReturnsDescription
C_Bank.CanUseBank(bankType)canUseBankBank type accessible?
C_Bank.CanViewBank(bankType)canViewBankCan view bank?
C_Bank.AreAnyBankTypesViewable()areAnyBankTypesViewableAny bank viewable?
C_Bank.FetchViewableBankTypes()viewableBankTypesList of viewable types
C_Bank.FetchNumPurchasedBankTabs(bankType)numPurchasedBankTabsPurchased tab count
C_Bank.FetchPurchasedBankTabIDs(bankType)purchasedBankTabIDsPurchased tab ID list
C_Bank.FetchPurchasedBankTabData(bankType)purchasedBankTabDataTab configuration data
C_Bank.FetchNextPurchasableBankTabData(bankType)nextPurchasableTabDataNext unlock info
C_Bank.FetchDepositedMoney(bankType)amountMoney stored in bank
C_Bank.FetchBankLockedReason(bankType)reasonWhy bank is locked
C_Bank.CanPurchaseBankTab(bankType)canPurchaseBankTabCan buy another tab?
C_Bank.HasMaxBankTabs(bankType)hasMaxBankTabsAll tabs purchased?
C_Bank.CanDepositMoney(bankType)canDepositMoneyCan deposit gold?
C_Bank.CanWithdrawMoney(bankType)canWithdrawMoneyCan withdraw gold?
C_Bank.IsItemAllowedInBankType(bankType, itemLocation)isItemAllowedInBankTypeItem fits this bank?
C_Bank.DoesBankTypeSupportAutoDeposit(bankType)doesBankTypeSupportAutoDepositSupports auto-deposit?
C_Bank.DoesBankTypeSupportMoneyTransfer(bankType)doesBankTypeSupportMoneyTransferSupports money?

Bank Actions

FunctionDescription
C_Bank.PurchaseBankTab(bankType)Purchase a bank tab
C_Bank.UpdateBankTabSettings(bankType, tabID, tabName, tabIcon, depositFlags)Update tab settings
C_Bank.AutoDepositItemsIntoBank(bankType)Auto-deposit items
C_Bank.DepositMoney(bankType, amount)Deposit money
C_Bank.WithdrawMoney(bankType, amount)Withdraw money
C_Bank.CloseBankFrame()Close bank

Loot API

C_Loot

FunctionReturnsDescription
C_Loot.GetLootRollDuration(rollID)durationRoll timer duration
C_Loot.IsLegacyLootModeEnabled()isLegacyLootModeEnabledLegacy loot active?

Global Loot Functions

FunctionReturnsDescription
GetNumLootItems()numLootItemsItems in loot window
GetLootInfo()infoLoot slot info table
GetLootSlotInfo(lootSlot)icon, name, quantity, currencyID, quality, locked, isQuestItem, questID, isActiveSlot details
GetLootSlotLink(lootSlot)itemLinkItem link for loot slot
GetLootSlotType(lootSlot)slotTypeSlot content type
GetLootSourceInfo(lootSlot)guid, quantitySource of loot
LootSlot(slot)Loot the slot
LootSlotHasItem(lootSlot)isLootItemSlot has item?
ConfirmLootSlot(slot)Confirm BoP loot
CloseLoot([errNum])Close loot window
IsFishingLoot()isFishingLootLoot from fishing?
GetOptOutOfLoot()optedOutAuto-passing all loot?
SetOptOutOfLoot(optOut)Set auto-pass

Loot Rolls

FunctionReturnsDescription
RollOnLoot(rollID [, rollType])Roll/pass on loot
ConfirmLootRoll(rollID, roll)Confirm BoP roll
GetLootRollItemInfo(rollID)texture, name, count, quality, ...Roll item details
GetLootRollItemLink(rollID)itemLinkRoll item link
GetLootRollTimeLeft(rollID)timeLeftRoll time remaining
GetActiveLootRollIDs()rollIDsActive roll IDs
GetLootThreshold()thresholdGroup loot threshold

C_ItemSocketInfo — Socket API

FunctionReturnsDescription
C_ItemSocketInfo.GetNumSockets()numSocketsNumber of sockets
C_ItemSocketInfo.GetSocketTypes(index)socketTypeSocket color/type
C_ItemSocketInfo.GetExistingSocketInfo(index)name, icon, gemMatchesSocketCurrent gem info
C_ItemSocketInfo.GetExistingSocketLink(index)existingSocketLinkCurrent gem link
C_ItemSocketInfo.GetNewSocketInfo(index)name, icon, gemMatchesSocketProposed gem info
C_ItemSocketInfo.GetNewSocketLink(index)newSocketLinkProposed gem link
C_ItemSocketInfo.GetSocketItemInfo()name, icon, qualityItem being socketed
C_ItemSocketInfo.GetSocketItemBoundTradeable()socketItemTradeableStill tradeable?
C_ItemSocketInfo.GetSocketItemRefundable()socketItemRefundableStill refundable?
C_ItemSocketInfo.HasBoundGemProposed()hasBoundGemProposedBoP gem selected?
C_ItemSocketInfo.GetCurrUIType()uiTypeSocket UI type
C_ItemSocketInfo.IsArtifactRelicItem(info)isArtifactRelicItemIs relic? (Legacy)
C_ItemSocketInfo.AcceptSockets()Apply gem changes
C_ItemSocketInfo.ClickSocketButton(index)Click a socket slot
C_ItemSocketInfo.CloseSocketInfo()Close socket UI
C_ItemSocketInfo.CompleteSocketing()Finalize socketing

C_ItemInteraction — Item Interaction UI

FunctionReturnsDescription
C_ItemInteraction.GetItemInteractionInfo()infoInteraction frame info
C_ItemInteraction.GetItemInteractionSpellId()spellIdSpell for interaction
C_ItemInteraction.GetChargeInfo()chargeInfoCharge tracking
C_ItemInteraction.GetItemConversionCurrencyCost(item)conversionCostCurrency cost
C_ItemInteraction.InitializeFrame()Initialize interaction
C_ItemInteraction.PerformItemInteraction()Execute interaction
C_ItemInteraction.ClearPendingItem()Clear selected item
C_ItemInteraction.CloseUI()Close UI

C_MerchantFrame — Merchant/Vendor API

FunctionReturnsDescription
C_MerchantFrame.GetItemInfo(index)itemInfoVendor item info (12.0.0 replacement)
BuyMerchantItem(index [, quantity])Buy from vendor
BuybackItem(slot)Buy back sold item
CanMerchantRepair()canRepairVendor can repair?
RepairAllItems([guildBankRepair])Repair all items
GetRepairAllCost()repairAllCost, canRepairTotal repair cost
CloseMerchant()Close vendor window
GetMerchantNumItems()numItemsNumber of vendor items
GetBuybackItemInfo(slotIndex)name, icon, price, ...Buyback item info
GetNumBuybackItems()numItemsBuyback slot count
GetMerchantItemMaxStack(index)maxStackMax purchasable stack

C_WorldLootObject — World Loot Objects

FunctionReturnsDescription
C_WorldLootObject.IsWorldLootObject(unitToken)isWorldLootObjectIs world loot?
C_WorldLootObject.GetWorldLootObjectInfo(unitToken)infoLoot object details
C_WorldLootObject.GetWorldLootObjectInfoByGUID(objectGUID)infoInfo by GUID
C_WorldLootObject.GetWorldLootObjectDistanceSquared(unitToken)distanceSquaredDistance to object
C_WorldLootObject.DoesSlotMatchInventoryType(slot, inventoryType)matchesSlot/type match?

ItemLocation & ItemMixin Patterns

ItemLocation

ItemLocation is used to reference items by their container position:

-- Create an ItemLocation for bag 0, slot 1
local itemLoc = ItemLocation:CreateFromBagAndSlot(0, 1)

-- Create for an equipped slot
local itemLoc = ItemLocation:CreateFromEquipmentSlot(INVSLOT_HEAD)

-- Check if it's valid
if itemLoc:IsValid() then
    local name = C_Item.GetItemName(itemLoc)
end

Item Data Loading (ContinuableContainer)

-- Items may not be cached — use the callback pattern
local item = Item:CreateFromItemID(12345)
item:ContinueOnItemLoad(function()
    local name = item:GetItemName()
    local link = item:GetItemLink()
    local icon = item:GetItemIcon()
    print(name, link)
end)

Batch Loading

local container = ContinuableContainer:Create()
for _, itemID in ipairs(itemIDs) do
    local item = Item:CreateFromItemID(itemID)
    container:AddContinuable(item)
end
container:ContinueOnLoad(function()
    -- All items are now cached
end)

Global Inventory Functions

FunctionDescription
PickupInventoryItem(slot)Pick up equipped item
UseInventoryItem(slot)Use equipped item
GetInventoryItemID(unit, slot)Get item ID in equipment slot
GetInventoryItemLink(unit, slot)Get item link in equipment slot
GetInventoryItemTexture(unit, slot)Get icon for equipment slot
GetInventoryItemQuality(unit, slot)Get quality for equipment slot
GetInventoryItemCount(unit, slot)Get stack count in equipment slot
GetInventoryItemDurability(slot)Get durability of equipped item
GetInventoryItemBroken(slot)Check if equipment is broken
GetInventorySlotInfo(slotName)Get slot index and texture
AutoEquipCursorItem()Auto-equip cursor item
EquipCursorItem(slot)Equip cursor item to slot
CancelPendingEquip(index)Cancel pending equip confirm
SocketInventoryItem(slot)Open socket UI for equipped item

Equipment Sets (C_EquipmentSet)

FunctionReturnsDescription
C_EquipmentSet.GetEquipmentSetIDs()setIDsAll set IDs
C_EquipmentSet.GetEquipmentSetInfo(setID)infoSet name, icon, etc.
C_EquipmentSet.GetItemIDs(setID)itemIDsItems in set by slot
C_EquipmentSet.GetItemLocations(setID)itemLocationsItem locations per slot
C_EquipmentSet.EquipmentSetContainsLockedItems(setID)hasLockedItemsAny items locked?
C_EquipmentSet.CreateEquipmentSet(name, icon)Create new set
C_EquipmentSet.SaveEquipmentSet(setID [, icon])Save current gear to set
C_EquipmentSet.UseEquipmentSet(setID)resultEquip a set
C_EquipmentSet.DeleteEquipmentSet(setID)Delete a set
C_EquipmentSet.ModifyEquipmentSet(setID, name [, icon])Rename/re-icon set
C_EquipmentSet.GetNumEquipmentSets()numSetsCount of sets
C_EquipmentSet.GetEquipmentSetForSlot(slot)setIDsSets using this slot
C_EquipmentSet.CanUseEquipmentSets()canUseEquipment sets available?

Cursor Functions (Item-Related)

FunctionReturnsDescription
ClearCursor()Clear cursor contents
CursorHasItem()resultCursor holds item?
CursorHasMoney()resultCursor holds money?
CursorHasSpell()resultCursor holds spell?
GetCursorInfo()type, ...What's on cursor
PickupBagFromSlot(slot)Pick up a bag
PickupItem(itemInfo)Pick up by ID/name
PickupMerchantItem(index)Pick up from merchant
DeleteCursorItem()Destroy cursor item

Common Patterns

Iterate All Bag Items

for bag = 0, 4 do
    for slot = 1, C_Container.GetContainerNumSlots(bag) do
        local info = C_Container.GetContainerItemInfo(bag, slot)
        if info then
            print(info.hyperlink, info.stackCount, info.quality)
        end
    end
end

Count Free Bag Slots

local totalFree = 0
for bag = 0, 4 do
    local free = C_Container.GetContainerNumFreeSlots(bag)
    totalFree = totalFree + free
end
print("Free slots:", totalFree)

Check If Player Has Item

local count = C_Item.GetItemCount(12345, true) -- includeBank
if count > 0 then
    print("You have", count, "of this item")
end

Auto-Sell Junk at Vendor

-- Register for MERCHANT_SHOW event
for bag = 0, 4 do
    for slot = 1, C_Container.GetContainerNumSlots(bag) do
        local info = C_Container.GetContainerItemInfo(bag, slot)
        if info and info.quality == Enum.ItemQuality.Poor then
            C_Container.UseContainerItem(bag, slot)
        end
    end
end

Key Events

EventPayloadDescription
BAG_UPDATEbagIDBag contents changed
BAG_UPDATE_DELAYEDFires after all BAG_UPDATE
ITEM_LOCK_CHANGEDbagOrSlotIndex, slotIndexItem lock state changed
ITEM_LOCKEDbagID, slotIDItem became locked
ITEM_UNLOCKEDbagID, slotIDItem unlocked
GET_ITEM_INFO_RECEIVEDitemID, successAsync item data arrived
BANKFRAME_OPENEDBank window opened
BANKFRAME_CLOSEDBank window closed
PLAYERBANKSLOTS_CHANGEDslotBank slot changed
PLAYERBANKBAGSLOTS_CHANGEDBank bag slots changed
LOOT_READYautoLootLoot window ready
LOOT_OPENEDautoLootLoot window opened
LOOT_CLOSEDLoot window closed
LOOT_SLOT_CLEAREDlootSlotLoot slot taken
START_LOOT_ROLLrollID, rollTime, lootHandleRoll started
CONFIRM_LOOT_ROLLrollID, roll, confirmReasonConfirm BoP roll
LOOT_ROLL_COMPLETErollIDRoll finished
MERCHANT_SHOWVendor window opened
MERCHANT_CLOSEDVendor window closed
MERCHANT_UPDATEVendor items updated
EQUIPMENT_SETS_CHANGEDEquipment sets modified
EQUIPMENT_SWAP_FINISHEDresult, setIDSet swap done
ITEM_INTERACTION_OPENItem interaction opened
ITEM_INTERACTION_CLOSEItem interaction closed
SOCKET_INFO_UPDATESocket UI data updated
SOCKET_INFO_CLOSESocket UI closed
ACCOUNT_BANK_TAB_PURCHASE_SUCCEEDEDAccount bank tab bought

Gotchas & Restrictions

  1. Async item dataC_Item.GetItemInfo() may return nil for uncached items. Use C_Item.RequestLoadItemDataByID() and listen for GET_ITEM_INFO_RECEIVED, or use the Item:ContinueOnItemLoad() mixin pattern.
  2. Bag index 5 — In Retail, bag index 5 is the Reagent Bag slot, not a bank bag.
  3. Account Bank — Account bank tabs (Warband bank) use Enum.BagIndex.AccountBankTab1..5 (indices 13–17). Check C_PlayerInfo.IsAccountBankEnabled().
  4. GetMerchantItemInfo removed — Use C_MerchantFrame.GetItemInfo(index) in 12.0.0.
  5. Protected functionsEquipItemByName, UseContainerItem, and similar functions may be restricted during combat lockdown.
  6. Item secrets — In 12.0.0 instances, some item-related data may become secret values. Design UIs to pass values directly to widgets.
  7. ContainerInfo structureC_Container.GetContainerItemInfo() returns a table with fields: iconFileID, stackCount, isLocked, quality, isReadable, hasLoot, hyperlink, isFiltered, hasNoValue, itemID, isBound.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

90/100Analyzed 2/18/2026

Comprehensive API reference skill for WoW Retail item, container, bank, loot, equipment, merchant, socket, and upgrade systems. Contains detailed function tables with parameters, return values, and descriptions for 12+ API namespaces. Well-structured with clear sections, proper formatting, and a useful 'When to Use This Skill' trigger. Tags include api, ci-cd, security (ci-cd/security seem misplaced but don't harm usability). Reference-style content is accurate, high-density, and highly reusable for any WoW addon developer.

100
90
90
95
75

Metadata

Licenseunknown
Version-
Updated2/14/2026
PublisherJBurlison

Tags

apici-cdsecurity