question

Upvotes
Accepted
1 0 0 0

Not able to retrieve correct dates from historical-pricing API via rdp.Endpoint

Hi

I am trying to pull historical prices directly from API in codebook, but instead of given dates I am only receiving last 20 prices. I am aware of existence of rdp.get_historical_price_summaries('') but this way I am not able to retrieve defaultPricingField which is available in API response and which I need too for further data processing. Could you help with setting interval and start/end parameters correctly so that it returns correct data?


import refinitiv.dataplatform as rdp
session = rdp.open_desktop_session('DEFAULT_CODE_BOOK_APP_KEY')

endpoint = rdp.Endpoint(session, 'https://api.refinitiv.com/data/historical-pricing/v1/views/interday-summaries/VOD.L?interval=P1W&start=2020-05-13&end=2021-05-13')
response = endpoint.send_request('GET)
response.data.raw[0]['data']



@marcin.bunkowski

pythonrdp-apirefinitiv-data-platformcodebookprice-history
icon clock
10 |1500

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

1 Answer

Upvote
Accepted
1.4k 6 2 2

Hi @katarzyna.olenycz,


Looking through the Refinitiv Developer's Q&A site, I found this answer which helped me in writing the bellow code. Please do let me know if it outputs satisfactory results answering your question - it returns data in the date range you requested:


import pandas as pd
import refinitiv.dataplatform as rdp
rdpsession = rdp.open_desktop_session('DEFAULT_CODE_BOOK_APP_KEY')
endpoint = rdp.Endpoint(session = rdpsession,
                        url = 'https://api.refinitiv.com/data/historical-pricing/v1/views/interday-summaries/VOD.L?interval=P1W&start=2020-05-13&end=2021-05-13')
response2 = endpoint.send_request(
    method = rdp.Endpoint.RequestMethod.GET,
    query_parameters = {
        'start': '2020-05-13T00:00:00.000000000Z',
        'end': '2021-05-13T00:00:00.000000000Z'})
if response2.is_success:
    headers = [h['name'] for h in response.data.raw[0]['headers']]
    df2 = pd.DataFrame(data = response2.data.raw[0]['data'], columns = headers)
display(df2)

icon clock
10 |1500

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

N.B.: I was able to reproduce the issue brought forward with the following code:


import pandas as pd
import refinitiv.dataplatform as rdp
rdpsession = rdp.open_desktop_session('DEFAULT_CODE_BOOK_APP_KEY')
endpoint = rdp.Endpoint(session = rdpsession,
                        url = 'https://api.refinitiv.com/data/historical-pricing/v1/views/interday-summaries/VOD.L?interval=P1W&start=2020-05-13&end=2021-05-13')
response1 = endpoint.send_request('GET')
if response1.is_success:
    headers = [h['name'] for h in response1.data.raw[0]['headers']]
    df1 = pd.DataFrame(data = response1.data.raw[0]['data'], columns = headers)
display(df1)

Hi Jonathan

This works perfectly, thank you!

Click below to post an Idea Post Idea