Scheduled price extraction for currencies

Trying to extract scheduled price data for CNH and CNY identifiers , i was able to successfully extract EOD pricing for these identifiers but facing error when trying to extract the prices at specific time of day, please find below the API query details along with URL and error message
Code
from ayx import Alteryx
import pandas as pd
import requests
from datetime import datetime
import html
a = Alteryx.read('#1')
token_url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Authentication/RequestToken"
payload = "{\r\n "Credentials": {\r\n "Username": "9038135",\r\n "Password": "*********"\r\n }\r\n}"
scheduled_price_url="https://selectapi.datascope.refinitiv.com/restapi/v1/Extractions/Schedules"
headers = {
'Prefer': 'respond-async',
'Content-Type': 'application/json'
}
PROXY = {
'http':'http://proxy.jpmchase.net:10443'
, 'https':'http://proxy.jpmchase.net:10443'
}
try:
response = requests.request("POST", token_url, headers=headers, data=payload,proxies = PROXY,verify=False)
print("Successfully connected")
data=response.json()
token=data.get("value")
scheduled_price_header={
'Prefer': 'respond-async',
'Content-Type': 'application/json',
"Authorization": "Token "+token
}
body={
"Name": "TEST Sample EOD Extraction",
"TimeZone": "Coordinated Universal Time",
"Recurrence":
{
"@odata.type": "#DataScope.Select.Api.Extractions.Schedules.SingleRecurrence",
"ExtractionDateTime": "2025-06-03T12:35:00.000",
"IsImmediate": "TRUE"
},
"Trigger":
{
"@odata.type": "#DataScope.Select.Api.Extractions.Schedules.ImmediateTrigger",
"LimitReportToTodaysData": "FALSE"
},
"IdentifierList": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
"InstrumentIdentifiers": [
{ "Identifier":"CNH=", "IdentifierType":"Ric" },
{ "Identifier":"CNY=", "IdentifierType":"Ric" },
],
},
"ValidationOptions": None,
"UseUserPreferencesForValidationOptions": "FALSE",
"Condition": None
}
response_close_price=requests.request("POST", scheduled_price_url, headers=scheduled_price_header,json=body, proxies = PROXY,verify=False).json()
print(response_close_price)
except requests.RequestException as e:
print(f"Couldnt connect : {e}")
results=[]
for item in response_close_price.get('Contents'):
identifier=item.get('RIC')
trade_date=item.get('Trade Date')
close_price=item.get('Universal Close Price')
results.extend([{'Identifier':identifier,'Trade Date':trade_date,
'Universal Close Price':close_price}])
results_df=pd.DataFrame(results)
Alteryx.write(results_df, 1)
Answers
-
Hello @AnuragShetty
I am not sure what you are trying to do in this code. If your intention is to extract the data for an asset at a particular time (intraday extraction), then please use On-Demand extraction - IntradayPricing Extraction Request.
You can how this on demand extraction is used in the following repo on GitHub -
0 -
Please also refer to the answer on this discussion.
You need to check if you would like to use the immediate scheduled extraction or on-demand extraction. You can't specify instruments (InstrumentIdentifiers) directly in a scheduled extraction request message.
1 -
Hello @Jirapongse , Thank you so much for the reply, we are picking this item back up now so appreciate the help. One question i had is where do we get the List Id and ReportTemplateID for my request? My request is to extract CNH and CNY prices on a daily basis as of 4:30 PM SGT.
0 -
You can get the List ID and ReportTemplateID from the DSS Web UI or the REST API.
From the DSS Web UI, you can select the required instrument list or required report template. The ID will be displayed in the URL.
From the API, you can get all instrument IDs or report templates, or search it by its name.
Use the following endpoints to list all instrument lists or report templates.
- Instrument: GET https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/InstrumentLists
- Report Template: GET https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ReportTemplates
Use the following endpoints to search it by its name.
- Instrument: GET https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/InstrumentListGetByName(ListName='<list_name>')
- Report Template: GET https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ReportTemplateGetByName(Name='<report_name>')
0 -
Hello @Jirapa_Singnoi
I tried setting up my code to get the price at 8:30 AM UTC but it doesnt seem to work, could you please help me with it
Code
token_url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Authentication/RequestToken"
payload = "{\r\n "Credentials": {\r\n "Username": "9038135",\r\n "Password": "***********"\r\n }\r\n}"
scheduled_price_url="https://selectapi.datascope.refinitiv.com/restapi/v1/Extractions/Schedules"headers = {
'Prefer': 'respond-async',
'Content-Type': 'application/json'
}PROXY = {
'http':'http://proxy.jpmchase.net:10443'
, 'https':'http://proxy.jpmchase.net:10443'
}try:
response = requests.request("POST", token_url, headers=headers, data=payload,proxies = PROXY,verify=False)
print("Successfully connected")
data=response.json()
token=data.get("value")
scheduled_price_header={
'Prefer': 'respond-async',
'Content-Type': 'application/json',
"Authorization": "Token "+token
}body={
"Name": "TEST Sample EOD Extraction_3",
"TimeZone": "Coordinated Universal Time",
"Recurrence":
{
"@odata .type": "#DataScope.Select.Api.Extractions.Schedules.SingleRecurrence",
"ExtractionDateTime": "2025-08-08T08:30:00.000Z",
"IsImmediate": "TRUE"
},
"Trigger":
{
"@odata .type": "#DataScope.Select.Api.Extractions.Schedules.ImmediateTrigger",
"LimitReportToTodaysData": "TRUE"
},
"ListId": "0x097f476f72eb43f0",
"ReportTemplateId": "0x097a61595a9b3b46"
}
response_close_price=requests.request("POST", scheduled_price_url, headers=scheduled_price_header,json=body, proxies = PROXY,verify=False).json()
print(response_close_price)except requests.RequestException as e:
print(f"Couldnt connect : {e}")End of Code
Also it seems to throw an error that scheduled already exists and i need to rename it every time i run, maybe this is a one time thing and i need to write some more code to get the actual price could you please help
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 37 Alpha
- 167 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 702 Datastream
- 1.5K DSS
- 633 Eikon COM
- 5.2K Eikon Data APIs
- 14 Electronic Trading
- 1 Generic FIX
- 7 Local Bank Node API
- 6 Trading API
- 2.9K Elektron
- 1.5K EMA
- 257 ETA
- 566 WebSocket API
- 40 FX Venues
- 16 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 25 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 283 Open PermID
- 47 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 24 RDMS
- 2.1K Refinitiv Data Platform
- 825 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 122 Open DACS
- 1.1K RFA
- 107 UPA
- 195 TREP Infrastructure
- 232 TRKD
- 918 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 100 Workspace SDK
- 11 Element Framework
- 5 Grid
- 19 World-Check Data File
- 1 Yield Book Analytics
- 48 中文论坛