WoW API: QueryAuctionItems

From AddOn Studio
Revision as of 04:47, 15 August 2023 by Move page script (talk | contribs) (Move page script moved page API QueryAuctionItems to API QueryAuctionItems without leaving a redirect)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Source needed

WoW API < QueryAuctionItems

Will return information about items in the auction house. There must be a delay of about 0.3 second between regular queries and 15 minutes between getall queries. Use CanSendAuctionQuery() to determine if a query can be done.

QueryAuctionItems(name, minLevel, maxLevel, page,
  isUsable, qualityIndex, getAll, exactMatch, filterData
)

Arguments

name
string
A part of the item's name (or the complete name) or "" for no retrenchment. Must be 63 bytes or less.
minLevel
integer (or nil)
Items below this level won't be returned. Either a number or nil for no restrictions.
maxLevel
integer (or nil)
Items above this level won't be returned. Either a number or nil for no restrictions.
page
integer
What page in the auctionhouse this shows up. Note that pages start at 0.
isUsable
boolean (or nil for false)
Is useable by the player.
qualityIndex
integer
Can be one of the following values:
0 - No restriction
1 - Common Quality (white) or better
2 - Uncommon Quality (green) or better
3 - Rare Quality (blue) or better
4 - Epic Quality (purple) or better
getAll
boolean
Download the ENTIRE auction house as one single page. Only allowed when CanSendAuctionQuery() returns true as its second return (~every 15 minutes). May disconnect people with low bandwidth. Also see notes on client-to-server traffic in GetAuctionItemInfo() (Added in 2.3, though initially disabled. Appears to be enabled as of 2.4)
exactMatch
boolean
Should the name be used as an exact match or should it match substrings of the auction items.
filterData
table
The old invtypeIndex, classIndex, and subclassIndex roled into one.


This is the code that builds the filter value(s) for filterData:
local filterData;
	if categoryIndex and subCategoryIndex and subSubCategoryIndex then
		filterData = AuctionCategories[categoryIndex].subCategories[subCategoryIndex].subCategories[subSubCategoryIndex].filters;
	elseif categoryIndex and subCategoryIndex then
		filterData = AuctionCategories[categoryIndex].subCategories[subCategoryIndex].filters;
	elseif categoryIndex then
		filterData = AuctionCategories[categoryIndex].filters;
	else
		-- not filtering by category, leave nil for all
        end


The following commands will return the currently selected category and subcategory:
/dump AuctionFrameBrowse.selectedCategoryIndex
/dump AuctionFrameBrowse.selectedSubcategoryIndex

Examples

Note: AH window has to be open before you click the macro.

Finds twink gear, blue armor between lvl 10 and 19:
QueryAuctionItems("", 10, 19, 0, false, 3, false, false, nil)
Finds battle pets that you haven't learned:
QueryAuctionItems("", nil, nil, 0, false, 0, false, false, AuctionCategories[10].filters)
Finds anything on the AH with the word 'Nobles' in it. Useful for hunting down that elusive last and final Darkmoon Card. :)
/script QueryAuctionItems("Nobles", 0, 0, 0, false, 3, false, false, nil)

Notes

If name is longer than 63 bytes, you'll be disconnected from the server.;;If any of the entered arguments is of the wrong type, the search assumes a nil value.

Pre-Patch 7.0.3

Will return information about items in the auction house. There must be a delay of about 0.3 second between regular queries and 15 minutes between getall queries. Use CanSendAuctionQuery() to determine if a query can be done.

QueryAuctionItems("name", minLevel, maxLevel, 
  invTypeIndex, classIndex, subclassIndex, 
  page, isUsable, qualityIndex, getAll
)
Arguments
(string type, integer type, integer type, integer type, integer type, integer type, integer type, integer type, integer type, boolean type)
name
A part of the item's name (or the complete name) or "" for no retrenchment. Must be 63 bytes or less.
minLevel
Items below this level won't be returned. Either a number or nil for no restrictions.
maxLevel
Items above this level won't be returned. Either a number or nil for no restrictions.
invtypeIndex
Character's slotposition in which the item can be placed in. Can be one of the following values
1 - Head slot (INVTYPE_HEAD)
2 - Neck slot (INVTYPE_NECK)
3 - Shoulder slot (INVTYPE_SHOULDER)
4 - Shirt slot (INVTYPE_BODY)
5 - Chest slot (INVTYPE_CHEST)
6 - Waist slot (INVTYPE_WAIST)
7 - Leg slot (INVTYPE_LEGS)
8 - Feet slot (INVTYPE_FEET)
9 - Wrist slot (INVTYPE_WRIST)
10 - Hand slot (INVTYPE_HAND)
11 - Finger slot (INVTYPE_FINGER)
12 - Trinket slot (INVTYPE_TRINKET)
13 - Back slot (INVTYPE_CLOAK)
14 - Weapon offhand slot (INVTYPE_HOLDABLE)
15 - Weapon mainhand slot (INVTYPE_WEAPONMAINHAND)
16 - Robe slot (INVTYPE_ROBE)
17 - Tabard slot (INVTYPE_TABARD)
18 - Container slot (INVTYPE_BAG)
19 - 2handed weapon (takes two slots) (INVTYPE_2HWEAPON)
20 - Ranged weapon slot (INVTYPE_RANGED)
21 - Shield slot (INVTYPE_SHIELD)
22 - Both weapon slots (INVTYPE_WEAPON)
0 - no restrictions
classIndex
Returns only item in this class. Integer corresponds to the row number of the table returned by GetAuctionItemClasses() or 0 for no restrictions.
subclassIndex
Returns only items in this subclass. Integer corresponds to the row number of the table returned by GetAuctionItemSubClasses(index) or 0 for no restrictions.
page
What page in the auctionhouse this shows up. Note that pages start at 0.
isUsable
Is useable by the player (1 = true, 0 = no restrictions)
qualityIndex
Can be one of the following values
0 - No restriction
1 - Common Quality (white) or better
2 - Uncommon Quality (green) or better
3 - Rare Quality (blue) or better
4 - Epic Quality (purple) or better
getAll
Download the ENTIRE auction house as one single page. Only allowed when CanSendAuctionQuery() returns true as its second return (~every 15 minutes). May disconnect people with low bandwidth. Also see notes on client-to-server traffic in GetAuctionItemInfo() (Added in 2.3, though initially disabled. Appears to be enabled as of 2.4)
Examples
QueryAuctionItems("", 10, 19, 0, 2, 0, 0, 0, 3, 0)
Script
Finds twink gear! (blue armor between lvl 10 and 19)
also, the First page is page (0) zero
/script QueryAuctionItems("Nobles", 0, 0, 0, 0, 0, 0, 0, 0, 0)
Result
Finds anything on the AH with the word 'Nobles' in it. Useful for hunting down that elusive last and final Darkmoon Card. :)
Hint: AH window has to be open before you click the macro.
Notes;;If name is longer than 63 bytes, you'll be disconnected from the server.
invTypeIndex does not appear to work for values past 14. If any of the entered arguments is of the wrong type, the search assumes a nil value.