I’m building an ETF holdings pipeline. Provider files list constituents primarily by SEDOL. I need to resolve these SEDOLs to pricing RICs (and also capture ISIN/CUSIP). I’m using the Python Eikon/Workspace API.
What works / what doesn’t
- In Workspace (desktop), if I search by SEDOL I can see the security and its RIC.
- In Python, calling
get_symbology returns RIC = NaN for many of the same SEDOLs. Because I have 1,000+ symbols, manual lookup isn’t feasible.
Sample Code I am Using:
import pandas as pd
import eikon as ek # Workspace/Eikon Python
for k, sedol in enumerate(df1['fld_sedol']):
tempDF = ek.get_symbology(sedol, from_symbol_type='SEDOL', to_symbol_type='RIC')
if 'RIC' in tempDF.columns and not pd.isna(tempDF['RIC'][0]):
tempRIC = tempDF['RIC'][0]
idenDF = ek.get_symbology(tempRIC) # expand to CUSIP/ISIN
if {'CUSIP','ISIN','RIC'}.issubset(idenDF.columns):
df1.loc[k,'fld_cusip'] = idenDF['CUSIP'][0]
df1.loc[k,'fld_isin'] = idenDF['ISIN'][0]
df1.loc[k,'fld_ric'] = idenDF['RIC'][0]
else:
print(f"SEDOL {sedol} → RIC = NaN")
Highlighted is sample record for which, we unable to get RIC via API.
But the same sedol has RIC in workstation: