Get "related instruments" using the refintiv.data API

Hi all,


I'm looking into using the refintiv.data python API to calculate benchmarks for bonds.

Right now the process is very manual and not scalable, I'm searching the bond in the workspace and looking at the "Related Instruments" tab, then creating my query and looking at the results. (see screenshot)

1725460916594.png

I would like to use the python API to access these results, so i can automate this process for thousands of bonds, but i cannot find the api endpoint online, or any information on if this is possible.


Ideally there would be a query i can construct where i can give a RIC, and the filters and receive the table as displayed in the screenshot.


Is this something that's possible ?


Thanks for your help.


Adam


Answers

  • Hi @adam.leroux ,

    I believe this is a prime question for the Search API. Would you mind letting me know if it fits your need?

  • Hi,

    Thanks for your answer,


    I've used the Searchbrowser object before, but there is not mention of a "related instruments" property when search up bonds with this.


    I do find a "BenchmarkID" and "PricingBenchmarkID"n with values = 0x000386007dacd084 but not sure what do with that, if I try to search that Id i got no results.

  • Hi @adam.leroux, What is the `Searchbrowser`? I was referring to the Search API in the LSEG Data Library for Python. As an example, you could use something like this:

    # pip install lseg.data
    import lseg.data as ld
    ld.open_session() # Need the Workspace Desktop App open on the same machine where this code runs
    df0 = ld.discovery.search(
    view = ld.discovery.Views.FIXED_INCOME_INSTRUMENTS,
    query = 'CPI PROPERTY GROUP SA')


    I would suggest using `SearchPropertyExplorer` to find the properties with which to filter:


    props = ld.discovery.SearchPropertyExplorer.get_properties_for(
        view = ld.discovery.Views.FIXED_INCOME_INSTRUMENTS,
        query="CPI PROPERTY GROUP SA")
  • You can find the properties you are after with the `get_by_name` function:


    props.get_by_name("country").df # try all your filters, e.g.: `country`, `coupon`, `curr`, `Issuer`, `grade`...


    You can put it all together in something like:


    df1 = ld.discovery.search(
        view = ld.discovery.Views.SEARCH_ALL, # ld.discovery.Views.FIXED_INCOME_INSTRUMENTS
        query = 'CPI PROPERTY GROUP SA',
        filter="CurrentCouponClassDescription eq 'Fixed Coupon'", # RCSParentDomicileLeaf eq 'Luxembourg' and RCSBondGradeLeaf eq 'High Yield'
        select="IssuerCommonName, BusinessEntity, DocumentTitle, PermID, PI, RIC, RCSParentDomicileLeaf, CurrentCouponClassDescription, RCSBondGradeLeaf",
        top=100)
    df1


    You will need to look through the properties and find the ones you are most happy with, using the Search API article.

  • Here is a screenshot of some of the 1st code cell results:


    1726141841500.png


  • Here is a screenshot of some of the 2nd set of code cell results:

    1726141892956.png

  • Here is a screenshot of some of the 3rd set of code cell results:

    1726141921860.png