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

Best Answer

  • 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)

Answers