question

Upvotes
Accepted
3 1 2 5

TRTH REST API - ExtractRaw

Hi,

I am using python 3.6 to make use of TRTH REST API. I have executed below steps-

Step 1: I have the token with me using

https://hosted.datascopeapi.reuters.com/RestApi/v1/Authentication/RequestToken

Step 2: I am trying to Extract Raw data using -

https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractRaw

However, Every time I run my code an error is reported. Everytime I get different error.

Example of errors are :

Run 1 : {'error': {'message': 'Malformed request payload: For the property name "DisplaySourceRIC" in the JSON request the value could not be parsed successfully. Please check the casing or spelling of the property.'}}

Run 2 : {'error': {'message': 'Malformed request payload: For the property name "IdentifierType" in the JSON request the value could not be parsed successfully. Please check the casing or spelling of the property.'}}

Run 3 : {'error': {'message': 'Malformed request payload: For the property name "ReportDateRangeType" in the JSON request the value could not be parsed successfully. Please check the casing or spelling of the property.'}}

Run 4: {'error': {'message': 'Malformed request payload: Syntax error at Line 1, Char 57: Invalid array element type for property \'ContentFieldNames\'. Expected element type of \'ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.ExtractionRequestBase\', but found \'System.String\'. {"ExtractionRequest": {"ContentFieldNames": ["Close As'}}

****************************************************************

My code is as below -

requestHeaders ={

"Authorization": "Token"+ __SessionToken,

"Content-Type": "application/json",

"Accept-Charset": "UTF-8",

"Prefer": "respond-async"

}

requestBody={

"ExtractionRequest": {

"@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.TickHistoryIntradaySummariesExtractionRequest",

"ContentFieldNames": [

"Close Ask",

"Close Bid",

"Domain",

"High",

"High Ask",

"High Bid",

"History End",

"History Start",

"Instrument ID",

"Instrument ID Type",

"Last",

"Low",

"Low Ask",

"Low Bid",

"No. Asks",

"No. Bids",

"No. Trades",

"Open",

"Open Ask",

"Open Bid",

"RIC",

"Sample Data",

"Volume"

],

"IdentifierList": {

"@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",

"InstrumentIdentifiers": [

{

"Identifier": "EUR=",

"IdentifierType": "Ric"

}

],

"UseUserPreferencesForValidationOptions": "false"

},

"Condition": {

"MessageTimeStampIn": "GmtUtc",

"ApplyLegacySummaryTimeLabel": "false",

"ReportDateRangeType": "Range",

"QueryStartDate": "2008-10-13T13:00:00.000-05:00",

"QueryEndDate": "2008-10-13T14:00:00.000-05:00",

"SummaryInterval": "OneMinute",

"TimebarPersistence": "true",

"DisplaySourceRIC": "true"

}

}

}

r2 = requests.post(

"https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractRaw",\

json = requestBody,\

headers = requestHeaders,\

proxies = proxy)

print(r2.json())

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

1 Answer

Upvotes
Accepted
11.3k 25 8 13

@rahul_srivastava

Currently, the "@odata.type" must be before other parameters. The Dictionary of Python is unordered as the order is not guarantee to be the same when dictionaries are added. It is possible that the "@odata.type" is reordered to be after other parameters and then cause the parameter to be failed. To avoid this issue, please use the OrderedDict instead of normal Dictionary once you creates the request. For more information, please see this question.

Also, I have tried your provided code and found other issues.

- The "RIC", "Domain", "History End", "History Start", "Instrument ID", "Instrument ID Type", "Sample Data" fields are not valid for the TickHistoryIntradaySummaries report template. Please remove the fields. The "RIC" and "Domain" fields are mandatory fields which always are included in the report.

- The "ApplyLegacySummaryTimeLabel" is not valid condition. Please remove it from the request message.

- The value of Boolean type parameters need to be set as False or True, not string "false" and "true"

For example:

"UseUserPreferencesForValidationOptions": False

"TimebarPersistence": True

"DisplaySourceRIC": True

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.

Click below to post an Idea Post Idea