Patch 10.0.2 - Patch Notes - 2022-11-17

Greetings, developers!

We are excited to announce that we have released an update to the World of Warcraft Game Data and Profile APIs that includes several new endpoints. These endpoints are currently available for World of Warcraft; they are not available for Classic versions (WoW Era and Wrath of the Lich King).

Game Data API

Talent trees:
/data/wow/talent-tree/index
/data/wow/talent-tree/{talentTreeId}/playable-specialization/{specId}

Commodities:
/data/wow/auctions/commodities

The auction house endpoint delivered with patch 9.2.7 also recently received a documentation update on commodities, so wanted to ensure users are aware of its availability.

Profile API

Character Specializations Summary
/profile/wow/character/{realmSlug}/{characterName}/specializations

While this is a pre-existing endpoint, it has been updated to return talent loadout data
for all character specializations.

These endpoints are available in the static-{region} and profile-{region} namespaces respectively. See the World of Warcraft Namespaces Documentation for more information.

To explore these endpoints further, check out our official API Reference documentation on the Developer Portal, located here: WoW Game Data API Reference and WoW Profile API Reference.

Finally, a word of apology! This came in late and should have landed during pre-patch initial launch. Things weren’t quite ready then and some hotfixes were needed to get us to today’s update.

We hope it was worth the wait. Thanks for hanging in there.

Happy coding! :slight_smile:

4 Likes

The new talent data is super useful. However, the data is incomplete and can’t be used to generate talent tree export codes for every spec (if you aren’t getting it from the armory, but another source like a tree builder or a log).

The reason for this some class/spec trees have unused/unreachable nodes listed by the in-game C_Traits.GetTreeNodes(treeId) method but not listed in this API. However, you need to know that those nodes exist in order to properly encode an export code.

The specific case that I know of is node 90912 for Demon Hunters. This is included in the GetTreeNodes API call used in-game to process talent export codes, but missing in this dump because it has no node info attached. To correctly encode a Demon Hunter talent build, you have to include a 0 representing this node in the bit encoding of the talent export code—but with the current data on the API you won’t know that this talent even exists.

(Also note: removing this node from the in-game API call would break all existing Demon Hunter export codes :slight_smile:)

4 Likes

How have the talents somehow degraded since release? In addition to the above (major) issue, it seems that Blizz has removed any way to tell which talents are “free” per spec. Previously, there was a “free_node” field that denoted if you got that particular talent for free by picking the appropriate spec. Now, however, there’s no way using the API to know that Chains of Ice, for instance, is a free starting node for Frost DK’s. This doesn’t necessarily sound like a huge deal, but it’s also core information that should absolutely be contained within a standard API.

You also have other craziness that I’ve noticed in particular with mage. The barriers, for some reason, are found within the spec tree. You CANNOT build a class tree without dipping into the spec tree as a result. What’s the point of the positional information if the talent isn’t even in the right tree?

Hello everyone. We have made some updates to the API to address the concerns expressed above:

  1. When you query for the talent tree index, you will now get:
    1.1. spec_talent_trees: returns the spec talent tree like we used to, allowing you to build the tree layout for each class spec.
    1.2. class_talent_trees returns the endpoints for both spec_talent_trees but also talent_nodes which contains all talent nodes for a class. This is equivalent to what C_Traits.GetTreeNodes(treeId) would give you back so it’s easier to generate export codes.
  2. Free nodes for a class spec now contains default_points that tells you if that node is a free node or not.
  3. We have also fixed some inconsistencies being returned for free nodes. Specifically the mage class and its barriers.

Thanks for pointing out the problems. Let us know if you see any other issues or have any additional feedback.

2 Likes

The /data/wow/talent-tree/index endpoint doesn’t include entries for all 38 specs in the game (it used to, this is a regression). It only returns 35 elements (but there are actually four missing specs, not three, as it appears ret pally is included twice).
Since the actual talent tree endpoint includes non-deterministic integer (i.e. in addition to the spec ID used elsewhere in the path) it’s impossible to programmatically access all 38 trees without this endpoint functioning properly. Can this be fixed so the endpoint properly returns all 38 specs?