Where can I get historical fundamental data for multiple companies in a single CSV file?

  • Summary

    I seek an explicit reference to a source that gives me

    1. a fixed URL, e.g. http://example.com/?isin=US1912161007 or http://example.com/?index=Dow_Jones, which provides
    2. an easily parsed format (e.g. CSV, not HTML),
    3. the fundamental data I need (or at least sufficient data that I can calculate it),
    4. several years in the same file,
    5. search functionality by ISIN (or all stocks of an index in a single file).
    6. The service should not be limited to US stocks but should include at least the stocks of major indices worldwide.
    7. Paying for it is not the issue, but I need to know beforehand if I that data actually does what I need.

    Original Post

    I'm looking for a service that provides historical fundamental data in CSV format, which might look kind of like this (note how more than one company appears in the same file - alternatively I'd like an usable request interface, e.g. http://example.com/?isin=US1912161007):

    stock , ISIN        , year, price       earnings   cash flow  equity     debt     , ...
                                per share , per share, per share, per share, per share, ...
    Apple , US0378331005, 2014, 125.32    , 6.49     , 29.78    , 22.3     , 25.1     , ...
    Apple , US0378331005, 2013, 125.32    , 5.72     , 26.20    , 24.6     , 32.6     , ...
    Boeing, US0970231058, 2014, 152.42    , 7.47     , 123.20   , 12.6     , 120.3    , ...
    Boeing, US0970231058, 2013, 152.42    , 6.03     , 112.85   , 21.4     , 101.2    , ...

    That's the barest minimum of data - more fundamentals are better (and getting it per quarter instead of per year would just be a plus). Some values can also be calculated (e.g. total equity / #shares = equity per share, earnings per share / price per share = PER, equity / debt = leverage etc.), hence having different columns in the file is fine as long as all fundamental data can be calculated.

    I do not mind having to pay for long-term historical data - but I want to see a sample of several years and several stocks first so I can decide whether the data actually fits my purpose.

    It is important that each CSV file contains multiple stocks (at least all of an index). Because I am very much fed up with having to collect the data for every single stock by hand - or rather by a script that has to crawl three different web pages for every single stock to get all of the fundamentals, regularly throwing up at the weird formatting.

    As far as I could see, the sources in "What data sources are available online?" are no better than the scraping script I already have. The main problem being that even though some of them provide CSV they still provide one per stock. One file per index I could work with, but one per stock makes far too many files.

    Also, they usually are US stocks only. While having information on US stocks is nice, being restricted to them is not.

    Furthermore, a source with a CSV giving a list of the stocks with their current price (or yesterday's - I'm not picky) would be nice, too (and, again, not one file per stock) - though utterly useless without a CSV that gives me the fundamental data.

    Buy a bloomberg terminal. They are awesome.

    @StuartAllan while I have no problem with paying for a service, I do have a problem with paying too much. Bloomberg provides an one-size-fits-all deal with services I do not need. Which means that for the services I actually do need Bloomberg is ten times more expensive than any competitor that specializes on only having the data I do need. My problem is not finding someone with the data, but someone who is willing and able to provide it in an usable format - and I have seen nothing that convinces me that Bloomberg would do so.

  • A friend of mine has created a free source for fundamental financial company data of US listed stocks. All of the data is easily available from https://simfin.com/. Feel free to check it out and send him some feedback, so he can improve the service.

    Update 30.07.17: So he has just updated the site and now standardized company statements for over 2000 US equities and financial ratios are available. If you are looking for a bulk data download feel free to reach out to him.

    Update 27.05.20: a new version of the bulk download is now available here: https://simfin.com/data/bulk or via the SimFin python API on github: https://github.com/SimFin/simfin

    SimFin looks great, but I can only find current period data.

    Hey Decent, you are completely right currently you can't see the history of the standardized ratios. The team is just updating the platform to include this feature. Also if you go to: https://simfin.com/data/find/companies you can create views to see the history of the ratios, but for now its not perfectly user-friendly (as the purpose is filtering according to specific criteria). I'll send an update here as soon as the feature is ready and online.

    Cool thanks for the tip. If they have a XBRL+ML tool and it's on GitHub I might give back to the project.

    Hey Decent, here the link to GitHub, but for now they are only working on the data extractor from the SimFin bulk download. In addition, the team is considering adding more opportunities to make the project more open sourced. Thomas the founder is always looking to engage with the community, so if you consider contributing just send an email via [email protected]

  • You can find dataset you need on QUANDL (although some data service is for paying, it is a good data source and not expensive); there are a lot of fundamentals data, surely all you need and you download them in CSV format too. I also know that they provide different frequencies and so even the quarterly frequency.

    The only problem is that you have to download data separately in csv files and after put them together since I think they do not provide a full and complete dataset. If you need that kind of service the only sources available are Bloomberg/ Reuters.

    I looked at QUANDL before. It seems to be limited to US stocks (I think I hadn't yet mentioned that's a problem when you posted), and the site is so bad I can't even find the data I need on those. Bloomberg/Reuters don't seem to be particularly interested in non-institutionalized users - e.g. Bloomberg provides only one-size-fits-all with services I don't need.

  • I'd just like to share that I work at Quandl and noticed this thread. We now have global fundamentals data that can be downloaded in various formats including CSV. Our Global Select Stock Fundamentals database can be found here: https://www.quandl.com/data/RB1 The database covers 75 harmonized financials, ratios and forecasts for 4500+ most liquid global stocks. There's a special focus on Asian and European companies. The database also covers 6 years history and is updated daily. Another source of global fundamentals that we offer is Global Fundamentals data from Mergent here: https://www.quandl.com/databases/MF1 Key features: Fundamentals data providing 50+ fundamental indicators, including derived margins and ratios, for 10,000+ companies across 67 countries as covered by the Russell Global Index. Also includes auditor status for each company. History goes back to 2005. Updated daily.

    We'd also like to comment that we're very conscious of our search feature's shortcomings and we're working very hard to improve our search so that users can find the exact data they need more easily.

  • You can get that data from Intrinio in an API call that outputs a CSV download or you can use the Excel add-in to build EXACTLY what you are looking for and save it to CSV- it will update with the latest data each time you open the work book:Excel add-in example of what you are looking for

    You can see from that picture that an Excel add-in is designed to let you put a list of tickers in column A, a list of "tags" across the top row, and then to drag formulas down with relative references to pull in the data. You can add more tickers or tags to get any fundamentals you want (revenue, EPS, debt, etc).

    The CSV download looks like this- you just paste it into your browser and you will download the information:


    That syntax will download Apple's price history, or you can download Apple's total revenue to CSV:


    The problem with a CSV download for what you are looking for is that you are putting 3 dimensional data (ticker, tag, date) into a 2 dimensional format (rows, columns). It's better to put group different time periods in different spreadsheets or tabs in a single spreadsheet if you want to work in a 2D medium like Excel. For example:

    Pulling historical marketcap for multiple companies in 2D

    As you can see in this example, I can use the add-in to adjust the time period- in this case I'm pulling daily marketcap, but I could also get yearly, quarterly, ttm, etc. Getting this in 3D, so I'm pulling marketcap AND other metrics for multiple tickers and multiple time periods is not a thing with CSV downloads.

    You can use this Excel add-in for free depending on how much data you need in a day and you can use the CSV download functionality to get the data you want, just not in a single CSV. Let me know if I missed any of your requirements- you can definitely get unique identifiers for the stocks as well if you don't want to use the ticker symbols.

  • All the other answers are either paid services or don't provide the data in a very user-friendly way.

    I would use graphfundamentals.com, it's free and provides all the quarterly fundamentals of a stock sourced directly from the SEC filings.

    To get the information into an Excel, you can just search the company you are looking for, select the fields you want, and then copy and past the data table that it displays.

  • If paying for it is not an issue you should get CRSP dataset which is available on Wharton Research Data Services. I think the only thing you can't do is search by ISIN. However, you do can get all stocks of an index in a single file.

    Also you can search by ticker, permno, permco, secid, etc.

  • I've spent a fair amount of time with the type of fundamentals data you are looking for, and I am not aware of any site or provider that meets all of your criteria. Specifically, I am not aware of a provider that provides multi-company fundamentals data, in CSV format, retrievable at an ISIN-addressed URL.

    Given the above, if you are willing to build the URL interface you desire, you can acquire all of the raw fundamentals data you are looking for by using S&P CapitalIQ's Xpressfeed product with the appropriate data packages. They provide fundamentals on global companies, indexable by the ISIN of an issued security, and there is a package that provides information on index constituents. Some of the data is delivered in CSV format, but other portions are delivered in a custom text format. All of the data can easily be loaded into a database, assuming your familiar with relational databases. If you were willing to go this route, you might find that after loading all of the data in a database, you don't really need the URL interface you described.

    Be warned, given it's price, these are not products targeted at individuals (I don't know what you mean by "non-institutionalized"), and you're not going to find all the details you want at the above link; you're going to have to talk to a sales representative.

  • Sage Data Service - www.sagedataservice.com can provide the raw fundamental data you are looking for.

    All U.S. stocks are covered with 7 years of quarterly history and an additional 5 years of yearly history. The price of this offering is substantially below that offered by the big vendors. They don't offer ISIN codes. These codes are available at www.isin.org for a reasonable price.

    API's and FTP are offered for downloading at Sage Data Service.

    Please disclose your affiliation.

  • I used Intrinio in the past and it is a very solid source although I think it is only via API and doesn't provide CSV downloads.

    For CSV downloads you could try financialDatadb.

    You should always request a sample before purchasing as the quality for this type of data varies enormously. As a quick test, I always check the quarterly cash flow statements as these usually need to be calculated by the provider and are the most unreliable of the three accounts (Bal Sheet, Income Statement and CashFlow Statement).

License under CC-BY-SA with attribution

Content dated before 7/24/2021 11:53 AM