wow-api-items-inventory

Item & Inventory API (Retail — Patch 12.0.0)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wow-api-items-inventory" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-items-inventory

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

Function Returns Description

C_Item.GetItemInfo(itemInfo)

itemName, itemLink, quality, itemLevel, reqLevel, class, subclass, maxStack, equipLoc, icon, vendorPrice, classID, subClassID, bindType, expacID, setID, isCraftingReagent

Full item data (may require server query)

C_Item.GetItemInfoInstant(itemInfo)

itemID, itemType, itemSubType, itemEquipLoc, icon, classID, subClassID

Instant item data (no server query needed)

C_Item.GetItemName(itemLocation)

itemName

Name from ItemLocation

C_Item.GetItemLink(itemLocation)

itemLink

Hyperlink from ItemLocation

C_Item.GetItemIcon(itemLocation)

icon

Icon texture from ItemLocation

C_Item.GetItemIconByID(itemInfo)

icon

Icon texture by item ID/name/link

C_Item.GetItemQualityByID(itemInfo)

quality

Quality enum value

C_Item.GetItemQualityColor(quality)

r, g, b, hex

Color for item quality

C_Item.GetCurrentItemLevel(itemLocation)

currentItemLevel

Effective item level

C_Item.GetItemClassInfo(itemClassID)

result

Name of item class (Armor, Weapon, etc.)

C_Item.GetItemSubClassInfo(itemClassID, itemSubClassID)

subClassName, isArmorType

Subclass name

C_Item.GetItemFamily(itemInfo)

result

Bag type flags for the item

C_Item.GetItemGUID(itemLocation)

itemGUID

Unique item GUID

C_Item.GetItemCreationContext(itemInfo)

itemID, creationContext

How the item was created

C_Item.GetItemUpgradeInfo(itemInfo)

itemUpgradeInfo

Upgrade track and level

C_Item.GetItemUniqueness(itemInfo)

limitCategory, limitMax

Unique-equip limits

C_Item.GetItemUniquenessByID(itemInfo)

isUnique, limitCategoryName, limitCategoryCount, limitCategoryID

Detailed uniqueness

Item Counts & Cooldowns

Function Returns Description

C_Item.GetItemCount(itemInfo [, includeBank [, includeUses [, includeReagentBank [, includeAccountBank]]]])

count

Total item count across inventories

C_Item.GetItemCooldown(itemInfo)

startTimeSeconds, durationSeconds, enableCooldownTimer

Item use cooldown

C_Item.GetStackCount(itemLocation)

stackCount

Stack count at a location

Item Type Checks

Function Returns Description

C_Item.DoesItemExist(emptiableItemLocation)

itemExists

Item exists at location?

C_Item.DoesItemExistByID(itemInfo)

itemExists

Item exists by ID?

C_Item.DoesItemContainSpec(itemInfo, classID [, specID])

result

Suitable for spec?

C_Item.IsEquippableItem(itemInfo)

result

Can be equipped?

C_Item.IsEquippedItem(itemInfo)

result

Currently equipped?

C_Item.IsEquippedItemType(type)

result

Item type currently equipped?

C_Item.IsConsumableItem(itemInfo)

result

Is consumable?

C_Item.IsCosmeticItem(itemInfo)

result

Is cosmetic?

C_Item.IsDecorItem(itemInfo)

isDecor

Is housing decoration?

C_Item.IsCurioItem(itemInfo)

result

Is delve curio?

C_Item.IsHelpfulItem(itemInfo)

result

Usable on friendly units?

C_Item.IsHarmfulItem(itemInfo)

result

Usable on hostile units?

C_Item.IsBound(itemLocation)

isBound

Is soulbound?

C_Item.IsBoundToAccountUntilEquip(itemLocation)

isBoundToAccountUntilEquip

Account-bound until equipped?

C_Item.IsItemBindToAccount(itemInfo)

isItemBindToAccount

Account-bound?

C_Item.IsItemKeystoneByID(itemInfo)

isKeystone

Is M+ keystone?

C_Item.IsItemInRange(itemInfo, targetToken)

result

In usable range? #nocombat

C_Item.IsItemDataCached(itemLocation)

isCached

Data available locally?

C_Item.IsItemDataCachedByID(itemInfo)

isCached

Data cached by ID?

C_Item.IsCurrentItem(itemInfo)

result

Currently active?

C_Item.IsDressableItemByID(itemInfo)

isDressableItem

Can be previewed?

C_Item.IsAnimaItemByID(itemInfo)

isAnimaItem

Is anima item?

C_Item.IsLocked(itemLocation)

isLocked

Is locked (opening)?

Item Actions

Function Returns Description

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

Function Returns Description

C_Item.GetAppliedItemTransmogInfo(itemLoc)

info

Applied transmog

C_Item.GetBaseItemTransmogInfo(itemLoc)

info

Base appearance

C_Item.GetCurrentItemTransmogInfo(itemLoc)

info

Current visual

C_Item.GetItemLearnTransmogSet(itemInfo)

setID

Transmog 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

Constant Value Description

Enum.BagIndex.Backpack

0 Main backpack

Enum.BagIndex.BagSlot1..4

1–4 Equipped bag slots

Enum.BagIndex.BankBag

-1 Main bank

Enum.BagIndex.BankBagSlot1..7

5–11 Bank bag slots

Enum.BagIndex.ReagentBag

5 Reagent bag slot

KEYRING_CONTAINER

-2 Keyring (legacy)

Enum.BagIndex.AccountBankTab1..5

13–17 Account bank tabs

Container Functions

Function Returns Description

C_Container.GetContainerNumSlots(containerIndex)

numSlots

Number of slots in bag

C_Container.GetContainerNumFreeSlots(bagIndex)

numFreeSlots, bagFamily

Free slots and bag type

C_Container.GetContainerFreeSlots(containerIndex)

freeSlots

Array of free slot indices

C_Container.GetContainerItemInfo(containerIndex, slotIndex)

containerInfo

Full item info at slot

C_Container.GetContainerItemID(containerIndex, slotIndex)

containerID

Item ID at slot

C_Container.GetContainerItemLink(containerIndex, slotIndex)

itemLink

Item hyperlink at slot

C_Container.GetContainerItemQuestInfo(containerIndex, slotIndex)

questInfo

Quest item status

C_Container.GetContainerItemCooldown(containerIndex, slotIndex)

startTime, duration, enable

Item cooldown

C_Container.GetContainerItemDurability(containerIndex, slotIndex)

durability, maxDurability

Durability

C_Container.GetContainerItemEquipmentSetInfo(containerIndex, slotIndex)

inSet, setList

Equipment set membership

C_Container.GetContainerItemPurchaseInfo(containerIndex, slotIndex, isEquipped)

info

Refund info

C_Container.HasContainerItem(containerIndex, slotIndex)

hasItem

Slot occupied?

C_Container.GetBagName(bagIndex)

name

Bag item name

C_Container.GetBagSlotFlag(bagIndex, flag)

isSet

Bag filter flag

C_Container.IsContainerFiltered(containerIndex)

isFiltered

Bag is filtered?

C_Container.IsBattlePayItem(containerIndex, slotIndex)

isBattlePayItem

Store-bought item?

C_Container.ContainerIDToInventoryID(containerID)

inventoryID

Convert bag ID to inventory slot

Container Actions

Function Description

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

Function Description

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

Function Returns Description

C_Bank.CanUseBank(bankType)

canUseBank

Bank type accessible?

C_Bank.CanViewBank(bankType)

canViewBank

Can view bank?

C_Bank.AreAnyBankTypesViewable()

areAnyBankTypesViewable

Any bank viewable?

C_Bank.FetchViewableBankTypes()

viewableBankTypes

List of viewable types

C_Bank.FetchNumPurchasedBankTabs(bankType)

numPurchasedBankTabs

Purchased tab count

C_Bank.FetchPurchasedBankTabIDs(bankType)

purchasedBankTabIDs

Purchased tab ID list

C_Bank.FetchPurchasedBankTabData(bankType)

purchasedBankTabData

Tab configuration data

C_Bank.FetchNextPurchasableBankTabData(bankType)

nextPurchasableTabData

Next unlock info

C_Bank.FetchDepositedMoney(bankType)

amount

Money stored in bank

C_Bank.FetchBankLockedReason(bankType)

reason

Why bank is locked

C_Bank.CanPurchaseBankTab(bankType)

canPurchaseBankTab

Can buy another tab?

C_Bank.HasMaxBankTabs(bankType)

hasMaxBankTabs

All tabs purchased?

C_Bank.CanDepositMoney(bankType)

canDepositMoney

Can deposit gold?

C_Bank.CanWithdrawMoney(bankType)

canWithdrawMoney

Can withdraw gold?

C_Bank.IsItemAllowedInBankType(bankType, itemLocation)

isItemAllowedInBankType

Item fits this bank?

C_Bank.DoesBankTypeSupportAutoDeposit(bankType)

doesBankTypeSupportAutoDeposit

Supports auto-deposit?

C_Bank.DoesBankTypeSupportMoneyTransfer(bankType)

doesBankTypeSupportMoneyTransfer

Supports money?

Bank Actions

Function Description

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

Function Returns Description

C_Loot.GetLootRollDuration(rollID)

duration

Roll timer duration

C_Loot.IsLegacyLootModeEnabled()

isLegacyLootModeEnabled

Legacy loot active?

Global Loot Functions

Function Returns Description

GetNumLootItems()

numLootItems

Items in loot window

GetLootInfo()

info

Loot slot info table

GetLootSlotInfo(lootSlot)

icon, name, quantity, currencyID, quality, locked, isQuestItem, questID, isActive

Slot details

GetLootSlotLink(lootSlot)

itemLink

Item link for loot slot

GetLootSlotType(lootSlot)

slotType

Slot content type

GetLootSourceInfo(lootSlot)

guid, quantity

Source of loot

LootSlot(slot)

— Loot the slot

LootSlotHasItem(lootSlot)

isLootItem

Slot has item?

ConfirmLootSlot(slot)

— Confirm BoP loot

CloseLoot([errNum])

— Close loot window

IsFishingLoot()

isFishingLoot

Loot from fishing?

GetOptOutOfLoot()

optedOut

Auto-passing all loot?

SetOptOutOfLoot(optOut)

— Set auto-pass

Loot Rolls

Function Returns Description

RollOnLoot(rollID [, rollType])

— Roll/pass on loot

ConfirmLootRoll(rollID, roll)

— Confirm BoP roll

GetLootRollItemInfo(rollID)

texture, name, count, quality, ...

Roll item details

GetLootRollItemLink(rollID)

itemLink

Roll item link

GetLootRollTimeLeft(rollID)

timeLeft

Roll time remaining

GetActiveLootRollIDs()

rollIDs

Active roll IDs

GetLootThreshold()

threshold

Group loot threshold

C_ItemSocketInfo — Socket API

Function Returns Description

C_ItemSocketInfo.GetNumSockets()

numSockets

Number of sockets

C_ItemSocketInfo.GetSocketTypes(index)

socketType

Socket color/type

C_ItemSocketInfo.GetExistingSocketInfo(index)

name, icon, gemMatchesSocket

Current gem info

C_ItemSocketInfo.GetExistingSocketLink(index)

existingSocketLink

Current gem link

C_ItemSocketInfo.GetNewSocketInfo(index)

name, icon, gemMatchesSocket

Proposed gem info

C_ItemSocketInfo.GetNewSocketLink(index)

newSocketLink

Proposed gem link

C_ItemSocketInfo.GetSocketItemInfo()

name, icon, quality

Item being socketed

C_ItemSocketInfo.GetSocketItemBoundTradeable()

socketItemTradeable

Still tradeable?

C_ItemSocketInfo.GetSocketItemRefundable()

socketItemRefundable

Still refundable?

C_ItemSocketInfo.HasBoundGemProposed()

hasBoundGemProposed

BoP gem selected?

C_ItemSocketInfo.GetCurrUIType()

uiType

Socket UI type

C_ItemSocketInfo.IsArtifactRelicItem(info)

isArtifactRelicItem

Is 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

Function Returns Description

C_ItemInteraction.GetItemInteractionInfo()

info

Interaction frame info

C_ItemInteraction.GetItemInteractionSpellId()

spellId

Spell for interaction

C_ItemInteraction.GetChargeInfo()

chargeInfo

Charge tracking

C_ItemInteraction.GetItemConversionCurrencyCost(item)

conversionCost

Currency 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

Function Returns Description

C_MerchantFrame.GetItemInfo(index)

itemInfo

Vendor item info (12.0.0 replacement)

BuyMerchantItem(index [, quantity])

— Buy from vendor

BuybackItem(slot)

— Buy back sold item

CanMerchantRepair()

canRepair

Vendor can repair?

RepairAllItems([guildBankRepair])

— Repair all items

GetRepairAllCost()

repairAllCost, canRepair

Total repair cost

CloseMerchant()

— Close vendor window

GetMerchantNumItems()

numItems

Number of vendor items

GetBuybackItemInfo(slotIndex)

name, icon, price, ...

Buyback item info

GetNumBuybackItems()

numItems

Buyback slot count

GetMerchantItemMaxStack(index)

maxStack

Max purchasable stack

C_WorldLootObject — World Loot Objects

Function Returns Description

C_WorldLootObject.IsWorldLootObject(unitToken)

isWorldLootObject

Is world loot?

C_WorldLootObject.GetWorldLootObjectInfo(unitToken)

info

Loot object details

C_WorldLootObject.GetWorldLootObjectInfoByGUID(objectGUID)

info

Info by GUID

C_WorldLootObject.GetWorldLootObjectDistanceSquared(unitToken)

distanceSquared

Distance to object

C_WorldLootObject.DoesSlotMatchInventoryType(slot, inventoryType)

matches

Slot/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

Function Description

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)

Function Returns Description

C_EquipmentSet.GetEquipmentSetIDs()

setIDs

All set IDs

C_EquipmentSet.GetEquipmentSetInfo(setID)

info

Set name, icon, etc.

C_EquipmentSet.GetItemIDs(setID)

itemIDs

Items in set by slot

C_EquipmentSet.GetItemLocations(setID)

itemLocations

Item locations per slot

C_EquipmentSet.EquipmentSetContainsLockedItems(setID)

hasLockedItems

Any items locked?

C_EquipmentSet.CreateEquipmentSet(name, icon)

— Create new set

C_EquipmentSet.SaveEquipmentSet(setID [, icon])

— Save current gear to set

C_EquipmentSet.UseEquipmentSet(setID)

result

Equip a set

C_EquipmentSet.DeleteEquipmentSet(setID)

— Delete a set

C_EquipmentSet.ModifyEquipmentSet(setID, name [, icon])

— Rename/re-icon set

C_EquipmentSet.GetNumEquipmentSets()

numSets

Count of sets

C_EquipmentSet.GetEquipmentSetForSlot(slot)

setIDs

Sets using this slot

C_EquipmentSet.CanUseEquipmentSets()

canUse

Equipment sets available?

Cursor Functions (Item-Related)

Function Returns Description

ClearCursor()

— Clear cursor contents

CursorHasItem()

result

Cursor holds item?

CursorHasMoney()

result

Cursor holds money?

CursorHasSpell()

result

Cursor 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

Event Payload Description

BAG_UPDATE

bagID

Bag contents changed

BAG_UPDATE_DELAYED

— Fires after all BAG_UPDATE

ITEM_LOCK_CHANGED

bagOrSlotIndex, slotIndex

Item lock state changed

ITEM_LOCKED

bagID, slotID

Item became locked

ITEM_UNLOCKED

bagID, slotID

Item unlocked

GET_ITEM_INFO_RECEIVED

itemID, success

Async item data arrived

BANKFRAME_OPENED

— Bank window opened

BANKFRAME_CLOSED

— Bank window closed

PLAYERBANKSLOTS_CHANGED

slot

Bank slot changed

PLAYERBANKBAGSLOTS_CHANGED

— Bank bag slots changed

LOOT_READY

autoLoot

Loot window ready

LOOT_OPENED

autoLoot

Loot window opened

LOOT_CLOSED

— Loot window closed

LOOT_SLOT_CLEARED

lootSlot

Loot slot taken

START_LOOT_ROLL

rollID, rollTime, lootHandle

Roll started

CONFIRM_LOOT_ROLL

rollID, roll, confirmReason

Confirm BoP roll

LOOT_ROLL_COMPLETE

rollID

Roll finished

MERCHANT_SHOW

— Vendor window opened

MERCHANT_CLOSED

— Vendor window closed

MERCHANT_UPDATE

— Vendor items updated

EQUIPMENT_SETS_CHANGED

— Equipment sets modified

EQUIPMENT_SWAP_FINISHED

result, setID

Set swap done

ITEM_INTERACTION_OPEN

— Item interaction opened

ITEM_INTERACTION_CLOSE

— Item interaction closed

SOCKET_INFO_UPDATE

— Socket UI data updated

SOCKET_INFO_CLOSE

— Socket UI closed

ACCOUNT_BANK_TAB_PURCHASE_SUCCEEDED

— Account bank tab bought

Gotchas & Restrictions

  • Async item data — C_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.

  • Bag index 5 — In Retail, bag index 5 is the Reagent Bag slot, not a bank bag.

  • Account Bank — Account bank tabs (Warband bank) use Enum.BagIndex.AccountBankTab1..5 (indices 13–17). Check C_PlayerInfo.IsAccountBankEnabled() .

  • GetMerchantItemInfo removed — Use C_MerchantFrame.GetItemInfo(index) in 12.0.0.

  • Protected functions — EquipItemByName , UseContainerItem , and similar functions may be restricted during combat lockdown.

  • Item secrets — In 12.0.0 instances, some item-related data may become secret values. Design UIs to pass values directly to widgets.

  • ContainerInfo structure — C_Container.GetContainerItemInfo() returns a table with fields: iconFileID , stackCount , isLocked , quality , isReadable , hasLoot , hyperlink , isFiltered , hasNoValue , itemID , isBound .

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

wow-addon-structure

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-lua-api

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-map-navigation

No summary provided by upstream source.

Repository SourceNeeds Review