Upgrade from Eikon -> Workspace. Learn about programming differences.

For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
3 0 0 3

Eikon API - Adding ISIN number of entities in output

Hi, I'm trying to add the ISIN number to my current search but not sure how to do it.

Below is my current code which is gathering weekly news headlines from the free text search.

1716196657737.png Any help would be great thanks.

#technologypython apinewsrefinitiv-data-librariesisin
1716196657737.png (25.6 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
Accepted
15.3k 32 5 10

Hi @s.tank ,

It could be done by managing the dataframe, you may store the news headline in another column and assign the RICs you have got into the list, then use get_data function to retrieve LEI and Company Common name

rd.get_data(['VOD.L','HD.N'],['TR.LegalEntityIdentifier','TR.CommonName'])

1716868490868.png



1716868490868.png (11.2 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
10.8k 21 6 9

@s.tank So tone way to do this in Eikon is to get the news metadata that is contained in the News Story - which includes a list q_codes which include PermIDs related to the news. You can then get the P:xxx codes per news item and use that to find the company. When you say ISIN - you are not referring to the same thing as ISINs are instrument specific, not entity specific - ie one company can have many ISINs attached to it, eg equity issues, bonds etc - so you need to be careful here. Here is an example of how to do that for each story in your headline dataframe - see the return frame below:

1716200820979.png

So here we will add 5 new columns to the headlines dataframe to store a) the storyText itself b) the topic codes (which include any PermID entity) c) the PermIDs extracted from the q_codes d) the RICs of the PermIDs e) the urgency of the news. To access the news metadata we need to use a content layer definition. See below:


# For each news headline get story text and topic codes

baseurl = "/data/news/v1/stories/"
fullcodelist = pd.DataFrame()
compNews['storyText'] = str()
compNews['q_codes'] = str()
compNews['pIDs_mentioned'] = str()
compNews['RICs_mentioned'] = str()
compNews['urgency'] = str()

for i, uri in enumerate(compNews['storyId']):
    request_definition = rd.delivery.endpoint_request.Definition(
        url = baseurl + uri,
        method = rd.delivery.endpoint_request.RequestMethod.GET
    )
    response = request_definition.get_data()
    time.sleep(0.1)
    rawr = response.data.raw
    if 'newsItem' in rawr.keys():
        compNews['storyText'][i] = rawr['newsItem']['contentSet']['inlineData']['$']
        topics = rawr['newsItem']['contentMeta']['subject']
        rics = [x for x in rawr['newsItem']['assert'] if x['_qcode'].startswith("R:")]
        compNews['q_codes'][i] = [d['_qcode'] for d in topics]
        compNews['pIDs_mentioned'][i] = [x for x in compNews['q_codes'][i] if x.startswith("P:")]
        compNews['RICs_mentioned'][i] = [d['_qcode'] for d in rics] 
        compNews['urgency'] = rawr['newsItem']['contentMeta']['urgency']['$'] # 1 = hot, 3 = regular
            
compNews

So the following columns are added which contain the PermID and the RIC for the company.

1716202322279.png


One thing to note is that it take 1 API call for each news story - so be careful how many you do as you only have 10K API calls per day in total. I hope this can help.


1716200820979.png (117.6 KiB)
1716202322279.png (64.1 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi Jason

Thanks for the detailed response. I've just realised that I need the LEI not he ISIN number. Also, is there a way to get the company's name and the headline in separate columns?

Thanks

Sonny

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.