How can one extract an address balance at a specific height?
This is relatively hard to achieve, because if you wish to allow querying any address at any height you deal with a LOT of data. You probably would need serve database server (cluster).

I'm pretty sure, getting a balance at a specific height from a specific address is not possible over a existing app or API.

You could try built it yourself with bitcoin-core as basis.
Maybe have a look at the >1year old address index patch from Johnathan Corgan. But it would required additional to allow a API where you could define the height.

But caching every address at every possible height (Juli 29 2015: 367456, amount of addresses ~250k) is nearly impossible.