Hi I have been able to navigate a bit using a lot of your articles but reconstructing the expired rics is tricky without examples
Below was my attempt which was sucessful for recent expiry dates but not historical.
index_ric = '.NSEI'
options_contracts = rd.discovery.search(view = rd.discovery.Views.EQUITY_QUOTES,top = 10000,filter = f"( SearchAllCategoryv2 eq 'Options' and ((UnderlyingQuoteRIC eq '{index_ric}') and (StrikePrice ge 2 and StrikePrice le 85000)))",select = "DTSubjectName,AssetState,BusinessEntity,PI,SearchAllCategoryv3,SearchAllCategoryv2,SearchAllCategory,ExchangeName,CallPutOption,StrikePrice,ExpiryDate,RIC,UnderlyingQuoteRIC,UnderlyingIssuerName,UnderlyingRCSAssetCategoryLeaf")options_contracts
RIC = options_contracts.loc[0,'RIC']start =(pd.to_datetime(options_contracts.loc[0,'ExpiryDate']) - pd.DateOffset(months =3)).strftime(format='%Y-%m-%d')end = options_contracts.loc[0,'ExpiryDate'].strftime(format='%Y-%d-%m')print(start,end)vals = rdp.get_historical_price_summaries(RIC, start = start, end = end, interval = rdp.Intervals.DAILY)# fields = ['BID','ASK','TRDPRC_1', 'IMP_VOLT', 'OPINT_1','OPEN_PRC',])vals