How to get historical balance of a Bitcoin address at a particular block number or date? I would like to get the balance of a Bitcoin address at a particular block number or date. 

Is there any way to retrieve this data from JSON-RPC? Alternatively, is there any API or blockchain analytics service that provides this? Thanks.
Account/address balance are higher level constructs that are built on Bitcoin's low-level transaction scripting language and cryptography. As such, data related to funds 'belonging' to a particular address is not readily available in the blockchain, but has to be built separately by scanning the entire database. The Bitcoin-Core reference client does not even support showing 'balances' of address that are not part of your wallet, let alone providing you the data related to a particular address at a particular point in time. You would either have to do this yourself or search for third-party data providers who provide this kind of information through an API (that is off-topic on this forum).