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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
Accepted
1 0 1 4

solved - XML request to REST api

dss-rest-apidatascope-selectdssvba
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 @xingyi052387

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?

If so please can you click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question.

Thanks,

AHS

@xingyi052387, 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
22k 59 14 21

I wrote this sample code to get the Elektron Timeseries Extraction request for a sample ISIN instrument. You can take it as a starting point and implement your own. You will need a valid authentication token which can be retrieved by invoking the https://hosted.datascopeapi.reuters.com/RestApi/v1/Authentication/RequestToken endpoint.

Sub ExtractWithNotes()

Dim mxm As Object
Dim requestMsg As String
Dim response As String
Dim authToken As String

authToken = "***"

requestMsg = "{""ExtractionRequest"": {""@odata.type"": ""#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.ElektronTimeseriesExtractionRequest""," & _
"""ContentFieldNames"": [""Ask"",""Bid"",""High"",""Last"",""Low"",""Trade Date""]," & _
"""IdentifierList"": {""@odata.type"": ""#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.InstrumentIdentifierList""," & _
"""InstrumentIdentifiers"": [{""Identifier"": ""US0378331005"",""IdentifierType"": ""Isin""}]," & _
"""ValidationOptions"": null,""UseUserPreferencesForValidationOptions"": false}," & _
"""Condition"": {""StartDate"": ""2015-12-01T13:00:00.000Z"",""EndDate"": ""2015-12-02T13:05:00.000Z""}}}"

Set mxm = CreateObject("MSXML2.XMLHTTP")

Debug.Print "Sending Request..."

With mxm
.Open "POST", "https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractWithNotes", True
.SetRequestHeader "Authorization", "Token " & authToken
.SetRequestHeader "Prefer", "respond-async"
.SetRequestHeader "Content-Type", "application/json; odata=minimalmetadata"

.Send (requestMsg)
' waiting for response
While mxm.readyState <> 4
DoEvents
Wend
response = .ResponseText
End With

Debug.Print response

End Sub
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.

Upvote
39.4k 77 11 27

DSS is an enterprise product. It's highly unusual for someone to want to retrieve data from DSS into VBA. It is of course possible, but we don't have a tutorial written for it. Here's an external resource you may find useful. It describes how to send HTTP requests from VBA.
https://codingislove.com/http-requests-excel-vba/
Combined with the tutorials on DSS REST API this should be sufficient for you to be able to retrieve data from DSS into VBA.

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.

Upvote
22k 59 14 21

@xingyi052387 There is an official .NET library for DSS, but it is not "COM interop" enabled, and hence can't be used with VBA. Your only option is to invoke raw HTTP requests follwoing the links posted by Alex.

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 1 4

Sub Reuters_api()

Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String, Login64 As String
Login64 = "MTUwNzMdOkRCdTAyGjAsw" 
myurl = "https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractWithNotes"

xmlhttp.Open "POST", myurl, False

xmlhttp.setRequestHeader "Authorization", "Basic " & Login64

xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded'"

xmlhttp.send "Request= Get,XS1991242345, (BID)" <---- please help with this part.. I did a lot of research and not sure what the syntaxes are to retrieve a security's Bid price based on the ISIN and EJV source.
MsgBox (xmlhttp.responseText)

Hi Refinitiv staves,

Are you able to help with the syntax for retrieving security prices based on ISIN + EJV source?

xmlhttp.send " codes here"

Thank you so much!

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 1 4

Thank you Gurpreet, you are a genius, I will take a look right now!

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.