I have this code to get the sp_500 list of tickers:
def get_sp500():
import requests
import json
url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ExtractWithNotes"
payload = json.dumps({
"ExtractionRequest": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.TermsAndConditionsExtractionRequest",
"ContentFieldNames": [
"RIC"
],
"IdentifierList": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
"InstrumentIdentifiers": [
{
"Identifier": "0#.SPX",
"IdentifierType": "ChainRIC"
}
]
}
}
})
headers = {
'Prefer': 'respond-async',
'Content-Type': 'application/json',
'Authorization': f"Token {REFINITIV_AUTH_TOKEN}",
}
response = requests.request("POST", url, headers = headers, data = payload)
return response.json()
and then this code to get the tick history
def get_tick_history(ticker, query_start_date, query_end_date, provided_date: str = None):
json_blob = {
"ExtractionRequest": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.TickHistoryMarketDepthExtractionRequest",
"IdentifierList": {
"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
"InstrumentIdentifiers": [{
"Identifier": f"{ticker}",
"IdentifierType": "Ric",
}],
"ValidationOptions": {
"AllowHistoricalInstruments": "true"
},
"UseUserPreferencesForValidationOptions": "false",
},
"Condition": {
"View": "RawMarketByPrice",
"MessageTimeStampIn": "GmtUtc",
"ReportDateRangeType": "Range",
"DisplaySourceRIC": "true",
"DateRangeTimeZone": "UTC",
"QueryStartDate": query_start_date,
"QueryEndDate": query_end_date,
},
}
}
post_url = URL_BASE + "/Extractions/ExtractRaw"
request_response = post_request_with_auth(post_url, REFINITIV_AUTH_TOKEN, json_blob)
job_id = request_response.json()["JobId"]
logger.info("Starting CSV download...")
data_response = requests.get(URL_BASE + f"/Extractions/RawExtractionResults('{job_id}')/$value", headers = {
"Authorization": f"Token {REFINITIV_AUTH_TOKEN}"
}, stream = True)
data_response.raise_for_status()
return data_response
but the response is working.
I noticed if I take a symbol from the sp_500 fucntion like like:
['WTW.OQ', 'WY.N', 'WYNN.OQ', 'XEL.OQ', 'XOM.N', 'XYL.N', 'YUM.N', 'ZBH.N', 'ZBRA.OQ', 'ZTS.N']
None of them work. But if I replace the suffix with ARC or these suffixes:
suffixes = [".NYO", ".ARC", ".ITC", ".DEX", ".BAT"]
It works. Why? can you show me the docs for this?