通貨・経済 API(リテール — パッチ 12.0.0)
通貨、オークションハウス、ショップ、トークン、トレーディング・ポスト、メール、取引 API の包括的なリファレンスです。
出典: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API
2026 年 1 月 28 日時点: パッチ 12.0.0(ビルド 65655)
対象範囲: リテールのみ。
対象範囲
- C_CurrencyInfo — 通貨データ、追跡、バックパック表示
- オークションハウス — 出品、入札、購入、販売、商品
- C_WowTokenPublic / C_WowTokenUI — WoW トークン市場
- AccountStore / StorePublic — ゲーム内ショップ
- CatalogShop — カタログショップシステム
- C_PerksProgram — トレーディング・ポスト(トレーダーズ・テンダー)
- BlackMarket — ブラックマーケット・オークションハウス
- TradeInfo — プレイヤー間取引
- MailInfo — メールボックスシステム
C_CurrencyInfo — 通貨システム
通貨データ
| 関数 | 戻り値 | 説明 |
|---|
C_CurrencyInfo.GetCurrencyInfo(currencyType) | currencyInfo | 種類別の通貨情報 |
C_CurrencyInfo.GetCurrencyInfoFromLink(link) | currencyInfo | ハイパーリンクから取得 |
C_CurrencyInfo.GetCurrencyIDFromLink(link) | currencyID | ハイパーリンクから ID を取得 |
C_CurrencyInfo.GetCurrencyLink(currencyType, amount) | link | 通貨のハイパーリンク |
C_CurrencyInfo.GetCurrencyListSize() | size | エントリ数 |
C_CurrencyInfo.GetCurrencyListInfo(index) | info | インデックス位置のエントリ |
C_CurrencyInfo.GetCurrencyListLink(index) | link | インデックス位置のリンク |
通貨情報のフィールド
name — 通貨名
description — 説明文
currencyID — 一意の ID
iconFileID — アイコンテクスチャ
quantity — 現在の数量
maxQuantity — 最大上限(0 = 上限なし)
canEarnPerWeek — 週間上限があるか
quantityEarnedThisWeek — 今週獲得した数量
maxWeeklyQuantity — 週間上限
totalEarned — これまでの累計獲得数
isTradeable — 取引可能か
quality — アイテム品質
isDiscovered — 発見済みか
isShowInBackpack — バックパックに表示されるか
バックパックと追跡
| 関数 | 戻り値 | 説明 |
|---|
C_CurrencyInfo.GetBackpackCurrencyInfo(index) | currencyData | バックパックのスロット |
C_CurrencyInfo.GetNumBackpackCurrencies() | numSlots | バックパックのスロット数 |
C_CurrencyInfo.SetCurrencyBackpack(index, backpack) | — | バックパック表示を切り替え |
C_CurrencyInfo.IsCurrencyTracked(currencyID) | isTracked | 追跡中か |
C_CurrencyInfo.SetCurrencyTracked(currencyID, tracked) | — | 追跡状態を設定 |
通貨リストの管理
| 関数 | 戻り値 | 説明 |
|---|
C_CurrencyInfo.ExpandCurrencyList(index, expand) | — | 見出しを展開/折りたたみ |
C_CurrencyInfo.IsCurrencyHeader(index) | isHeader | 見出しか |
C_CurrencyInfo.GetFactionGrantedByCurrency(currencyID) | factionID | 関連する勢力 |
C_CurrencyInfo.DoesCurrentFilterPassFilter(currencyID) | passes | フィルターを通過するか |
ゴールド関数(グローバル)
| 関数 | 戻り値 | 説明 |
|---|
GetMoney() | copper | プレイヤーの所持金(銅貨) |
GetCoinTextureString(copper) | text | 金貨・銀貨・銅貨の文字列 |
GetMoneyString(copper, ...) | text | 書式設定された金額の文字列 |
オークションハウス
閲覧と検索
| 関数 | 戻り値 | 説明 |
|---|
C_AuctionHouse.SearchForItemKeys(itemKeys, sorts) | — | アイテムキーで検索 |
C_AuctionHouse.SendBrowseQuery(query) | — | 閲覧クエリ |
C_AuctionHouse.SendSearchQuery(itemKey, sorts, separateOwnerItems) | — | アイテム検索 |
C_AuctionHouse.GetBrowseResults() | browseResults | 閲覧結果 |
C_AuctionHouse.GetNumItemSearchResults(itemKey) | numResults | 検索結果数 |
C_AuctionHouse.GetItemSearchResultInfo(itemKey, index) | resultInfo | 検索結果情報 |
C_AuctionHouse.RefreshItemSearchResults(itemKey) | — | 検索結果を更新 |
C_AuctionHouse.GetFilterGroups() | filterGroups | 利用可能なフィルター |
商品
| 関数 | 戻り値 | 説明 |
|---|
C_AuctionHouse.SendSellSearchQuery(itemKey, sorts, separateOwnerItems) | — | 商品検索 |
C_AuctionHouse.GetCommoditySearchResultInfo(itemID, index) | resultInfo | 商品の検索結果 |
C_AuctionHouse.GetNumCommoditySearchResults(itemID) | numResults | 商品の検索結果数 |
C_AuctionHouse.StartCommoditiesPurchase(itemID, quantity) | — | 商品の購入を開始 |
C_AuctionHouse.ConfirmCommoditiesPurchase() | — | 商品の購入を確定 |
C_AuctionHouse.CancelCommoditiesPurchase() | — | 商品の購入をキャンセル |
C_AuctionHouse.GetCommodityQuote(itemID) | quote | 価格見積もり |
出品と販売
| 関数 | 戻り値 | 説明 |
|---|
C_AuctionHouse.PostItem(itemLocation, duration, quantity, bid, buyout) | — | アイテムを出品 |
C_AuctionHouse.PostCommodity(itemLocation, duration, quantity, unitPrice) | — | 商品を出品 |
C_AuctionHouse.GetItemKeyInfo(itemKey) | keyInfo | アイテムキー情報 |
C_AuctionHouse.MakeItemKey(itemID, itemLevel, itemSuffix, battlePetSpeciesID) | itemKey | アイテムキーを作成 |
C_AuctionHouse.GetAvailablePostCount(itemLocation) | count | 出品できる数 |
C_AuctionHouse.CalculateItemDeposit(itemLocation, duration, quantity) | deposit | 預託金 |
C_AuctionHouse.GetQuoteDurationRemaining() | seconds | 見積もりの残り時間 |
入札と購入
| 関数 | 戻り値 | 説明 |
|---|
C_AuctionHouse.PlaceBid(auctionID, bidAmount) | — | 入札 |
C_AuctionHouse.GetBidInfo(index) | bidInfo | 入札情報 |
C_AuctionHouse.GetNumBids() | numBids | 有効な入札数 |
C_AuctionHouse.HasFavorite(itemKey) | isFavorite | お気に入り登録済みか |
C_AuctionHouse.SetFavoriteItem(itemKey, isFavorite) | — | お気に入りを設定 |
C_AuctionHouse.GetFavoriteItems() | itemKeys | すべてのお気に入り |
自分のオークション
| 関数 | 戻り値 | 説明 |
|---|
C_AuctionHouse.GetNumOwnedAuctions() | numAuctions | 自分のオークション数 |
C_AuctionHouse.GetOwnedAuctionInfo(index) | auctionInfo | 自分のオークション情報 |
C_AuctionHouse.CancelAuction(auctionID) | — | オークションをキャンセル |
C_AuctionHouse.QueryOwnedAuctions(sorts) | — | 自分のオークションを照会 |
オークションハウスの状態
| 関数 | 戻り値 | 説明 |
|---|
C_AuctionHouse.IsAuctionHouseAvailable() | isAvailable | AH が利用可能か |
C_AuctionHouse.CloseAuctionHouse() | — | AH を閉じる |
C_AuctionHouse.GetAuctionHouseTimeLeftBand(timeLeftEnum) | seconds | 残り時間 |
C_AuctionHouse.ReplicateItems() | — | AH 全体をスキャン |
C_AuctionHouse.GetNumReplicateItems() | count | 複製アイテム数 |
C_AuctionHouse.GetReplicateItemInfo(index) | info | 複製アイテム情報 |
C_WowTokenPublic — WoW トークン
| 関数 | 戻り値 | 説明 |
|---|
C_WowTokenPublic.GetCurrentMarketPrice() | price | ゴールド価格 |
C_WowTokenPublic.GetGuaranteedPrice() | price | 保証価格 |
C_WowTokenPublic.UpdateMarketPrice() | — | 更新をリクエスト |
C_WowTokenPublic.GetCommerceSystemStatus() | status | システムの状態 |
C_WowTokenPublic.BuyToken() | — | トークンを購入(ゴールド) |
C_WowTokenPublic.SellToken(auctionID) | — | トークンを売却 |
AccountStore / StorePublic — ゲーム内ショップ
| 関数 | 戻り値 | 説明 |
|---|
C_StorePublic.IsEnabled() | enabled | ショップは有効ですか? |
C_StorePublic.IsDisabledByParentalControls() | disabled | 保護者による使用制限でブロックされていますか? |
C_StorePublic.DoesGroupHavePurchaseableProducts(group) | hasPurchaseable | 購入可能な商品がありますか? |
C_PerksProgram — トレーディング・ポスト
| 関数 | 戻り値 | 説明 |
|---|
C_PerksProgram.GetAvailableActivities() | activities | 現在のアクティビティ |
C_PerksProgram.GetPendingChestRewards() | rewards | 未受け取りの報酬 |
C_PerksProgram.GetTimeRemaining() | seconds | ローテーション終了までの残り時間 |
C_PerksProgram.GetCurrencyAmount() | amount | 旅人の手形 |
C_PerksProgram.GetVendorItemInfo(perksVendorItemID) | itemInfo | ベンダーアイテム |
C_PerksProgram.GetAvailableVendorItemIDs() | itemIDs | 現在のローテーション |
C_PerksProgram.GetFrozenPerksVendorItemInfo() | info | 凍結中のアイテム |
C_PerksProgram.RequestPurchase(perksVendorItemID) | — | アイテムを購入 |
C_PerksProgram.RequestRefund(perksVendorItemID) | — | アイテムを払い戻し |
C_PerksProgram.GetDraggedPerksVendorItemInfo() | itemInfo | ドラッグ中のアイテム |
C_PerksProgram.IsFrozenItem(perksVendorItemID) | isFrozen | 凍結されていますか? |
C_PerksProgram.SetFrozenPerksVendorItem(perksVendorItemID) | — | アイテムを凍結 |
C_PerksProgram.ClearFrozenPerksVendorItem() | — | 凍結を解除 |
C_PerksProgram.GetPerksVendorCategoryIDs() | categoryIDs | カテゴリー ID |
C_PerksProgram.GetPerksVendorCategoryInfo(categoryID) | categoryInfo | カテゴリー情報 |
ブラックマーケット
| 関数 | 戻り値 | 説明 |
|---|
C_BlackMarket.GetNumItems() | numItems | 現在の BMAH アイテム数 |
C_BlackMarket.GetItemInfoByIndex(index) | info | BMAH アイテム情報 |
C_BlackMarket.GetHotItem() | info | 本日の注目アイテム |
C_BlackMarket.ItemPlaceBid(index, amount) | — | BMAH に入札 |
C_BlackMarket.RequestItems() | — | アイテム一覧をリクエスト |
C_BlackMarket.IsViewOnly() | isViewOnly | 閲覧専用モードですか? |
取引(プレイヤー間)
| 関数 | 戻り値 | 説明 |
|---|
InitiateTrade(unit) | — | 取引を開始 |
AcceptTrade() | — | 取引を承諾 |
CancelTrade() | — | 取引をキャンセル |
AddTradeMoney() | — | ゴールドの提示額を追加 |
SetTradeMoney(copper) | — | ゴールド額を設定 |
GetTargetTradeMoney() | copper | 相手のゴールド提示額 |
GetPlayerTradeMoney() | copper | 自分のゴールド提示額 |
GetTradeTargetItemInfo(slotIndex) | name, texture, quantity, quality, isUsable, enchant | 相手のアイテム |
GetTradePlayerItemInfo(slotIndex) | name, texture, quantity, quality, isUsable, enchant | 自分のアイテム |
ClickTradeButton(slotIndex) | — | 取引スロットをクリック |
GetNumTradeItems() | numPlayerItems, numTargetItems | アイテム数 |
メールシステム
| 機能 | 戻り値 | 説明 |
|---|
GetInboxNumItems() | numItems, totalItems | 受信トレイの件数 |
GetInboxHeaderInfo(index) | packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, hasItem, wasRead, wasReturned, textCreated, canReply, isGM | メールヘッダー |
GetInboxText(index) | bodyText, stationeryBG, stationeryBGR, stationeryBGG, stationeryBGB, color | メール本文 |
GetInboxItem(index, itemIndex) | name, itemID, texture, count, quality, canUse | 添付アイテム |
GetInboxItemLink(index, itemIndex) | link | 添付アイテムのリンク |
TakeInboxItem(index, itemIndex) | — | 添付アイテムを受け取る |
TakeInboxMoney(index) | — | ゴールドを受け取る |
TakeInboxTextItem(index) | — | テキストアイテムを受け取る |
DeleteInboxItem(index) | — | メールを削除する |
ReturnInboxItem(index) | — | メールを返送する |
AutoLootMailItem(index) | — | すべて自動取得する |
InboxItemCanDelete(index) | canDelete | 削除可能か |
SendMail(recipient, subject, body) | — | メールを送信する |
SetSendMailMoney(copper) | — | 送信するゴールドを設定する |
SetSendMailCOD(copper) | — | 代金引換の金額を設定する |
GetSendMailPrice() | cost | 送信費用 |
GetSendMailItem(index) | name, texture, count, quality | 添付アイテム |
GetSendMailItemLink(index) | link | 添付アイテムのリンク |
ClickSendMailItemButton(itemIndex, clearItem) | — | 添付アイテムを追加/削除する |
SendMailCanSend() | canSend | 送信可能か |
よく使われるパターン
上限付きで通貨を表示する
local function ShowCurrency(currencyID)
local info = C_CurrencyInfo.GetCurrencyInfo(currencyID)
if info then
local text = info.name .. ": " .. info.quantity
if info.maxQuantity > 0 then
text = text .. " / " .. info.maxQuantity
end
if info.canEarnPerWeek and info.maxWeeklyQuantity > 0 then
text = text .. " (Weekly: " .. info.quantityEarnedThisWeek .. "/" .. info.maxWeeklyQuantity .. ")"
end
print(text)
end
end
オークションハウスで検索する
-- Register for results
local f = CreateFrame("Frame")
f:RegisterEvent("ITEM_SEARCH_RESULTS_UPDATED")
f:SetScript("OnEvent", function(self, event, itemKey, ...)
local numResults = C_AuctionHouse.GetNumItemSearchResults(itemKey)
for i = 1, numResults do
local result = C_AuctionHouse.GetItemSearchResultInfo(itemKey, i)
if result then
print(result.buyoutAmount, "copper -", result.quantity, "available")
end
end
end)
-- Initiate search
local itemKey = C_AuctionHouse.MakeItemKey(12345) -- itemID
C_AuctionHouse.SendSearchQuery(itemKey, {}, false)
WoW トークンの価格を確認する
C_WowTokenPublic.UpdateMarketPrice()
local f = CreateFrame("Frame")
f:RegisterEvent("TOKEN_MARKET_PRICE_UPDATED")
f:SetScript("OnEvent", function()
local price = C_WowTokenPublic.GetCurrentMarketPrice()
if price then
print("WoW Token: " .. GetCoinTextureString(price))
end
end)
主要イベント
| イベント | ペイロード | 説明 |
|---|
CURRENCY_DISPLAY_UPDATE | currencyType, quantity, quantityChange, quantityGainSource, quantityLostSource | 通貨が変更された |
AUCTION_HOUSE_SHOW | — | AH が開いた |
AUCTION_HOUSE_CLOSED | — | AH が閉じた |
AUCTION_HOUSE_BROWSE_RESULTS_UPDATED | — | 閲覧結果の準備完了 |
ITEM_SEARCH_RESULTS_UPDATED | itemKey | アイテム検索の準備完了 |
COMMODITY_SEARCH_RESULTS_UPDATED | itemID | 商品検索の準備完了 |
AUCTION_HOUSE_NEW_RESULTS_RECEIVED | itemKey | 新しい結果 |
ITEM_SEARCH_RESULTS_ADDED | itemKey | 結果が追加された |
AUCTION_HOUSE_AUCTION_CREATED | auctionID | オークションが出品された |
AUCTION_CANCELED | auctionID | オークションがキャンセルされた |
TOKEN_MARKET_PRICE_UPDATED | result | トークン価格が更新された |
TOKEN_STATUS_CHANGED | — | トークンの状態が変更された |
PERKS_PROGRAM_CURRENCY_REFRESH | — | トレーダーズ・テンダーが更新された |
PERKS_PROGRAM_PURCHASE_SUCCESS | — | トレーディング・ポストで購入された |
PERKS_PROGRAM_SET_FROZEN_ITEM | — | アイテムが凍結された |
MAIL_INBOX_UPDATE | — | 受信トレイが更新された |
MAIL_SEND_SUCCESS | — | メールが送信された |
MAIL_SHOW | — | メールボックスが開いた |
MAIL_CLOSED | — | メールボックスが閉じた |
TRADE_SHOW | — | 取引ウィンドウが開いた |
TRADE_CLOSED | — | 取引が終了した |
TRADE_ACCEPT_UPDATE | playerAccept, targetAccept | 承諾状態 |
TRADE_MONEY_CHANGED | — | ゴールドの提示額が変更された |
TRADE_PLAYER_ITEM_CHANGED | slotIndex | プレイヤーのアイテムが変更された |
TRADE_TARGET_ITEM_CHANGED | slotIndex | 相手のアイテムが変更された |
BLACK_MARKET_ITEM_UPDATE | — | BMAH のアイテムが更新された |
BLACK_MARKET_OUTBID | — | BMAH で入札額を上回られた |
注意点と制限事項
- オークションハウスのハードウェアイベント — 出品、購入、入札にはハードウェアイベント(ユーザーのクリック)が必要です。
- 商品とアイテムの違い — 商品(スタック可能なアイテム)は、装備品やユニークアイテムとは異なる API パスを使用します。
- AH のスロットリング — 検索にはレート制限があります。短時間にクエリを繰り返すと、サーバーによってスロットリングされます。
- COD メール — COD メールは、添付ファイルを受け取るとゴールドが自動的に差し引かれます。
InboxItemCanDelete() を使ってテストしてください。
- GetMoney() は銅貨を返します — 銀貨にするには 100 で、金貨にするには 10000 で割ります。
- 通貨の上限 — 進捗を表示する前に、必ず
maxQuantity と maxWeeklyQuantity を確認してください。
- WoW Token の価格は非同期です —
UpdateMarketPrice() を呼び出してから、TOKEN_MARKET_PRICE_UPDATED を待ちます。
- ReplicateItems() は時間がかかります — AH の全件スキャンは負荷が高いため、使用は控えめにし、結果を段階的に処理してください。