Stock exchanges have a monopoly on their own data. No matter how many resellers of stock prices pop up, a small number of exchanges control who accesses the data and how they can access it. At the same time, app developers and financial analysts must have stock prices or their analyses won't work. The default solution to this conflict of interest, between exchanges that want to maximize their profit and consumers who must have data, is for pricing data to be either expensive or difficult to use.
Intrinio's mission is to make financial data affordable and easy to access and we are working hard to find new solutions to get pricing data into the hands of those that need it to drive decisions. This blog explains the real time, end of day (EOD), and historical security prices Intrinio provides, how users can access them, how much they cost, and where we are heading next.
Real Time IEX Stock Prices API
When you say stock prices you could mean historical prices, EOD prices, adjusted prices, delayed prices, option prices, foreign exchange prices, or real time prices. Traditional stock exchanges like NASDAQ and NYSE put a premium on real time prices because for investors, these up to the second quotes are the most valuable source of information about securities. As the time lag gets greater, the value, and the cost of pricing data, goes down dramatically.
Intrinio sources it's real time stock prices from the Investor's Exchange (IEX) because IEX shares Intrinio's belief that for data to be useful, it has to be affordable. Whereas most exchanges charge thousands of dollars per month just to access stock prices, and tens of thousands of dollars a month for redistribution rights on that data, Intrinio has plans that cost literally nothing and expanded data plans starting at $5/mo.
The data is available through the US Public Company Financials data feed, either by calling the REST API directly in your own application or through Intrinio's Excel add-in. Alternatively, the data can also be accessed via web socket.
Accessing IEX prices through the API or Excel will give you the real-time price for a security on IEX's exchange with only miliseconds of delay, just the time it takes for your computer and Intrinio's server to process the data which is pulled from IEX. A sample API call would look like this:
In Excel, it would look like this:
A number of other tags, such as ask_price and ask_timestamp, can be found in our Data Point tags documentation. The cost of the US Public Company Financials data feed, which includes IEX real time prices as well as many other kinds of financial data for US securities, can be found in the marketplace.
A drawback of this approach is that each time you pull in a stock price, it counts as 1 API call. This will cause you to burn through your subscription's data allotment in a hurry if you try to stream prices. As a result, Intrinio also offers IEX realtime prices via a web-socket.
Real Time IEX Stock Prices WebSocket
The web-socket allows developers to connect to a real time "stream" of prices directly from the exchange. Instead of limiting the number of daily API calls, the web-socket allows an unlimited amount of prices to be continuously streamed for a limited number of tickers.
The $5/mo plan, for example, allows for up to 10 concurrent connections at a time, meaning the real time prices for up to 10 stocks can be obtained with a continuous flow of new prices as they are updated on the exchange. The plan allows for a total of 1,000 total daily connections, meaning a user can connect to up to 1,000 different security pricing feeds over the course of a day, changing them as necessary.
If you have shopped around for real time stock prices you will be amazed at the price of our IEX web-socket, which, in addition to IEX's commitment to fair trading practices, is a great reason to use this data. It's important to remember that IEX prices are IEX prices, and while orders from the other exchanges are now required to be routed to IEX if IEX has the best price, IEX prices can be different from the prices on the other exchanges. In an increasing number of instances the prices will be very similar, but differences in liquidity can create differences in prices.
|Plan||Cost||Concurrent Connections||Daily Connections||Redistribution|
You can view the IEX web-socket page in our marketplace and peruse the documentation to get the details on how to connect. This video provides a demonstration of the web socket:
Historical and EOD Stock Prices
The US Public Company Financials data feed makes it easy to get end of day (EOD) security prices and historical prices going back more than 30 years from traditional exchanges in the United States. These prices are less susceptible to illiquidity influences and are a good tool for back testing and checking trends in the data.
Using the API, the entire price history for a stock can be obtained in a single call:
This call, which provides data for many types of charts including candle stick graphs, returns 13 daily metrics such as the adjusted close price, the volume, and the low price going back more than 30 years from the date of the call.
Alternatively, the prices for a specific date or range of dates and a single pricing metric can be obtained and developers can specify a format as well (yearly, monthly, etc):
In Excel, the "Intrinio Security Prices" template, which is included in the free Excel add-in download, allows a user to enter a ticker and automatically receive the price history for a stock in their workbook:
Alternatively, users can use functions to pull in security price data any way they choose:
To get the most recent close_price:
To get a specific historical price:
=intriniohistoricalprices("AAPL", "low", 1, "2006-01-01", "2016-01-01", "daily")
The historical data include adjusted data points that account for splits, reverse splits, and dividends. Index prices don't include adjusted figures since indexes don't have splits or dividends.
If you are using the API, it can be helpful to note that the securities endpoint can be called with an optional parameter, last_crsp_adj_date, that returns a list of securities that have adjusted their stock prices due to a corporate event. This parameter is useful for configuring your application to only update historical prices if they have changed.
Using the tags and syntax from Intrinio's documentation, it becomes simple for analysts using Excel and developers using the API to modify the syntax posted above so get exactly the EOD or historical price data you need in the format you need it.
What's Next for Intrinio Pricing?
Intrinio's developers are currently hard at work adding non-US security prices for markets around the world including all of the continents. Just kidding, there isn't an Antarctic stock exchange yet, but if there was, we would be working on it.
It is expected that these foreign exchange prices will be available in January, 2017. We intend to keep the cost of these prices as competitive as our current pricing data because we really do believe that if financial data is unaffordable, it's useless.
Additionally, we are currently looking for a second source of real time prices to give our users more options- this is why we launched our Marketplace. It is hoped that this data will be available in Q1, 2017 but unlike the foreign exchange data there is not yet a definitive timeline.