BG Know-How

“Welcome to my tavern, friends. Enjoy your stay!”

BG JSON


This page is providing curated and condensed Hearthstone Battlegrounds data in different data collections and file types.
Feel free to use this as a starting point for your own projects and content creation (code examples below).

These datasets have several advantages over the data available from the Blizzard API or the Hearthstone JSON files:
For example nameShort attaches the short name the community uses to reference the entity (e.g. 'Eliza' instead of 'Admiral Eliza Goreblade'), pictureSmall references a webp version up to ten times smaller than the original image, while websites includes an array of links to the entity representation on the biggest HS community hubs. For minions, abilities includes an array of boolean key/value pairs, indicating keywords like Battlecry or Taunt, and for heroes the armor values for low and high MMR as well as the picturePortrait are part of the data collection.

At least every 4 hours fresh files will be generated from the database. Official updates and hotfixes will be integrated as soon as possible.
If you have any suggestion for additional properties that could/should be implemented, just drop me a message.



JSON format (active only)
Active Battlegrounds Entities
Active Heroes Active Minions Active Buddies Active Spells
Last update: June 30, 2024 00:00:04

JSON format (all)
All Battlegrounds Entities
All Heroes All Minions All Buddies All Quests All Rewards All Anomalies All Spells
Last update: June 30, 2024 00:00:04

CSV format (active only)
Active Heroes Active Minions Active Buddies Active Spells
Last update: June 30, 2024 00:00:04

CSV format (all)
All Heroes All Minions All Buddies All Quests All Rewards All Anomalies All Spells
Last update: June 30, 2024 00:00:04

Latest Changes:




Code Example (PHP):


        // read the file and convert
        $tempMinions = json_decode(file_get_contents('https://bgknowhow.com/bgjson/output/bg_minions_all.json'));

        // build final array
        foreach ($tempMinions->data as $key => $object) {
            // only get non-token tier1 minions (optional)
            if ($object->tier === 1 && $object->isToken === false) {
            $minions[] = $object;
        }

        // check the result
        var_dump($minions);
    

Code Example (Python via URL with requests module):


        import requests, json

        # read the file and convert
        response = requests.get('https://bgknowhow.com/bgjson/output/bg_minions_all.json').text
        tempMinions = json.loads(response)['data']

        # build final array
        minions = []
        for minion in tempMinions:
          # only get non-token tier1 minions (optional)
          if minion['tier'] == 1 and minion['isToken'] == False:
            minions.append(minion);

        # check the result
        print(json.dumps(minions, indent=4))
    

Code Example (JS via URL):


        async function readJSON() {
            const requestURL = 'https://bgknowhow.com/bgjson/output/bg_minions_all.json';
            const request = new Request(requestURL);

            const response = await fetch(request);
            const minions = await response.json();

            // check the result
            console.table(minions.data);

            return minions.data;
        }

        // usage
        let minions = readJSON();
    

Code Example (JS via local file):


        function readTextFile(file, callback) {
            let rawFile = new XMLHttpRequest();
            rawFile.overrideMimeType("application/json");
            rawFile.open('GET', file, true);
            rawFile.onreadystatechange = function() {
                if (rawFile.readyState === 4 && rawFile.status === 200) {
                    callback(rawFile.responseText);
                }
            }
            rawFile.send(null);
        }

        // usage
        readTextFile('bg_minions_all.json', function(text) {
            let minions = JSON.parse(text.data);

            // check the result
            console.table(minions);
        });