Greeting adventurers,
As we approach the release of World of Warcraft Shadowlands, we want to get ahead of and surface some planned API changes that will impact the WoW Game Data and Profile APIs. Presently, these specific changes are being targeted for Shadowlands pre-patch.
The below list of changes is not conclusive to all of the changes being made with WoW Shadowlands, however, it does cover the list of changes considered to be “breaking”, as we currently know them today.
Level Cap / Squish
At pre-patch, all active characters in the API should have their character level squished from a max of 120 to a max of 50. This should be reflected in the following locations:
- Character API
- Account API
- Guild Roster API
Other character details such as Item Levels, Character Stats, and Item Tooltip Stats will not be altered until after a character has logged in and out of the WoW Game Client. Any historic references to character level will not be affected, so pre-squish levels will still be seen in old leaderboard APIs and any other historic data.
Impact to Low-Level Characters
In addition, characters typically are not available to the Character API (or on the WoW Community Website) until they reach level 10. When the level cap adjustment takes place, this will cause characters previously level 10-20 to be adjusted to 5-10. In these situations, the character data will still be available in the API so as not to break existing functionality, but those characters will no longer be updated until they again reach level 10. If you hear or notice complaints about character data not updating, we suggest first checking whether the character has leveled to at least 10 in Shadowlands.
Character Appearance API
The Character Appearance API will be undergoing some changes to support the new character customizations featured in Shadowlands, With newly updated profiles, the legacy “appearance” section will be deprecated in favor of a new “customization” section detailing a character’s set of customization options and choices.
Old
{
...
"appearance": {
"face_variation": 0,
"skin_color": 22,
"hair_variation": 1,
"hair_color": 6,
"feature_variation": 7,
"custom_display_options": [
0,
0,
0
]
}
}
New
{
...
"customizations": [
{
"option": {
"name": {
"en_US": "Skin Color",
"es_MX": "Color de piel",
"pt_BR": "Cor da Pele",
"de_DE": "Hautfarbe",
"en_GB": "Skin Color",
"es_ES": "Color de piel",
"fr_FR": "Peau",
"it_IT": "Pelle",
"ru_RU": "Цвет кожи",
"ko_KR": "피부색",
"zh_TW": "膚色",
"zh_CN": "肤色"
},
"id": 49
},
"choice": {
"id": 823,
"display_order": 22
}
},
{
"option": {
"name": {
"en_US": "Face",
"es_MX": "Rostro",
"pt_BR": "Rosto",
"de_DE": "Gesicht",
"en_GB": "Face",
"es_ES": "Cara",
"fr_FR": "Visage",
"it_IT": "Viso",
"ru_RU": "Лицо",
"ko_KR": "얼굴",
"zh_TW": "臉型",
"zh_CN": "面部"
},
"id": 50
},
"choice": {
"id": 825,
"display_order": 0
}
},
{
"option": {
"name": {
"en_US": "Hair Style",
"es_MX": "Peinado",
"pt_BR": "Estilo do Cabelo",
"de_DE": "Frisur",
"en_GB": "Hair Style",
"es_ES": "Peinado",
"fr_FR": "Coiffure",
"it_IT": "Capelli",
"ru_RU": "Прическа",
"ko_KR": "머리 모양",
"zh_TW": "髮型",
"zh_CN": "发型"
},
"id": 51
},
"choice": {
"name": {
"en_US": "Loose Tail",
"es_MX": "Coleta aflojada",
"pt_BR": "Rabo Solto",
"de_DE": "Loser Zopf",
"en_GB": "Loose Tail",
"es_ES": "Coleta aflojada",
"fr_FR": "Queue-de-cheval",
"it_IT": "Coda sciolta",
"ru_RU": "Свободный хвост",
"ko_KR": "하나로 올려 묶은 긴 머리",
"zh_TW": "蓬鬆馬尾",
"zh_CN": "松马尾"
},
"id": 844,
"display_order": 1
}
},
{
"option": {
"name": {
"en_US": "Hair Color",
"es_MX": "Color de pelo",
"pt_BR": "Cor do Cabelo",
"de_DE": "Haarfarbe",
"en_GB": "Hair Color",
"es_ES": "Color de pelo",
"fr_FR": "Couleur des cheveux",
"it_IT": "Tinta",
"ru_RU": "Цвет волос",
"ko_KR": "머리색",
"zh_TW": "髮色",
"zh_CN": "发色"
},
"id": 52
},
"choice": {
"id": 864,
"display_order": 6
}
},
{
"option": {
"name": {
"en_US": "Markings",
"es_MX": "Marcas",
"pt_BR": "Marcas",
"de_DE": "Tätowierungen",
"en_GB": "Markings",
"es_ES": "Marcas",
"fr_FR": "Marques",
"it_IT": "Marchi",
"ru_RU": "Раскраска",
"ko_KR": "특징",
"zh_TW": "面紋",
"zh_CN": "面纹"
},
"id": 53
},
"choice": {
"name": {
"en_US": "Serpent",
"es_MX": "Serpiente",
"pt_BR": "Serpente",
"de_DE": "Schlange",
"en_GB": "Serpent",
"es_ES": "Serpiente",
"fr_FR": "Serpent",
"it_IT": "Serpente",
"ru_RU": "Змей",
"ko_KR": "독사",
"zh_TW": "蛇形",
"zh_CN": "蛇纹"
},
"id": 877,
"display_order": 7
}
}
]
}
New customization “choices” may or may not have an accompanying localization name, depending on the option. Where possible, the “display_order” will be included for handling backwards compatibility with the old structure. Along with migrated character customizations, there will be many new options such as:
- Eyebrows
- Ears
- Necklace
- Earrings
- Scars
- Vines
- Vine Color
- Headdress
- Nose Ring
- Markings Color
Character Media API
The Character Media API will be updated for consistency with the standard media documents available in the Media API. Character Media responses will now include a more flexible generic list of asset entries by type, rather than explicit property names for each rendered scene.
Old
{
...
"avatar_url": "https://render-us.worldofwarcraft.com/character/{realm-slug}/{mod-value}/{id}-avatar.jpg",
"bust_url": "https://render-us.worldofwarcraft.com/character/{realm-slug}/{mod-value}/{id}-inset.jpg",
"render_url": "https://render-us.worldofwarcraft.com/character/{realm-slug}/{mod-value}/{id}-main.jpg"
}
New
{
...
"assets": [
{
"key": "avatar",
"value": "https://render-us.worldofwarcraft.com/character/{realm-slug}/{mod-value}/{id}-avatar.jpg"
},
{
"key": "inset",
"value": "https://render-us.worldofwarcraft.com/character/{realm-slug}/{mod-value}/{id}-inset.jpg"
},
{
"key": "main",
"value": "https://render-us.worldofwarcraft.com/character/{realm-slug}/{mod-value}/{id}-main.jpg"
}
]
}
Achievement API
To support feature updates to achievements, we are adding a new “requirements” section and deprecating the “faction” property. This matches the patterns used in many of our other APIs (such as Quests and Mounts). Any new achievement requirements moving forward will be added to this section.
Old
{
...
"faction": {
"type": "HORDE",
"name": {
"en_US": "Horde",
"es_MX": "Horda",
"pt_BR": "Horda",
"de_DE": "Horde",
"en_GB": "Horde",
"es_ES": "Horda",
"fr_FR": "Horde",
"it_IT": "Orda",
"ru_RU": "Орда",
"ko_KR": "호드",
"zh_TW": "部落",
"zh_CN": "部落"
}
}
}
New
{
...
"requirements": {
"faction": {
"type": "HORDE",
"name": {
"en_US": "Horde",
"es_MX": "Horda",
"pt_BR": "Horda",
"de_DE": "Horde",
"en_GB": "Horde",
"es_ES": "Horda",
"fr_FR": "Horde",
"it_IT": "Orda",
"ru_RU": "Орда",
"ko_KR": "호드",
"zh_TW": "部落",
"zh_CN": "部落"
}
}
}
}
Quest API
After reviewing in-game functionality in regards to the Quest API, we have removed the following properties related to recommended character level:
{
"recommended_level": 10,
"recommended_minimum_level": 10,
"recommended_maximum_level": 40,
}
Moving forward, quests generally scale according to player level, and as such, these properties are no longer relevant or accurate in representing level recommendations. The related properties in the “requirements” section will remain and should instead be used to determine the minimum and maximum levels in which a quest can be accepted.
Feedback
Feedback is welcomed.
While we understand it is not ideal when breaking changes are made, we wanted to get this information out to ensure that consumers have time to plan the necessary changes.