"message": "Malformed request payload: Syntax error at Line 1, Char 1: expected valid json array or

I'm making an http request to the api using the below details but I'm getting the 400 error with the above message.

URI: https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ExtractWithNotes

Headers:

{
"Accept": "application/json; odata.metadata=minimal",
"Authorization": "Token xxxxx",
"Content-Type": "application/json; odata=minimalmetadata; charset=utf-8"
}


Body:

{
"ExtractionRequest": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.IntradayPricingExtractionRequest",
"ContentFieldNames": [
"RIC",
"Ask Price",
"Asset Type",
"Bid Price",
"Currency Code",
"Exchange Code",
"High Price",
"Instrument ID",
"Instrument ID Type",
"Low Price",
"Open Price",
"Previous Close Date",
"Previous Close Price",
"Security Description",
"Settlement Price",
"Trade Date",
"User Defined Identifier",
"Volume"
],
"IdentifierList": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
"InstrumentIdentifiers": [
{
"Identifier": "438516AC0",
"IdentifierType": "Cusip"
},
{
"Identifier": "IBM.N",
"IdentifierType": "Ric"
},
{
"Identifier": "JPYUSD=R",
"IdentifierType": "Ric"
},
{
"Identifier": "USDAUD=R",
"IdentifierType": "Ric"
},
{
"Identifier": "EURGBP=R",
"IdentifierType": "Ric"
},
{
"Identifier": "EURZAR=R",
"IdentifierType": "Ric"
},
{
"Identifier": "ZARUSD=R",
"IdentifierType": "Ric"
},
{
"Identifier": "USDZAR=R",
"IdentifierType": "Ric"
}

]
},
"Condition": { "ScalableCurrency": true }
}
}


Response:

{
"error": {
"message": "Malformed request payload: Syntax error at Line 1, Char 1: expected valid json array or json object "
}
}

Best Answer

Answers

  • Hello @Huggins Mafigu,

    There must be some other error in your code. I am able to use the exact request JSON message for the IntradayPricingExtractionRequest and successfully able to get the results.


    {
    "@odata.context": "https://selectapi.datascope.refinitiv.com/RestApi/v1/$metadata#DataScope.Select.Api.Extractions.ExtractionRequests.ExtractionResult",
    "Contents": [{
    "IdentifierType": "Cusip",
    "Identifier": "438516AC0",
    "RIC": null,
    "Ask Price": null,
    "Asset Type": "CORP",
    "Bid Price": null,
    .
    .
    .
    "Previous Close Date": "2024-06-17",
    "Previous Close Price": 0.05476,
    "Security Description": "South African Rand/US Dollar FX Cross Rate",
    "Settlement Price": null,
    "Trade Date": "2024-06-18",
    "Volume": 74067
    }, {
    "IdentifierType": "Ric",
    "Identifier": "USDZAR=R",
    "Error": "Not found"
    }
    ],
    "Notes": [***]
    }
  • @Gurpreet - I can get a successful request when I run this on Postman, but it's not giving the same results when I run this using a different platform. For example when I run this on Azure Logic App http request.


    See below:


    1718742399078.png1718742598711.png


  • Hi @Huggins Mafigu,

    I am not familiar with Azure Logic Apps, but there must certainly be something that is not correct in the request message. Are you sure the keyword json() has to encapsulate the POST data in the body?

  • @Jirapongse - thank you. I managed to add two steps before my HTTP request, that is, Initialize variable and Parse JSON.


    Thank you for your assistance.