DSS API using Python to extract price history is giving error message.

{"error":{"message":"Malformed request payload: For the property name \"StartDate\" in the JSON request the value could not be parsed successfully. Please check the casing or spelling of the property."}}


Extraction request below:

from collections import OrderedDict import requests import json url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ExtractWithNotes" header3 = { 'Prefer': 'respond-async', 'Content-Type': 'application/json; odata=minimalmetadata', 'Authorization': 'Token'+'MyToken' }listIdentifiers = [{"Identifier":"SARON.S","IdentifierType":"Ric"}] fromdate = "2023-03-05" todate = "2023-03-09" odataType = "#DataScope.Select.Api.Extractions.ExtractionRequests.PriceHistoryExtractionRequest" condition = {"StartDate": fromdate + "T00:00:00.000Z","EndDate": todate + "T00:00:00.000Z"} listFields = ["Trade Date","Currency Code","Universal Close Price"] payload = {"ExtractionRequest":OrderedDict([("@odata.type", odataType),("ContentFieldNames", listFields),("IdentifierList", OrderedDict([("@odata.type", "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList"),("InstrumentIdentifiers", listIdentifiers)])),("Condition",condition)])} response = requests.post(url, data=json.dumps(payload), headers=header3, timeout=15) print(response.text)

Best Answer

  • jason.ramchandani01
    Answer ✓

    @bopanna.nc Thanks for your question - could you try changing the following from:

    condition = {"StartDate": fromdate + "T00:00:00.000Z","EndDate": todate + "T00:00:00.000Z"}

    to:

    condition = {"QueryStartDate": fromdate + "T00:00:00.000Z","QueryEndDate": todate + "T00:00:00.000Z"}

    I took this from the following example which had the JSON request as follows:

    '''
    {
      "ExtractionRequest": {
        "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.PriceHistoryExtractionRequest",
        "ContentFieldNames": [
          "File Code",
          "RIC",
          "Trade Date",
          "Last Trade Price"
          "Universal Close Price"
          "Alternate Close Price",
          "High Price"
          "Low Price",
          "Open Price",
          "Volume Weighted Average Price",
          "Turnover",
          "Volume",
          "Accumulated Volume Unscaled",
          "Bid Price",
          "Asset Type",
          "Quote ID",
          "Bid Yield",
          "Exchange Code",
          "Currency Code"          
        ],
        "IdentifierList": {
          "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",  
          "InstrumentIdentifiers": [
          { "Identifier": "438516AC0", "IdentifierType": "Cusip" },
          { "Identifier": "ALVG.DE", "IdentifierType": "Ric" },
          { "Identifier": "IBM.N", "IdentifierType": "Ric" }
          ]
        },
        "Condition": {
          "AdjustedPrices": true,
          "QueryStartDate": "2006-05-24T00:00:00.000Z",
          "QueryEndDate": "2006-05-31T00:00:00.000Z"
        }
      }
    }
    '''

    I hope this can help.

Answers