For years I have been automatically retrieving financial data from a variety of sources to help manage my stock portfolio, and power the VFS Daily Investment Contest. For years I just scraped prices from various websites and parsed the results into a database. Its not elegant, but it has worked. I have been looking for cleaner ways to do it, but many of the online data services for financial data charged high monthly prices that didn’t make sense for the minimal quotes I retrieve on a nightly basis.
Recently, I stumbled across a great new service to pull all sorts of financial data. In addition, for my needs I can likely stay at the free level, and its the cleanest API I have seen for financial data.
All I had to do was sign up for a free account, which provides a token that I can use to access the data. The API calls are all simple GET requests, with the token in the querystring:
The result is nicely formatted JSON, which can be easily parsed using library (I use Newtonsoft). No more parsing and stripping html to get to the data. The full list of data options provided by the API can be seen here. Below is a C# example of the code I use to pull quotes on a nightly basis:
Amazingly simple, and I have been re-purposing this code to handle requests against other data points, so its real easy to get at all the API end points.
The pricing structure for this is smart also. The free level that I am currently at provides you with 500,000 request points a month. A delayed quote is 1 point, a dividend list is 10 points, and fancier things like full financials are 5000 points. So if you just want to get daily prices you can get virtually unlimited. If you want more advanced data that has been difficult to get to in the past, the free level limits will likely be exceeded. The pricing for the next level up is $9 a month, and that gets you 5,000,000 request points a month which would more then meet even my wildest data dreams.
This is a relatively new operation (the API came out of Beta in April), and they are constantly updating/improving it. It is missing some features I want (Can’t currently get prices for mutual funds, or dividends for ETFs. But those fixes are on their road map to be done soon. The IEX cloud GitHub repository does a great job of keeping users updated on changes, bugs, and upcoming fixes.
As I said above this is a new service, and in this world of online services, many do not survive. I really hope this one does. If you are looking for easy access to a wide variety of data, give this new API a shot. This is a pretty exciting development for financial data geeks such as myself.