Skip to content

Instantly share code, notes, and snippets.

@branneman
Last active March 31, 2026 14:09
Show Gist options
  • Select an option

  • Save branneman/684767197dc50b932e6f4a6ba38b3bf2 to your computer and use it in GitHub Desktop.

Select an option

Save branneman/684767197dc50b932e6f4a6ba38b3bf2 to your computer and use it in GitHub Desktop.
Blizzard WoW Classic API
node_modules
.token.json
.env
import qs from 'node:querystring'
const REGION = 'eu'
const LOCALE = 'en_GB' // 'en_GB' only exists in region 'eu'
const API_BASE_URL = `https://${REGION}.api.blizzard.com`
const GAMEVERSION = 'ann' // Era: '1x', Progression: '', Anniversary: 'ann'
const NAMESPACE = {
STATIC: `static-classic${GAMEVERSION}-${REGION}`,
DYNAMIC: `dynamic-classic${GAMEVERSION}-${REGION}`,
PROFILE: `profile-classic${GAMEVERSION}-${REGION}`,
}
export async function _getFromAPI({ access_token, method, queryParams }) {
const _queryParams = {
namespace: NAMESPACE.STATIC,
locale: LOCALE,
...(queryParams || {}),
}
const url = `${API_BASE_URL}${method}?${qs.stringify(_queryParams)}`
const headers = {
Authorization: `Bearer ${access_token}`,
}
console.log('url', url)
const response = await fetch(url, { headers })
if (!response.ok || response.status !== 200) {
return console.error(response)
}
return response.json()
}
export async function getItemClassesIndex({ access_token }) {
// 2 = Weapon
// 4 = Armor
const method = `/data/wow/item-class/index`
return _getFromAPI({ access_token, method })
}
export async function getItemClass({ access_token, itemClassId }) {
const method = `/data/wow/item-class/${itemClassId}`
return _getFromAPI({ access_token, method })
}
export async function getItemSubClass({
access_token,
itemClassId,
itemSubclassId,
}) {
// 0 = Miscellaneous
// 1 = Cloth
// 2 = Leather
// 8 = Idol
const method = `/data/wow/item-class/${itemClassId}/item-subclass/${itemSubclassId}`
return _getFromAPI({ access_token, method })
}
export async function getItem({ access_token, itemId }) {
// era 19019 = Thunderfury
// tbc 29183 = Bindings of the Timewalker
const method = `/data/wow/item/${itemId}`
return _getFromAPI({ access_token, method })
}
export async function itemSearch({ access_token, name }) {
const method = `/data/wow/search/item`
const queryParams = {
orderby: 'id',
_page: 1,
}
if (name) queryParams[`name.en_US`] = name
// First request: not sure how many results will come in
const res = await _getFromAPI({ access_token, method, queryParams })
if (res.pageCount === 1) return res.results
if (typeof res.pageCount !== 'number') {
console.log(res)
throw new Error('pageCount is not a number')
}
// Got multiple pages of results, requesting the rest
console.log(`itemSearch returned ${res.pageCount} pages`)
const results = res.results
for (let page = 2; page <= res.pageCount; page++) {
console.log(` requesting page ${page}`)
const res = await _getFromAPI({ access_token, method, queryParams })
results.push(...res.results)
}
console.log(` total results: ${results.length}`)
return results
}
import fs from 'node:fs/promises'
import 'dotenv/config'
import 'temporal-polyfill/global'
import { getOAuthToken } from './login.js'
import * as api from './classic-game-data.js'
main().catch(console.error)
async function main() {
const access_token = await getOAuthToken()
const itemIds = [
28348, 30377, 28647, 28582, 29087, 29183, 29090, 28398, 30543, 28752, 29169,
29291, 29376, 25634, 29175, 29274, 27886,
]
const items = await getMultipleItems({ access_token, itemIds })
// await fs.writeFile('./results.json', JSON.stringify(res, null, 2))
// console.log(res)
const stats = getTotalStats({ items })
}
async function getMultipleItems({ access_token, itemIds }) {
const results = []
for (const itemId of itemIds) {
const res = await api.getItem({
access_token,
itemId,
})
results.push(res)
}
return results
}
async function getItemsByCharacter() {}
[
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/28348?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 28348,
"name": "Moonglade Cowl",
"quality": {
"type": "RARE",
"name": "Rare"
},
"level": 115,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28348?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28348
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "HEAD",
"name": "Head"
},
"purchase_price": 157911,
"sell_price": 31582,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28348?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28348
},
"quality": {
"type": "RARE",
"name": "Rare"
},
"name": "Moonglade Cowl",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28348?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28348
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "HEAD",
"name": "Head"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 237,
"display": {
"display_string": "237 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STRENGTH",
"name": "Strength"
},
"value": 24,
"display": {
"display_string": "+24 Strength",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "AGILITY",
"name": "Agility"
},
"value": 8,
"display": {
"display_string": "+8 Agility",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 18,
"display": {
"display_string": "+18 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 25,
"display": {
"display_string": "+25 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 13,
"display": {
"display_string": "+13 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/15696?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 53",
"id": 15696
},
"description": "Equip: Increases healing done by up to 53 and damage done by up to 18 for all magical spells and effects."
}
],
"sell_price": {
"value": 31582,
"display_strings": {
"header": "Sell Price:",
"gold": "3",
"silver": "15",
"copper": "82"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"set": {
"item_set": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-set/637?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Moonglade Raiment",
"id": 637
},
"items": [
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28348?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Moonglade Cowl",
"id": 28348
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/27468?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Moonglade Handwraps",
"id": 27468
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/27873?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Moonglade Pants",
"id": 27873
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28202?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Moonglade Robe",
"id": 28202
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/27737?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Moonglade Shoulders",
"id": 27737
}
}
],
"effects": [
{
"display_string": "(2) Set: Your Rejuvenation spell now also grants 35 dodge rating.",
"required_count": 2
},
{
"display_string": "(4) Set: Reduces the mana cost of all shapeshifting by 25%.",
"required_count": 4
}
],
"display_string": "Moonglade Raiment (0/5)"
},
"durability": {
"value": 60,
"display_string": "Durability 60 / 60"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/30377?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 30377,
"name": "Karja's Medallion",
"quality": {
"type": "RARE",
"name": "Rare"
},
"level": 109,
"required_level": 0,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/30377?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 30377
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "NECK",
"name": "Neck"
},
"purchase_price": 28347,
"sell_price": 7086,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/30377?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 30377
},
"quality": {
"type": "RARE",
"name": "Rare"
},
"name": "Karja's Medallion",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/30377?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 30377
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "NECK",
"name": "Neck"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"stats": [
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 15,
"display": {
"display_string": "+15 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 10,
"display": {
"display_string": "+10 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18036?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 55",
"id": 18036
},
"description": "Equip: Increases healing done by up to 55 and damage done by up to 19 for all magical spells and effects."
}
],
"sell_price": {
"value": 7086,
"display_strings": {
"header": "Sell Price:",
"gold": "0",
"silver": "70",
"copper": "86"
}
},
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/28647?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 28647,
"name": "Forest Wind Shoulderpads",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 115,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28647?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28647
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "SHOULDER",
"name": "Shoulder"
},
"purchase_price": 210614,
"sell_price": 42122,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28647?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28647
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Forest Wind Shoulderpads",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28647?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28647
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "SHOULDER",
"name": "Shoulder"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 273,
"display": {
"display_string": "273 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 22,
"display": {
"display_string": "+22 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 28,
"display": {
"display_string": "+28 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 24,
"display": {
"display_string": "+24 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18041?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 66",
"id": 18041
},
"description": "Equip: Increases healing done by up to 66 and damage done by up to 22 for all magical spells and effects."
}
],
"sell_price": {
"value": 42122,
"display_strings": {
"header": "Sell Price:",
"gold": "4",
"silver": "21",
"copper": "22"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"durability": {
"value": 70,
"display_string": "Durability 70 / 70"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/28582?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 28582,
"name": "Red Riding Hood's Cloak",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 115,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28582?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28582
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Cloth",
"id": 1
},
"inventory_type": {
"type": "CLOAK",
"name": "Back"
},
"purchase_price": 178274,
"sell_price": 35654,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28582?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28582
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Red Riding Hood's Cloak",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28582?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28582
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Cloth",
"id": 1
},
"inventory_type": {
"type": "CLOAK",
"name": "Back"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 97,
"display": {
"display_string": "97 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 16,
"display": {
"display_string": "+16 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 22,
"display": {
"display_string": "+22 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18034?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 48",
"id": 18034
},
"description": "Equip: Increases healing done by up to 48 and damage done by up to 16 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/21364?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increased Mana Regen",
"id": 21364
},
"description": "Equip: Restores 7 mana per 5 sec."
}
],
"sell_price": {
"value": 35654,
"display_strings": {
"header": "Sell Price:",
"gold": "3",
"silver": "56",
"copper": "54"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29087,
"name": "Chestguard of Malorne",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 120,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29087?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29087
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "CHEST",
"name": "Chest"
},
"purchase_price": 0,
"sell_price": 0,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29087
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Chestguard of Malorne",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29087?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29087
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "CHEST",
"name": "Chest"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 379,
"display": {
"display_string": "379 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 28,
"display": {
"display_string": "+28 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 29,
"display": {
"display_string": "+29 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 25,
"display": {
"display_string": "+25 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/33820?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 88",
"id": 33820
},
"description": "Equip: Increases healing done by up to 88 and damage done by up to 30 for all magical spells and effects."
}
],
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
},
"playable_classes": {
"links": [
{
"key": {
"href": "https://eu.api.blizzard.com/data/wow/playable-class/11?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Druid",
"id": 11
}
],
"display_string": "Classes: Druid"
}
},
"set": {
"item_set": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-set/638?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Malorne Raiment",
"id": 638
},
"items": [
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Chestguard of Malorne",
"id": 29087
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29086?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Crown of Malorne",
"id": 29086
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Handguards of Malorne",
"id": 29090
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29088?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Legguards of Malorne",
"id": 29088
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29089?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Shoulderguards of Malorne",
"id": 29089
}
}
],
"effects": [
{
"display_string": "(2) Set: Your helpful spells have a chance to restore up to 120 mana.",
"required_count": 2
},
{
"display_string": "(4) Set: Reduces the cooldown on your Nature's Swiftness ability by 24 sec.",
"required_count": 4
}
],
"display_string": "Malorne Raiment (0/5)"
},
"durability": {
"value": 120,
"display_string": "Durability 120 / 120"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29183?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29183,
"name": "Bindings of the Timewalker",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 105,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29183?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29183
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Cloth",
"id": 1
},
"inventory_type": {
"type": "WRIST",
"name": "Wrist"
},
"purchase_price": 431396,
"sell_price": 86279,
"max_count": 1,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29183?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29183
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Bindings of the Timewalker",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29183?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29183
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Cloth",
"id": 1
},
"inventory_type": {
"type": "WRIST",
"name": "Wrist"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"unique_equipped": "Unique",
"armor": {
"value": 78,
"display": {
"display_string": "78 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 24,
"display": {
"display_string": "+24 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 12,
"display": {
"display_string": "+12 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18040?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 64",
"id": 18040
},
"description": "Equip: Increases healing done by up to 64 and damage done by up to 22 for all magical spells and effects."
}
],
"sell_price": {
"value": 86279,
"display_strings": {
"header": "Sell Price:",
"gold": "8",
"silver": "62",
"copper": "79"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
},
"reputation": {
"faction": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/reputation-faction/989?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Keepers of Time",
"id": 989
},
"min_reputation_level": 7,
"display_string": "Requires Keepers of Time - Exalted"
}
},
"durability": {
"value": 35,
"display_string": "Durability 35 / 35"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29090,
"name": "Handguards of Malorne",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 120,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29090?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29090
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "HAND",
"name": "Hands"
},
"purchase_price": 0,
"sell_price": 0,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29090
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Handguards of Malorne",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29090?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29090
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "HAND",
"name": "Hands"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 237,
"display": {
"display_string": "237 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 22,
"display": {
"display_string": "+22 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 25,
"display": {
"display_string": "+25 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 24,
"display": {
"display_string": "+24 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18039?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 62",
"id": 18039
},
"description": "Equip: Increases healing done by up to 62 and damage done by up to 21 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/21628?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increased Mana Regen",
"id": 21628
},
"description": "Equip: Restores 7 mana per 5 sec."
}
],
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
},
"playable_classes": {
"links": [
{
"key": {
"href": "https://eu.api.blizzard.com/data/wow/playable-class/11?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Druid",
"id": 11
}
],
"display_string": "Classes: Druid"
}
},
"set": {
"item_set": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-set/638?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Malorne Raiment",
"id": 638
},
"items": [
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Chestguard of Malorne",
"id": 29087
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29086?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Crown of Malorne",
"id": 29086
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Handguards of Malorne",
"id": 29090
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29088?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Legguards of Malorne",
"id": 29088
}
},
{
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29089?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Shoulderguards of Malorne",
"id": 29089
}
}
],
"effects": [
{
"display_string": "(2) Set: Your helpful spells have a chance to restore up to 120 mana.",
"required_count": 2
},
{
"display_string": "(4) Set: Reduces the cooldown on your Nature's Swiftness ability by 24 sec.",
"required_count": 4
}
],
"display_string": "Malorne Raiment (0/5)"
},
"durability": {
"value": 40,
"display_string": "Durability 40 / 40"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/28398?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 28398,
"name": "The Sleeper's Cord",
"quality": {
"type": "RARE",
"name": "Rare"
},
"level": 115,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28398?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28398
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "WAIST",
"name": "Waist"
},
"purchase_price": 112202,
"sell_price": 22440,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28398?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28398
},
"quality": {
"type": "RARE",
"name": "Rare"
},
"name": "The Sleeper's Cord",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28398?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28398
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "WAIST",
"name": "Waist"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 164,
"display": {
"display_string": "164 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 18,
"display": {
"display_string": "+18 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 24,
"display": {
"display_string": "+24 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 21,
"display": {
"display_string": "+21 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/15696?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 53",
"id": 15696
},
"description": "Equip: Increases healing done by up to 53 and damage done by up to 18 for all magical spells and effects."
}
],
"sell_price": {
"value": 22440,
"display_strings": {
"header": "Sell Price:",
"gold": "2",
"silver": "24",
"copper": "40"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"durability": {
"value": 35,
"display_string": "Durability 35 / 35"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/30543?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 30543,
"name": "Pontifex Kilt",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 110,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/30543?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 30543
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Cloth",
"id": 1
},
"inventory_type": {
"type": "LEGS",
"name": "Legs"
},
"purchase_price": 234234,
"sell_price": 46846,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/30543?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 30543
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Pontifex Kilt",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/30543?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 30543
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Cloth",
"id": 1
},
"inventory_type": {
"type": "LEGS",
"name": "Legs"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 163,
"display": {
"display_string": "163 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 25,
"display": {
"display_string": "+25 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 29,
"display": {
"display_string": "+29 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 27,
"display": {
"display_string": "+27 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18041?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 66",
"id": 18041
},
"description": "Equip: Increases healing done by up to 66 and damage done by up to 22 for all magical spells and effects."
}
],
"sell_price": {
"value": 46846,
"display_strings": {
"header": "Sell Price:",
"gold": "4",
"silver": "68",
"copper": "46"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"durability": {
"value": 75,
"display_string": "Durability 75 / 75"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/28752?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 28752,
"name": "Forestlord Striders",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 115,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28752?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28752
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "FEET",
"name": "Feet"
},
"purchase_price": 220336,
"sell_price": 44067,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/28752?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28752
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Forestlord Striders",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/28752?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 28752
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Leather",
"id": 2
},
"inventory_type": {
"type": "FEET",
"name": "Feet"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"armor": {
"value": 250,
"display": {
"display_string": "250 Armor",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 24,
"display": {
"display_string": "+24 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 27,
"display": {
"display_string": "+27 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 16,
"display": {
"display_string": "+16 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18036?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 55",
"id": 18036
},
"description": "Equip: Increases healing done by up to 55 and damage done by up to 19 for all magical spells and effects."
}
],
"sell_price": {
"value": 44067,
"display_strings": {
"header": "Sell Price:",
"gold": "4",
"silver": "40",
"copper": "67"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"durability": {
"value": 60,
"display_string": "Durability 60 / 60"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29169?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29169,
"name": "Ring of Convalescence",
"quality": {
"type": "RARE",
"name": "Rare"
},
"level": 115,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29169?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29169
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "FINGER",
"name": "Finger"
},
"purchase_price": 175952,
"sell_price": 43988,
"max_count": 1,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29169?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29169
},
"quality": {
"type": "RARE",
"name": "Rare"
},
"name": "Ring of Convalescence",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29169?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29169
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "FINGER",
"name": "Finger"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"unique_equipped": "Unique",
"stats": [
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 15,
"display": {
"display_string": "+15 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18037?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 57",
"id": 18037
},
"description": "Equip: Increases healing done by up to 57 and damage done by up to 19 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/21618?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increased Mana Regen",
"id": 21618
},
"description": "Equip: Restores 4 mana per 5 sec."
}
],
"sell_price": {
"value": 43988,
"display_strings": {
"header": "Sell Price:",
"gold": "4",
"silver": "39",
"copper": "88"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
},
"reputation": {
"faction": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/reputation-faction/946?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Honor Hold",
"id": 946
},
"min_reputation_level": 6,
"display_string": "Requires Honor Hold - Revered"
}
},
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29291?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29291,
"name": "Violet Signet",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 120,
"required_level": 0,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29291?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29291
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "FINGER",
"name": "Finger"
},
"purchase_price": 0,
"sell_price": 0,
"max_count": 1,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29291?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29291
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Violet Signet",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29291?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29291
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "FINGER",
"name": "Finger"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"unique_equipped": "Unique",
"limit_category": "Unique-Equipped: Violet Signet (1)",
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 24,
"display": {
"display_string": "+24 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 22,
"display": {
"display_string": "+22 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "SPIRIT",
"name": "Spirit"
},
"value": 17,
"display": {
"display_string": "+17 Spirit",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18035?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 51",
"id": 18035
},
"description": "Equip: Increases healing done by up to 51 and damage done by up to 17 for all magical spells and effects."
}
],
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29376?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29376,
"name": "Essence of the Martyr",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 110,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29376?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29376
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "TRINKET",
"name": "Trinket"
},
"purchase_price": 0,
"sell_price": 0,
"max_count": 1,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29376?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29376
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Essence of the Martyr",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29376?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29376
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "TRINKET",
"name": "Trinket"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"unique_equipped": "Unique",
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/17320?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 84",
"id": 17320
},
"description": "Equip: Increases healing done by up to 84 and damage done by up to 28 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/35165?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Essence of the Martyr",
"id": 35165
},
"description": "Use: Increases healing done by spells by up to 297 and damage done by spells by up to 99 for 20 sec. (2 Mins Cooldown)"
}
],
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/25634?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 25634,
"name": "Oshu'gun Relic",
"quality": {
"type": "UNCOMMON",
"name": "Uncommon"
},
"level": 105,
"required_level": 0,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/25634?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 25634
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "TRINKET",
"name": "Trinket"
},
"purchase_price": 28000,
"sell_price": 7000,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/25634?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 25634
},
"quality": {
"type": "UNCOMMON",
"name": "Uncommon"
},
"name": "Oshu'gun Relic",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/25634?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 25634
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "TRINKET",
"name": "Trinket"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/15696?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 53",
"id": 15696
},
"description": "Equip: Increases healing done by up to 53 and damage done by up to 18 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/32367?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Power of Prayer",
"id": 32367
},
"description": "Use: Increases healing done by spells and effects by up to 213 and damage done by spells by up to 71 for 20 sec. (2 Mins Cooldown)"
}
],
"sell_price": {
"value": 7000,
"display_strings": {
"header": "Sell Price:",
"gold": "0",
"silver": "70",
"copper": "0"
}
},
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29175?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29175,
"name": "Gavel of Pure Light",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 100,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29175?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29175
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Weapon",
"id": 2
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/2/item-subclass/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Mace",
"id": 4
},
"inventory_type": {
"type": "WEAPONMAINHAND",
"name": "Main Hand"
},
"purchase_price": 2003650,
"sell_price": 400730,
"max_count": 1,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29175?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29175
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Gavel of Pure Light",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29175?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29175
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/2?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Weapon",
"id": 2
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/2/item-subclass/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Mace",
"id": 4
},
"inventory_type": {
"type": "WEAPONMAINHAND",
"name": "Main Hand"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"unique_equipped": "Unique",
"weapon": {
"damage": {
"min_value": 108,
"max_value": 201,
"display_string": "108 - 201 Damage",
"damage_class": {
"type": "PHYSICAL",
"name": "Physical"
}
},
"attack_speed": {
"value": 1900,
"display_string": "Speed 1.90"
},
"dps": {
"value": 81.31579,
"display_string": "(81.3 damage per second)"
}
},
"stats": [
{
"type": {
"type": "STAMINA",
"name": "Stamina"
},
"value": 12,
"display": {
"display_string": "+12 Stamina",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
},
{
"type": {
"type": "INTELLECT",
"name": "Intellect"
},
"value": 12,
"display": {
"display_string": "+12 Intellect",
"color": {
"r": 255,
"g": 255,
"b": 255,
"a": 1
}
}
}
],
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/34495?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 299",
"id": 34495
},
"description": "Equip: Increases healing done by up to 299 and damage done by up to 100 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/21630?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increased Mana Regen",
"id": 21630
},
"description": "Equip: Restores 8 mana per 5 sec."
}
],
"sell_price": {
"value": 400730,
"display_strings": {
"header": "Sell Price:",
"gold": "40",
"silver": "7",
"copper": "30"
}
},
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
},
"reputation": {
"faction": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/reputation-faction/935?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "The Sha'tar",
"id": 935
},
"min_reputation_level": 7,
"display_string": "Requires The Sha'tar - Exalted"
}
},
"durability": {
"value": 105,
"display_string": "Durability 105 / 105"
}
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/29274?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 29274,
"name": "Tears of Heaven",
"quality": {
"type": "EPIC",
"name": "Epic"
},
"level": 110,
"required_level": 70,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29274?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29274
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "HOLDABLE",
"name": "Held In Off-hand"
},
"purchase_price": 0,
"sell_price": 0,
"max_count": 0,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/29274?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29274
},
"quality": {
"type": "EPIC",
"name": "Epic"
},
"name": "Tears of Heaven",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/29274?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 29274
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Miscellaneous",
"id": 0
},
"inventory_type": {
"type": "HOLDABLE",
"name": "Held In Off-hand"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18045?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increase Healing 75",
"id": 18045
},
"description": "Equip: Increases healing done by up to 75 and damage done by up to 25 for all magical spells and effects."
},
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/18379?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increased Mana Regen",
"id": 18379
},
"description": "Equip: Restores 6 mana per 5 sec."
}
],
"requirements": {
"level": {
"value": 70,
"display_string": "Requires Level 70"
}
},
"is_subclass_hidden": true
},
"purchase_quantity": 1
},
{
"_links": {
"self": {
"href": "https://eu.api.blizzard.com/data/wow/item/27886?namespace=static-2.5.5_65000-classicann-eu"
}
},
"id": 27886,
"name": "Idol of the Emerald Queen",
"quality": {
"type": "RARE",
"name": "Rare"
},
"level": 112,
"required_level": 68,
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/27886?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 27886
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/8?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Idol",
"id": 8
},
"inventory_type": {
"type": "RELIC",
"name": "Relic"
},
"purchase_price": 128088,
"sell_price": 25617,
"max_count": 1,
"is_equippable": true,
"is_stackable": false,
"preview_item": {
"item": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item/27886?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 27886
},
"quality": {
"type": "RARE",
"name": "Rare"
},
"name": "Idol of the Emerald Queen",
"media": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/media/item/27886?namespace=static-2.5.5_65000-classicann-eu"
},
"id": 27886
},
"item_class": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Armor",
"id": 4
},
"item_subclass": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/8?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Idol",
"id": 8
},
"inventory_type": {
"type": "RELIC",
"name": "Relic"
},
"binding": {
"type": "ON_ACQUIRE",
"name": "Binds when picked up"
},
"unique_equipped": "Unique",
"spells": [
{
"spell": {
"key": {
"href": "https://eu.api.blizzard.com/data/wow/spell/34246?namespace=static-2.5.5_65000-classicann-eu"
},
"name": "Increased Lifebloom Periodic",
"id": 34246
},
"description": "Equip: Increases the periodic healing of your Lifebloom by up to 88."
}
],
"sell_price": {
"value": 25617,
"display_strings": {
"header": "Sell Price:",
"gold": "2",
"silver": "56",
"copper": "17"
}
},
"requirements": {
"level": {
"value": 68,
"display_string": "Requires Level 68"
}
}
},
"purchase_quantity": 1
}
]
import fs from 'node:fs/promises'
import 'dotenv/config'
import 'temporal-polyfill/global'
const FILENAME = './.token.json'
export async function getOAuthToken() {
const tokenFromDisk = await getOAuthTokenFromDisk()
if (tokenFromDisk !== null) {
console.log('Using cached OAuth token')
return tokenFromDisk.access_token
}
console.log('Fetching new OAuth token')
const dataFromNetwork = await getOAuthTokenFromNetwork()
dataFromNetwork.generated_on = Temporal.Now.zonedDateTimeISO().toString()
await fs.writeFile(FILENAME, JSON.stringify(dataFromNetwork, null, 2))
return dataFromNetwork.access_token
}
async function getOAuthTokenFromNetwork() {
const OAUTH_TOKEN_URL = 'https://oauth.battle.net/token'
const base64Credentials = Buffer.from(
process.env.CLIENT_ID + ':' + process.env.CLIENT_SECRET,
).toString('base64')
const headers = {
Authorization: `Basic ${base64Credentials}`,
'Content-Type': 'application/x-www-form-urlencoded',
}
const body = 'grant_type=client_credentials'
const response = await fetch(OAUTH_TOKEN_URL, {
method: 'POST',
headers,
body,
})
const data = await response.json()
if (typeof data.access_token !== 'string' || data.access_token.length === 0)
throw new Error("Didn't get Access Token!")
return data
}
async function getOAuthTokenFromDisk() {
const FILENAME = './.token.json'
const { default: data } = await import(FILENAME, { with: { type: 'json' } })
const now = Temporal.Now.zonedDateTimeISO()
const generated_on = Temporal.ZonedDateTime.from(data.generated_on)
const expires_in = Temporal.Duration.from({ seconds: data.expires_in })
const expires_on = generated_on.add(expires_in)
// -1 = `expires_on` comes before `now`
// 0 = `expires_on` is the same as `now`
// 1 = `expires_on` comes after `now`
if (Temporal.ZonedDateTime.compare(expires_on, now) !== 1) return null
return data
}
main().catch(console.error)
async function main() {
const FILENAME = './items-dassz.json'
const { default: items } = await import(FILENAME, { with: { type: 'json' } })
const stats = getTotalStats({ items })
console.log(stats)
}
function getTotalStats({ items }) {
const stats = {}
const spells = []
items.forEach((item) => {
// console.log(item.preview_item.name)
// Collect stats, sum on-the-go
if (!item.preview_item.stats) return
item.preview_item.stats.forEach((stat) => {
if (!stats[stat.type.name]) {
stats[stat.type.name] = 0
}
stats[stat.type.name] += stat.value
})
// Collect spells
if (!item.preview_item.spells) return
item.preview_item.spells.forEach((spell) => {
spells.push(spell)
})
})
// Sum spells
// todo: have a db of all spells, pick the numbers from there
spells.forEach((spell) => {
if (/Increase Healing \d+/.test(spell.spell.name)) {
if (!stats['Increase Healing']) stats['Increase Healing'] = 0
stats['Increase Healing'] += Number(spell.spell.name.match(/\d+/)[0])
}
if (/Increased Mana Regen/.test(spell.spell.name)) {
if (!stats['Increased Mana Regen']) stats['Increased Mana Regen'] = 0
const mp5 = Number(spell.description.match(/(\d+) mana per 5 sec/)[1])
stats['Increased Mana Regen'] += mp5
}
})
return stats
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment