How to subscribe US OPRA data via EMA API?

US OPRA data contains up to 1 million single RICs therefore we often use chain RIC to retrieve single RICs and then subscribe those RICs. But we found out there are some invalid RICs in chain RICs and often lead to the application error. Is there any other way to retrieve so huge RICs except using chain RIC?

Best Answer

  • Hello @Liheng.Wang

    To retrieve data of many RICs, one possible way is to use Batches feature which allows a consumer can request multiple RICs using a single client-based request. The server responds by sending the RICs as if they were opened individually. Please refer to example370__MarketPrice__Batch for Batches feature example application.

    Anyway, ETA underlying of EMA has the limitation that the encoded length of element entry(list of RICs) cannot be longer than 65,535 bytes otherwise an error will be thrown. Hence, you need to split your all RICs to be multiple batch requests e.g. 7,000 RICs. You may have to remove invalid RICs from the list of RICs in order to avoid invalid RICs errors.

Answers

  • Chains are the way. Erroneous data should be reported to the Refinitiv help desk. Please give an example of a chain with an erroneous RIC in it.

  • Hi @Liheng.Wang

    The Elektron APIs are content agnostic - they will just provide the response from the server to your item requests.

    It is up to your application to gracefully handle the response you get for an invalid RIC request. if you request an invalid RIC, you should get a StatusMsg with a Closed stream state and a status code like 'NOT_FOUND'.

    A status message is not considered an error - rather the state of your request.