For a deeper look into our DataScope Select REST API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
1 0 0 1

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

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 "
  }
}
#technologydatascope-selectrefinitiv-real-timedatascope-select-plus
icon clock
10 |1500

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

Upvotes
23.3k 60 15 21

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": [***]
}
icon clock
10 |1500

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

Upvotes
1 0 0 1

@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



1718742399078.png (21.6 KiB)
1718742598711.png (9.0 KiB)
icon clock
10 |1500

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

Upvotes
23.3k 60 15 21

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?

icon clock
10 |1500

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

Upvotes
81.6k 269 53 77

@Huggins Mafigu

I checked and found that It is a quite tricky to use DSS REST API on Azure Logic App.

First, the Azure Logic App can re-order the keys in the JSON body which causes the issue on DSS. Therefore, DSS will reject the request. The workaround is using a string variable that contains the JSON string.

1718770815035.png

Then, use this string variable in the HTTP action.

1718770870843.png

I found this solution on this page.

However, the default size of the variable is 1024 bytes so you may need to increase this default value (Runtime.Backend.VariableOperation.MaximumStatelessVariableSize). Please check the following links to change this value.

You need to change this value in host.json file.

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
    "version": "[1.*, 2.0.0)"
  },
  "extensions": {
      "workflow": {
         "settings": {
            "Runtime.Backend.VariableOperation.MaximumStatelessVariableSize": "5000"
         }
      }
   }
}
 

1718770815035.png (42.9 KiB)
1718770870843.png (43.4 KiB)
icon clock
10 |1500

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

Upvotes
1 0 0 1

@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.

icon clock
10 |1500

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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