I was able to snap real-time option chains using ek.get_data (with the chain rics and defined fields), is there any way for me to get the same info as of EOD in the past?
The answer may depend on which options you're retrieving. Here's an example of retrieving the timeseries of bid/ask prices and bid/ask implied volatilities for a US stock option between two specific dates.
ek.get_data('FITBE171902700.U', ['TR.BIDPRICE','TR.ASKPRICE', 'TR.IMPLIEDVOLATILITYOFBIDPRICE', 'TR.IMPLIEDVOLATILITYOFASKPRICE'], {'SDate':'20190415', 'EDate':'20190501'})