Install
$ agentstack add skill-jburlison-wowaddonapiagents-wow-api-items-inventory ✓ 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
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/WorldofWarcraft_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/WorldofWarcraft_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/WorldofWarcraft_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/WorldofWarcraft_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,
…
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.