Possible ArduinoJson bug on ESP8266?
The issue was caused because of: https://en.wikipedia.org/wiki/Chunked_transfer_encoding

Was not obvious as the data printed to the serial looked completely fine. Fixed with the below code:

client.print(
  String("GET ") + url + " HTTP/1.0\r\n" +
  "Host: " + host + "\r\n" + 
  "Connection: close\r\n\r\n"
);


Dunno why it worked for one API but not the other though.