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']
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)
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)