D3 season game data API has faulty data


#1

Specifically, the “hardcore” boolean in the API response is faulty, and essentially useless. For example:

{
    "_links" => {
        "self" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1?namespace=2-6-us"
        }
    }, "leaderboard" => [{
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/achievement-points?namespace=2-6-US"
        }
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-barbarian?namespace=2-6-US"
        },
        "hardcore" => true,
        "hero_class_string" => "barbarian"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-barbarian?namespace=2-6-US"
        },
        "hardcore" => true,
        "hero_class_string" => "barbarian"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-crusader?namespace=2-6-US"
        },
        "hero_class_string" => "crusader"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-crusader?namespace=2-6-US"
        },
        "hero_class_string" => "crusader"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-dh?namespace=2-6-US"
        },
        "hardcore" => true,
        "hero_class_string" => "dh"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-dh?namespace=2-6-US"
        },
        "hardcore" => true,
        "hero_class_string" => "dh"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-monk?namespace=2-6-US"
        },
        "hero_class_string" => "monk"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-monk?namespace=2-6-US"
        },
        "hero_class_string" => "monk"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-wd?namespace=2-6-US"
        },
        "hero_class_string" => "wd"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-wd?namespace=2-6-US"
        },
        "hero_class_string" => "wd"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-wizard?namespace=2-6-US"
        },
        "hero_class_string" => "wizard"
    }, {
        "team_size" => 1,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-wizard?namespace=2-6-US"
        },
        "hero_class_string" => "wizard"
    }, {
        "team_size" => 2,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-team-2?namespace=2-6-US"
        }
    }, {
        "team_size" => 2,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-team-2?namespace=2-6-US"
        }
    }, {
        "team_size" => 3,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-team-3?namespace=2-6-US"
        }
    }, {
        "team_size" => 3,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-team-3?namespace=2-6-US"
        }
    }, {
        "team_size" => 4,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-hardcore-team-4?namespace=2-6-US"
        }
    }, {
        "team_size" => 4,
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/rift-team-4?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987244086883?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987244591442?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987244621930?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987245615154?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987247614578?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987248572516?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987250309038?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987253109310?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987259282080?namespace=2-6-US"
        }
    }, {
        "ladder" => {
            "href" => "https://us.api.blizzard.com/data/d3/season/1/leaderboard/74987259617458?namespace=2-6-US"
        }
    }],
    "season_id" => 1,
    "last_update_time" => "Sat, 10 Aug 2019 07:25:00 UTC",
    "generated_by" => "LAX1A-D3-PURPLE-JOB001-01 2.6.5 branches/2_6_5-branches/2_6_5"
}

You will notice that the portion of the hash with the URL for “rift-hardcore-barbarian” has the hardcore boolean set to true (this is correct). You will then notice that the next hash with the URL for “rift-barbarian” (this is SC) ALSO has the hardcore boolean set to true. The same scenario occurs with DH. Simple solution is to simply check if the URL contains the phrase “hardcore”, but it would be nice if the hardcore boolean in the API response was actually useful :slight_smile: