question

Upvotes
Accepted
3 3 5 6

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 512.0 KiB each and 1.0 MiB total.

Hello @rahul_srivastava,

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

Hello @rahul_srivastava,

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

@rahul_srivastava

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

Thanks,

AHS

1 Answer

· Write an Answer
Upvotes
Accepted
11.3k 25 9 14

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