Where to Start
If you are experiencing issues with your WebSocket connection, your best resource for help are our official SDKs we've created, seen below:
All SDKs above, if followed exactly, will return real-time streaming prices for the exchange to which you're subscribed. It is recommended to follow the SDK exactly to get up and running initially, and then build off of that if needed.
If you've followed the SDK and are still unable to connect, below are some common items to check:
1. Are you attempting to connect to securities on the exchange for which you're subscribed?
We offer two sources of real-time prices via our WebSocket connection; IEX (which streaming real time prices from the IEX exchange), and QUODD (which supplies our real time prices from the Nasdaq Basic Level 1 and TMX QuantumFeed® and TSX Venture Level.
Depending on which data feed you are subscribed to, you'll need to make sure you are connecting to that feed specifically.
This is seen most clearly in any of the SDKs linked above. In each, you'll see where to specify your "provider" (either "iex" or "quodd") and how to specify the correct symbology (e.g. "AAPL" for iex, and "AAPL.NB" for Nasdaq Basic).
You can also see specific connection examples for each data feed, by navigating to the documentation on the product page for each, and making sure "WebSocket" is selected at the top. Below is the documentation for each of our three real time streaming data feeds:
2. Are you experiencing frequent timeouts?
If you installed and followed one of the SDKs above, a heartbeat should already be active in your connection. If you did not, and you are experiencing frequent disconnects in your connection, you need to send a heartbeat every 20 seconds to keep your connection open. If you do not, your connection will timeout after 45 seconds. Please see one of the SDKs above for more information and how to add that to your connection.
3. Are you not receiving quotes in real-time?
If you are not receiving quotes through the WebSocket in real-time, you may be hitting a queue limit. When the Intrinio Realtime library receives quotes from the WebSocket connection, it places them in a queue. This queue has a default maximum size of 10,000 quotes. You can modify this value by specifying a
max_queue_size option, as your environment memory constraints allow. Once a quote has been placed in the queue, it is passed to the
on_quote handler in the order it was received. Your
on_quote handler should process quotes quickly, so that the queue does not reach its maximum size (at which point, the system will log an error and ignore any incoming quotes until the queue has space). We recommend using the a thread class or pool for operations such as writing quotes to a database (or anything else involving time-consuming I/O). The
on_quote handler also receives a
backlog argument, which is an integer specifying the approximate length of the quote queue. Monitor this to make sure you are processing quotes quickly enough.
4. Are you not receiving any quotes through the WebSocket (IEX specific)?
If you are not receiving any quotes through your IEX WebSocket connection, check out our IEX demo page, here: https://realtime.intrinio.com/demo.
Plug in your credentials, specify one or more securities, and hit "Start". If real-time quotes are streaming though, the IEX WebSocket is live, and there is an issue in your specific integration. If no quotes are streaming through the demo page, please let us know.
How to help us, help you:
If you are following one of our SDKs exactly, and none of the 4 items above have helped, please reach out to us via chat. When you reach out, please tell us the following:
- Which programming language you're using
- If you are using one of our official SDKs found on GitHub
- Send us a screenshot showing the error you're experiencing