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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
Accepted
1 1 0 1

Delay Request using DSS

We are trying to get values for some instruments using the REST API and IntradayExtract. We used the OnlyNonEmbargoedData set to true in order to receive what is available when calling ExtractWithNotes.

The response, has all the non embargoed data, plus the embargoed ones, and it as a 200 OK as the response status. If we set the flag to False, then we get an 202 and a Location url at the header of the response, and then we can probe that url till we have all the data.

The problem is that this means we have to place two requests, the first with the flag set to true and then another one, with the embargoed ones and get the location url, and then probe that location in order to get the data of the embargoed ones.

We also found another solution, recomended by refinitiv, that by adding an / to the identifiertype, it would return us the last available data. We tried set the OnlyNonEmbargoedData both to true and false.

The problem, with this approach, is the response we receive, it just says that there are no valid identifiers.

The request:

{ "ExtractionRequest": { "@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.IntradayPricingExtractionRequest", "ContentFieldNames": [ "RIC", "Trade Date", "Trade Time", "Official Close Date", "Official Close Price", "Official Close Time", "Previous Close Date", "Previous Close Price", "Last Price", "Trade Price Currency Code", "Trade Price Currency Description", "Last Trade Price Timestamp", "Last Volume", "Volume", "Previous Day Volume", "Ask Price", "Bid Price", "High Price", "Low Price", "Mid Price", "Open Price", "Current Embargo Delay", "Embargo Times", "Exchange Requiring Embargo", "Maximum Embargo Delay", "Real Time Permitted", "Quote Time", "Exchange Code", "Exchange Description", "Last Update Time" ], "IdentifierList": { "@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.InstrumentIdentifierList", "InstrumentIdentifiers": [ { "Identifier": "/CAL.GH", "IdentifierType": "Ric" }, { "Identifier": "/NBA.LS", "IdentifierType": "Ric" }, { "Identifier": "/LTM.SN", "IdentifierType": "Ric" } ] }, "Condition": { "ScalableCurrency": false, "OnlyNonEmbargoedData": false } } }

The response:

{ "Contents": [ { "IdentifierType": "Ric", "Identifier": "/CAL.GH", "RIC": null, "Trade Date": null, "Trade Time": null, "Official Close Date": null, "Official Close Price": null, "Official Close Time": null, "Previous Close Date": null, "Previous Close Price": null, "Last Price": null, "Trade Price Currency Code": null, "Trade Price Currency Description": null, "Last Trade Price Timestamp": null, "Last Volume": null, "Volume": null, "Previous Day Volume": null, "Ask Price": null, "Bid Price": null, "High Price": null, "Low Price": null, "Mid Price": null, "Open Price": null, "Current Embargo Delay": null, "Embargo Times": null, "Exchange Requiring Embargo": null, "Maximum Embargo Delay": null, "Real Time Permitted": null, "Quote Time": null, "Exchange Code": null, "Exchange Description": null }, { "IdentifierType": "Ric", "Identifier": "/NBA.LS", "RIC": null, "Trade Date": null, "Trade Time": null, "Official Close Date": null, "Official Close Price": null, "Official Close Time": null, "Previous Close Date": null, "Previous Close Price": null, "Last Price": null, "Trade Price Currency Code": null, "Trade Price Currency Description": null, "Last Trade Price Timestamp": null, "Last Volume": null, "Volume": null, "Previous Day Volume": null, "Ask Price": null, "Bid Price": null, "High Price": null, "Low Price": null, "Mid Price": null, "Open Price": null, "Current Embargo Delay": null, "Embargo Times": null, "Exchange Requiring Embargo": null, "Maximum Embargo Delay": null, "Real Time Permitted": null, "Quote Time": null, "Exchange Code": null, "Exchange Description": null }, { "IdentifierType": "Ric", "Identifier": "/LTM.SN", "RIC": null, "Trade Date": null, "Trade Time": null, "Official Close Date": null, "Official Close Price": null, "Official Close Time": null, "Previous Close Date": null, "Previous Close Price": null, "Last Price": null, "Trade Price Currency Code": null, "Trade Price Currency Description": null, "Last Trade Price Timestamp": null, "Last Volume": null, "Volume": null, "Previous Day Volume": null, "Ask Price": null, "Bid Price": null, "High Price": null, "Low Price": null, "Mid Price": null, "Open Price": null, "Current Embargo Delay": null, "Embargo Times": null, "Exchange Requiring Embargo": null, "Maximum Embargo Delay": null, "Real Time Permitted": null, "Quote Time": null, "Exchange Code": null, "Exchange Description": null } ], "Notes": [ "All identifiers were invalid. No extraction performed." ] }

What is the approach we can follow, as we really need the intraday prices, but we don't want to duplicate all requests (as per the first approach) and this approach (getting the delay data) isn't working.

Thanks

dss-rest-apidatascope-selectdsshistoricalquoteembargo
icon clock
10 |1500

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

Upvotes
Accepted
13.7k 26 8 12

@andre.gil,

In a nutshell: the only way to get around making 2 requests is to make a single On Demand request without the OnlyNonEmbargoedData setting, but the data will only be delivered after all embargo delays have passed.

If you want to get the non-embargoed data first:

  • With an On Demand request (which is the recommended way to go) you must make 2 requests: one for all instruments (with OnlyNonEmbargoedData set to true), and a subsequent one for all the RICs that were not returned (with OnlyNonEmbargoedData set to false). The second query will take longer as it will be subject to embargo.
  • If you sort your instruments before the call (you can determine which ones will be embargoed, based on the RIC extension) you could also make 2 separate On Demand calls from the start, one for those that will not be embargoed, and the other for those that will be embargoed (both of these calls would not have the OnlyNonEmbargoedData setting).
  • It is also possible to use a scheduled request; this is not the recommended way to go, and the workflow is a bit complicated.

For details, please refer to the accepted response in this query thread.

Please also note that if you want partial deliveries (non-embargoed data before embargoed data), you must enable the appropriate settings in the user preferences in the GUI.

icon clock
10 |1500

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

Upvotes
1 1 0 1

Yeah... that's what I thought it would be the solution. Anyway, I've been told by a Refinitiv representant here in Portugal that I could use /{Identifier}, e.g. /CAL.GH in order to get the last delayed data available. But when I try to use ExtractWithNotes with this identifier (with the \) the response I get is always "Invalid identifier". Has the delayed data been deprecated?

Thanks

icon clock
10 |1500

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

@andre.gil,

I'm an API specialist, not a content specialist, so I'm not sure about what coverage there is (if any) for RIC identifiers preceded with a /.

But considering what you observe when using them ("All identifiers were invalid"), and the fact that I observe the same with other equity RICs, I'd conclude that using a / is not a solution.

Upvote
11.3k 25 8 13

The "/{identifier}" is RIC structure for delay RIC provided by real-time feed. I have tried the extraction. It will returns data if you add "AllowOpenAccessInstruments" in ValidationOptions. Below is the description from DSS User Guide document.

Example:

{ "Identifier": "/LTM.SN", "IdentifierType": "Ric" } ]  ,
"ValidationOptions": {
 "AllowOpenAccessInstruments": true
 },
"UseUserPreferencesForValidationOptions": false}, 
"Condition": { "ScalableCurrency": false, "OnlyNonEmbargoedData": false } } }

openaccess.png (31.4 KiB)
icon clock
10 |1500

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

@veerapath.rungruengrayubkul, I was not aware of that, very interesting, thank you.

Click below to post an Idea Post Idea