Reliable way to get RIC code from ISIN through any API

Hi all,


I need to retrieve some information on various asset of different asset classes (Fx, Indexes, ...)

I have ISIN, CUSIP and SEDOL information for each asset, and i can get basically any information, except RIC code.


Here is what I tried, to get for exemple the RIC of isin : IE00B4L5Y983, which is an ETF

df = rd.discovery.search(
        view = rd.discovery.Views.SEARCH_ALL,
        filter="ISIN eq 'US4592001014'",
        select = "BusinessEntity,DocumentTitle,RIC,RicRoot",
        top = 100)


it returns and empty dataframe.

I also tried using other codes like cusip or sedol but same, no results.

I also tried doing a general search, but the results are unreliable

response = rd.content.search.Definition("IE00B4L5Y983").get_data()
response.data.df


I am aware that RIC code isn't unique to an asset, but i'm trying to get any valid RIC code for a given ISIN, if possible the main RIC code.


I don't think that it is possible that there is 0 way of doing this, there has to be a map from ISIN to main RIC for all asset classes, but I haven't found it yet.


For testing, here is another exemple that doesnt have a ISIN => RIC bridge. Isin : EU0009652759 (eur/usd fx pair)

I'm really looking for any reliable way to get RIC code from non-refintiv data.

Thanks for your help.

Best Answer

  • nick.zincone
    Answer ✓

    Hi @adam.leroux

    Have you tried the symbol conversion interface? For example:

    import refinitiv.data as rd
    from refinitiv.data.content import symbol_conversion

    ...

    response = symbol_conversion.Definition("US4592001014").get_data()
    response.data.df

    1714767711606.png

    The symbol conversion API will make an attempt to detect the type of symbol provided. However, you may need to be explicit as with the symbol: 'IE00B4L5Y983'. For example:

    response = symbol_conversion.Definition("IE00B4L5Y983",
    from_symbol_type=symbol_conversion.SymbolTypes.ISIN).get_data()

    1714768492572.png

    However, when I tried the ISIN: 'EU0009652759', it wasn't recognized. Because the moderators of this site are not content experts, its difficult to determine what is specific about this instrument. You can contact the Helpdesk and they should be able to bring in a content expert to explain the specifics around this instrument.

Answers

  • Hi !


    Yes i've tried using this method but its very unreliable as to which ISINs return a non empty dataframe.


    Around 1/2 of ISINs are just not recognized using this, for some unknown reason.

    This is why i'm trying to see if there is a more reliable way to do this.


    Thanks

  • Hi @adam.leroux

    If you contact the Helpdesk and provide examples where it works and does not, there may be a legitimate reason why this is the case. It might be possible to utilize the Search APIs to account the reasons which could allow a more consistent and reliable approach to pull down the mappings.