Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • TRTH /
avatar image
REFINITIV
Question by samuel.schwalm · May 19, 2017 at 08:09 AM · pythonTRTHtrth api

TRTH ExtractRawResult returns Error 404

I'm creating a python sample around TRTH starting from the tutorial and I'm getting this 404 error in the last step of the process. Would anyone have a working python sample ?

  • Getting the token works fine
import requests
import json 
requestUrl = "https://hosted.datascopeapi.reuters.com/RestApi/v1/Authentication/RequestToken" 

requestHeaders={
    "Prefer":"respond-async",
    "Content-Type":"application/json"
} 

requestBody={
    "Credentials": {
    "Username": "XXXXX",
    "Password": "*****"
  }
}
r = requests.post(requestUrl, json=requestBody,headers=requestHeaders)
jsonResponse = json.loads(r.text.encode('ascii', 'ignore')) 

token = jsonResponse["value"] 

print token

returns succesfully the token

  • then I can successfuly post a request
Url='https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractRaw'
requestUrl=Url

requestHeaders={
    "Prefer":"respond-async",
    "Content-Type":"application/json",
    "Authorization": "token " + token
}

requestBody={
  "ExtractionRequest": {
    "@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.TickHistoryIntradaySummariesExtractionRequest",
    "ContentFieldNames": [
      "Close Ask",
      "Close Bid",
      "High",
      "High Ask",
      "High Bid",
      "Last",
      "Low",
      "Low Ask",
      "Low Bid",
      "No. Asks",
      "No. Bids",
      "No. Trades",
      "Open",
      "Open Ask",
      "Open Bid",
      "Volume"
    ],
    "IdentifierList": {
      "@odata.type": "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",  
      "InstrumentIdentifiers": [{
        "Identifier": "CARR.PA",
        "IdentifierType": "Ric"
      }],
      "UseUserPreferencesForValidationOptions":"false"
    },
    
    "Condition": {
      "MessageTimeStampIn": "GmtUtc",
      "ReportDateRangeType": "Range",
      "QueryStartDate": "2016-09-29T00:00:00.000Z",
      "QueryEndDate": "2016-09-30T00:00:00.000Z",
      "SummaryInterval": "OneHour",
      "TimebarPersistence":"true",
      "DisplaySourceRIC":"true"
    }
        
  }
}

r = requests.post(requestUrl, json=requestBody,headers=requestHeaders)

print r
print r.headers
print r.headers["location"]

and get as expected

<Response [202]>

{'Status': 'InProgress', 'Content-Length': '0', 'X-Request-Execution-Correlation-Id': 'c9034ca7-94d4-4c5a-a4ee-75e499b88457', 'X-App-Id': 'Custom.RestApi', 'Set-Cookie': 'DSSAPI-COOKIE=R3479498792; path=/', 'Expires': '-1', 'Server': 'Microsoft-IIS/7.5', 'X-App-Version': '11.0.492.64', 'Location': "https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractRawResult(ExtractionId='0x05b94284924b3016')", 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Date': 'Fri, 19 May 2017 09:42:01 GMT', 'Progress': ''}

https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/ExtractRawResult(ExtractionId='0x05b94284924b3016')
  • I can then pull the status
requestUrl = r.headers["location"]
print requestUrl

requestHeaders={
    "Prefer":"respond-async",
    "Content-Type":"application/json",
    "Authorization":"token " + token
}

r2 = requests.get(requestUrl,headers=requestHeaders)

print r2
print r2.headers

until I get

<Response [200]>
  • However, when I try to retrieve the content using
requestUrl = r.headers["location"] + "/$value"

requestHeaders={
    "Prefer":"respond-async",
    "Content-Type":"application/json",
    "Accept-Encoding":"gzip, deflate",
    "Authorization": "token " + token
}

r3 = requests.get(requestUrl,headers=requestHeaders)

print r3

I get

<Response [400]>

would anyone have a working python sample ?

Many thanks

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

2 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by Christiaan Meihsl · May 19, 2017 at 08:25 AM

@samuel.schwalm

400 is a bad request, 404 indicates that the resource specified by the request URL does not exist (see status codes here).

The issue is with the URL when you try to retrieve the content. It is not the location URL. Instead, you must use this URL:

https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/RawExtractionResults('0x05b94284924b3016')/$value

This URL contains the JobId (0x05b94284924b3016) which was returned in the body of the previous 200 response.

You can find the details of the On Demand request workflow in this tutorial, and this particular step is described here.

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Answer by samuel.schwalm · May 19, 2017 at 09:39 AM

Many thanks @Christiaan Meihsl

Indeed with the right url it works better!

requestUrl = "https://hosted.datascopeapi.reuters.com/RestApi/v1/Extractions/RawExtractionResults" + "('" + jobId + "')" + "/$value"


requestHeaders={
    "Prefer":"respond-async",
    "Content-Type":"text/plain",
    "Accept-Encoding":"gzip",
    "Authorization": "token " + token
}


r3 = requests.get(requestUrl,headers=requestHeaders)
extract = r3.text 
print r3
print extract

or with a panda dataframe

rom StringIO import StringIO
import pandas as pd


timeSeries = pd.read_csv(StringIO(r3.text))
timeSeries

Many thanks

Samuel

Comment

People who like this

0 Show 1 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Christiaan Meihsl ♦♦ · May 19, 2017 at 10:27 AM 0
Share

Great, good to know :)

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
9 People are following this question.

Related Questions

TickHistoryRaw in python

How to get time and sales data for inactive instrument

Market Depth data using Python on TRTH

Dates fields​

Missing TRTH HistoricalChainResolution Constituents for 0#.AORD

  • Feedback
  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Careers
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Calais
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRIT
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • World-Check Data File
  • Explore
  • Tags
  • Questions
  • Badges