How to add instruments to the instrument list from the extraction response of Search for a Future or

Hi Team,


Can you please confirm if there is any API code to add the instruments to the instrument list from the response received in API query of 'Search for a Future or Option'


API Query:

{

"SearchRequest": {

"FileCodes": null,

"CurrencyCodes": null,

"ExchangeCodes": null,

"IdentifierType": "Ric",

"Identifier": null,

"PreferredIdentifierType": "Ric",

"UnderlyingRic": "AAL.O"

}

}


Sample Response:

{

"@odata.context": "https://selectapi.datascope.refinitiv.com/RestApi/v1/$metadata#Collection(DataScope.Select.Api.Search.FuturesAndOptionsSearchResult)",

"value": [

{

"Identifier": "AALF212403700.U",

"IdentifierType": "Ric",

"Source": "OPQ",

"Key": "VjF8MHgwMDEwMGIwMDJlMzYwYjNhfDB4MDAxMDBiMDAyZTM1OTcwMHxPUFF8RFZRVXxERVJWfE9QVHxEfHxBQUxGMjEyNDAzNzAwLlV8NzE0MQ",

"Description": "AAL Jun4 37.0 C",

"InstrumentType": "DerivativeQuote",

"Status": "Valid",

"ExchangeCode": "OPQ",

"CurrencyCode": "USD",

"FuturesAndOptionsType": "Options",

"PutCallCode": "Call",

"ExpirationDate": "2024-06-21T00:00:00.000Z",

"StrikePrice": 37,

"AssetStatus": "Active"

},

{

"Identifier": "AALF212402000.U",

"IdentifierType": "Ric",

"Source": "OPQ",

"Key": "VjF8MHgwMDEwMGIwMDJlMzYwZTE2fDB4MDAxMDBiMDAyZTM1OWE2OXxPUFF8RFZRVXxERVJWfE9QVHxEfHxBQUxGMjEyNDAyMDAwLlV8NzE0MQ",

"Description": "AAL Jun4 20.0 C",

"InstrumentType": "DerivativeQuote",

"Status": "Valid",

"ExchangeCode": "OPQ",

"CurrencyCode": "USD",

"FuturesAndOptionsType": "Options",

"PutCallCode": "Call",

"ExpirationDate": "2024-06-21T00:00:00.000Z",

"StrikePrice": 20,

"AssetStatus": "Active"

},

{

"Identifier": "AALR212402700.U",

"IdentifierType": "Ric",

"Source": "OPQ",

"Key": "VjF8MHgwMDEwMGIwMDJlMzYwZTkyfDB4MDAxMDBiMDAyZTM1OWIzNHxPUFF8RFZRVXxERVJWfE9QVHxEfHxBQUxSMjEyNDAyNzAwLlV8NzE0MQ",

"Description": "AAL Jun4 27.0 P",

"InstrumentType": "DerivativeQuote",

"Status": "Valid",

"ExchangeCode": "OPQ",

"CurrencyCode": "USD",

"FuturesAndOptionsType": "Options",

"PutCallCode": "Put",

"ExpirationDate": "2024-06-21T00:00:00.000Z",

"StrikePrice": 27,

"AssetStatus": "Active"

}


Can the RICs received in this response be added to the Instrument list in the same or different API?


Thanks,

Anirudh

Best Answer

  • Gurpreet
    Answer ✓

    Hi @Anirudh Vishnubhatla,

    There is no direct API call which will take the output of the search API and create an instrument list for it. Your application will have to handle this in the code.

    If the list does not exist already, it should be created:

    url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/InstrumentLists"

    body = {
    "@odata.type": "#DataScope.Select.Api.Extractions.SubjectLists.InstrumentList",
    "Name": "Python Instrument List"
    }

    resp = requests.post(url, data = json.dumps(body), headers = ...)

    Now instruments from Search results can be added to it. The instrument list JSON should contain an array of identifiers. Using your search results as example:

    il = []
    for inst in searchResults['value']:
    lInstr = {
    'Identifier': inst['Identifier'],
    'IdentifierType': inst['IdentifierType'],
    'UserDefinedIdentifier': inst['Identifier']
    }
    il.append(lInstr)

    url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/InstrumentLists('" + listID + "')/DataScope.Select.Api.Extractions.InstrumentListAppendIdentifiers"

    body = {
    "Identifiers": il,
    "KeepDuplicates": True
    }

    resp = requests.post(url, data = json.dumps(body), headers = ...)

    Hope this helps.