For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
5 0 0 3

Passing RIC in Python list

I am trying to retrieve the value for a particular RIC code and I am only getting back MetaData, any ideas what I am doing wrong pls?


eikon_service_disc = EikonServiceDiscovery(user, password, scope, clientid, region, hotstandby)

test_list = ['RIC_7YZ3MZ']  # ir

position_host = socket.gethostname()
position = socket.gethostbyname(position_host) + "/" + position_host

sts_token, refresh_token, expire_time = eikon_service_disc.get_sts_token(None)
if not sts_token:
    sys.exit(1)

if not eikon_service_disc.query_service_discovery():
    # logger.critical("Failed to retrieve endpoints from EDP Service Discovery. Exiting...")
    sys.exit(1)
original_expire_time = expire_time
datetime_now = datetime.now()

session1 = WebSocketSession(
    "session1", eikon_service_disc.get_hostlist()[0], test_list, position, sts_token
)
session1.connect()


The output is below:


{
  "services":[
    {
      "dataFormat":[
        "tr_json2"
      ],
      "endpoint":"ap-southeast-1-aws-1-sm.optimized-pricing-api.refinitiv.net",
      "location":[
        "ap-southeast-1a"
      ],
      "port":443,
      "provider":"aws",
      "transport":"websocket"
    },
    {
      "dataFormat":[
        "tr_json2"
python api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hello @mark.banford-Lawrence ,

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If yes, please click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

-AHS

Upvotes
Accepted
25.3k 87 12 25

Hi @mark.banford-Lawrence

Can you please advise what EikonServiceDiscovery is?

Is it a package or library developed internally by someone in your organisation?

The service discovery appears to be working correctly in that it identifies a valid Refinitiv Real-time Optimised (RTO) Endpoint.

What is the definition of WebsocketSession - is it expecting a RIC list as part of the initialisation parameters? Does it then use the RIC list to request those instruments from the RTO service?

I recommend you test first with one of our examples such as websocket-api/market_price_rdpgw_service_discovery.py at master · Refinitiv/websocket-api (github.com) - to confirm your credentials etc are working.

If so, then please refer to whoever developed the EikonServiceDiscovery and WebSocketSession code and they may be able to help you diagnose why the code is not requesting the RIC you provide.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
24.6k 54 17 14

Hello @mark.banford-Lawrence

Basically, the WebSocket API for the RTO connection workflow is as follows:

  1. Authentication(with Machine-ID credentials type) to the RDP Auth service via the HTTP Post
  2. Extract the Access & Refresh Tokens as well as the token Expiry time from the HTTP Response
  3. Sends the HTTP Get request to get RDP Service Discovery service to get the RTO endpoints
  4. Choose the endpoint, then create a WebSocket connection to that endpoint
  5. Once a WebSocket is open to the RTO server, send the Access Token as part of the Login Request
  6. Before the tokens expire, resend a Post request to the RDP Gateway to get a new refresh and Access Tokens
  7. Re-send a Login request to the Refinitiv Real-Time - Optimized server using the new obtained Access Token

The given code just gets the RTO endpoint (step #3), then connects to the WebSocket endpoint (step #4).

I highly recommend you check the WebSocket API Connect to Refinitiv Real-Time - Optimized tutorial to be similar to the WebSocket API connection flow.

You can check the WebSocket API RTO examples (in Java, C#, and Python) from the WebSocket API - GitHub repository (in the RDP folder).

  • Note: Please ignore the Go example because it aims for a different use case.
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.