Stream Data Using SSE#
We stream data using Server-Sent Events (SSE). We provide endpoints for streaming the following types of data:
The endpoints are available via the IEX Cloud Legacy API and described in the Legacy API Reference.
How Credits Work with Streaming#
For Apperate plans, each message received over the stream counts as a read.
1 million reads = 1 credit
Important
Unlike other cloud databases that charge based on table scans and/or data blocks, a read on Apperate equates to getting a whole record/row.
See also
US Stocks and Securities#
There are three types of endpoints for US stocks and securities. Two of them require a paid plan and a UTP agreement. Here’s an overview of these endpoints:
US Stocks Endpoints:
Endpoint |
Response Data |
Requirements |
---|---|---|
|
- IEX real-time data |
- Paid plan |
|
- IEX real-time data |
None |
|
- 15 min delayed OTC data |
- Paid plan |
Get Nasdaq-listed Stock Data (UTP/OTC Data) explains the UTP agreement process.
Firehose Versus Streaming on Symbols#
You can stream on specific symbols or stream everything – like drinking from a firehose.
The symbols
query parameter enables you to stream on a specific symbol or comma-separated list of symbols. The examples below respectively demonstrate calling the stocksUS
endpoint on specific symbols and all symbols.
Stream on symbols:
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/v1/stocksUS?symbols=spy,msft&token=YOUR_TOKEN'
Firehose:
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/v1/stocksUS?token=YOUR_TOKEN'
You can use the symbols
parameter with all the streaming endpoints.
Note
Firehose functionality does not apply to IEX DEEP streaming endpoints.
Snapshots#
When you connect to an SSE endpoint, you receive a snapshot of the latest message and then receive updates as they are available. You can disable snapshots by using the query parameter setting nosnapshot=true
.
You can also specify a starting point for a snapshot by using a query parameter setting snapshotAsOf=EPOCH_TIMESTAMP
, where the value is in milliseconds since Epoch.
Interval Streaming#
Some data is available to stream at set intervals: 1 second, 5 seconds, or 1 minute. This helps make data delivery and credit usage more predictable. The endpoints below, for example, compliment the stocksUS
endpoint.
1 second interval:
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/v1/stocksUS1Second?token=YOUR_TOKEN&symbols=spy'
5 second interval:
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/v1/stocksUS5Second?token=YOUR_TOKEN&symbols=spy'
1 minute interval:
curl --header 'Accept: text/event-stream' 'https://cloud-sse.iexapis.com/v1/stocksUS1Minute?token=YOUR_TOKEN&symbols=spy'
What’s Next#
Now you’re familiar with some of the SSE Streaming endpoints. You can try more SSE Streaming endpoints as described in the Legacy API Reference.