How do you pass in the correct RIC to a TickHistoryMarketDepthExtractionRequest

Jwan622
Jwan622 Newcomer
edited February 27 in Refinitiv Data Platform

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?

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Jwan622

    Thank you for reaching out to us.

    Not all RICs support the MarketByPrice domain. For example, WY.N only supports the MarketPrice domain while WY.NYO supports the MarketByPrice domain.

    You may need to contact the Tick History support team via MyAccount regarding how to get or search the required RICs via the Datascope Web GUI. If the required RICs can be searched or retrieved via the Datascope Web GUI, then we can check how to do the same thing with the Tick History REST API.