I've been experimenting with the API you are offering at /api/external.php. I've got my secretApiKey and also a response from getMapData, but the json I recieved is in wrong format. Half of the values that are specified in json model from here and should be an integer type are a string. That isn't a huge problem, but what is, is that map.cells.kingdomId is integer when it's 0 and a string when it's not a zero.
Should I solve this inconsistency on my side or will you be able to fix theese issues.
The getMapData documentation is kind of outdated. I'm not entirely sure what the changes were, but I think the alliances part is missing completely (because there are no more alliances). player.allianceId isn't filled aswell. But I think that's all. For the kingdomId part I have nothing clever to say, sorry - but I'm sure you should fix it yourself instead of waiting from a fix.