Immediate change to Auction APIs for Commodities with 9.2.7

Lok’tar Ogar,

I wanted to make our developers aware of some major changes to the Auction API based on yesterday’s updates to the Auction House and commodities in-game. We originally intended to leave the auction data patterns untouched, as this essentially created the same view/experience that a player sees in game (all auctions for your connected-realm and all commodity auctions regionally). However, these changes exposed some downstream platform concerns, so we had to change the strategy for exposing commodity data.

Moving forward, non-commodity auction data will continue to be exposed for each connected-realm on the existing auction endpoints:

/wow/connected-realm/{id}/auctions

Consolidated regional commodity data now will be exposed on a new endpoint:

/wow/auctions/commodities

The commodities endpoint will report all regional auction data for the targeted namespace (e.g. dynamic-us) updating every hour (same cadence as the other auction data). This document is very large and we want to encourage efficient integrations, so the API cost to the client quota for this document has been increased to 25 (from 1). This is meant to dissuade unnecessary/superfluous traffic to the API.

One major callout: presently any calls using the if-modified-since request header ALSO incur the full cost of a request for commodities data. We understand this is not ideal, as consumers should be rewarded for using best-practices like this to avoid making unnecessary expensive calls. We have surfaced this issue with our platform team so hopefully this can be resolved sometime in the future.

We apologize for outages and impact to our developer community over the past few days due to these issues. We understand introducing these type of changes live without notice or conversation is not an ideal situation for you. Please let us know if you have concerns or problems and we will try to do our best to work through any issues.

4 Likes

Great!
Since commodities and non-commodities has been splitted and the size of the transferred data has been greatly reduced, can we get updates more frequent as it was before?

2 Likes

Just fyi the new endpoint seems to be working perfectly (I have gotten 3 files and am correctly getting 304’s when not modified).

I’m getting 404 when I try the commodity URL.

string commoditiesUrl = “us_api_blizzard.com/data//wow/auctions/commodities?namespace={wowNamespace}&locale=en_US&access_token={accessToken}”;

Can anyone tell me what other arguments are needed?

The formatting of the URL appears incorrect. You have underscores and a duplicated slash. At runtime, the URL should reflect something like this:

https://us.api.blizzard.com/data/wow/auctions/commodities?namespace=dynamic-us

We recommend sending the access_token via a request header rather than a query param, as this avoids tracking/logging of the access_token:

authorization: Bearer {token}
4 Likes

The underscores were because the I mistakenly thought the forum doesn’t allow me to paste URLs. Thanks for the suggestion about using the request header. Is it a suggestion or is it the reason my code doesn’t work?

Here is an example query that fails:
commoditiesUrl = "https://us.api.blizzard.com/data//wow/auctions/commodities?namespace=dynamic-us&access_token=the_actual_token"

Here is the response: response = {StatusCode: 404, ReasonPhrase: ‘Not Found’, Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
{
Date: Thu, 25 Aug 2022 06:42:11 GMT
Connection: keep-alive
x-trace-traceid: f976ab54-3630-3b60-89e7-33e4bd5450bb
x-tra…

Incidentally when I use this URL I get a perfect result: https://us.api.blizzard.com/data/wow/connected-realm/71/auctions?namespace=dynamic-us&locale=en_US&access_token=the_actual_token

You need to remove the extra / from the first URL. It should be https://us.api.blizzard.com/data/wow/auctions/commodities?namespace=dynamic-us&access_token=the_actual_token

Your other URL works because it doesn’t have the duplicated /

1 Like

Sapu - I’m such an idiot. Thanks!