question

Upvotes
Accepted
1 0 2 3

Requesting more than one SEDOL at a time

When I try this:

{

"Request": {

"Identifier": "BD8DS52",

"IdentifierType": "Sedol",

"Range": {

"Start": "2017-09-11T00:00:00.000Z",

"End": "2017-09-11T23:59:59.999Z"

}

},

"Request": {

"Identifier": "BDH44M5",

"IdentifierType": "Sedol",

"Range": {

"Start": "2017-09-11T00:00:00.000Z",

"End": "2017-09-11T23:59:59.999Z"

}

}

}

I get an error "The request JSON is malformed. Duplicate keys found". Is it possible to request Identifier for multiple Sedols/Isins in one POST request? The reference document is a little bit conflicting about it.

tick-history-rest-apirest-api
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.

Hello @Igor Schein,

Please include the complete request. For the requests that handle multiple instruments, the data range should be the same for all the instruments in the request, i.e. instruments, and then the date range, suspect this is what is causing the "malformed" error that you are seeing.

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query? If yes please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question. Thanks, AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such. Thanks, AHS

Upvote
Accepted
11.3k 25 9 14

@Igor Schein

I understand that you are using HistoricalSearch. The message, you are using, seems not correct, so the error was received. Anyway, the HistoricalSearch supports only one identifier at a time.

In this case, you can also use the HistoricalReferenceExtraction to retrieve reference data for multiple identifiers at a time.

POST https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/Extract


{
    "ExtractionRequest": {
        "@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.HistoricalReferenceExtractionRequest",
        "ContentFieldNames": [
           "RIC","Exchange Code"
        ],
        "IdentifierList": {
            "@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
            "InstrumentIdentifiers": [
                {
                    "Identifier": "BD8DS52",
                    "IdentifierType": "Sedol"
                },
                {
                    "Identifier": "BDH44M5",
                    "IdentifierType": "Sedol"
                }
            ],
            "ValidationOptions": {"AllowHistoricalInstruments": true},
            "UseUserPreferencesForValidationOptions": false
        },
        "Condition": {
            "StartDate": "2017-09-11T00:00:00.000Z",
            "EndDate": "2017-09-11T23:59:59.999Z"
        }
    }
}

Output:

        {
            "IdentifierType": "Sedol",
            "Identifier": "BD8DS52",
            "RIC": "SANT1.VI",
            "Exchange Code": "VIE"
        },
        {
            "IdentifierType": "Sedol",
            "Identifier": "BDH44M5",
            "RIC": "MSBT.VI",
            "Exchange Code": "VIE"
        }
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 2 3

@veerapath.rungruengrayubkul

Thank you, that's very helpful. I wish this was a part of REST API Use Cases Reference document.

While playing with it, I've been getting a lot of intermittent errors "No JSON object could be decoded". In my recent example, I ran the same 200-sedol message 5 times in a row Got the error 4 times, and successful completion once. I'm keen on getting this addressed, so I am attaching the message in question.in.txt


in.txt (11.1 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 2 3

@veerapath.rungruengrayubkul

It seems to be a timeout issue. The message either completes in under 30sec or fails with the error above. Any way to increase timeout from 30sec?

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
11.3k 25 9 14

@Igor Schein

This should expected behavior for asynchronous request, where the "Prefer: respond-async" specified in header of request.

If extraction is complete within an amount of time (30 seconds by default), the server will return 200 response with data. Otherwise, the server responds with a 202 (accepted), indicating that the request was accepted. The 202 response includes a monitor URL in the "Location" header. Application needs to send GET http request against the monitor URL to retreive data. However, if the response still is not available, another 202 response will be sent.

For more information, please see the Async Key Mechanisms and "Request accepted, but with a timeout" in the REST API Tutorial 10: On Demand Histo Reference extraction tutorial.

Regarding your question, if you don't want to handle the asynchronous mechanism, you may:

  • change the request to synchronous by removing the "Prefer: respond-sync" header. Synchronous requests will keep the connection open until the requested work has been completed or the request fails. This method is not recommend for extraction of huge amount of data.
  • increase timeout by adding "wait" in Prefer header. For example, "Prefer: respond-async, wait=120".
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.