Not a lot of business people understand what an API (or Application Programming Interface) is or why it is important to them. Even fewer typically understand what a web-based API is, which is even more important,interesting, and will change the way a lot of things get done.
I am going to endeavor to briefly explain, as best as I can, why these web-based APIs are so important to understand principly because business people really should be asking for them because they are so useful and save tons of time and money.
Consider this API documentation: http://developer.zoominfo.com/ Please don't think about what the API provides in this case which is an interface into ZOOMINFO contact information. This has nothing to do with ZoomInfo. I am only using this web page as an example because the documentation of the API is so good. If you take a look at the documentation, you will get a good idea what web-based API is and what you can do with it. Look at it, particularly the documentation page.
Here is another simple web-based API: http://www.xbrlsite.com/EarningsEstimate/ I created this 5 or so years ago when I was learning about these web-based APIs. This was modeled after another API which I was given access to. This API works, you can change the parameters in the URL and different data will come in the XML documents which are returned based on the information you provide. Again, this is just a demo, a prototype.
Why is this so important to understand? Well, this is important because it changes the way a lot of things can be done. This sort of web-based API provides information which a computer application can communicate with, performing tasks which, if the API did not exist, humans would have to perform.
Why should you have to go to a web page, look at it, then manually grap information by reading it or copying and then pasting the information into an application or Excel spreadsheet? Here is an example of what I am talking about. I am consciously picking an example that has nothing to do with financial reporting. Take a look at the CIA World Fact Book.
When you click on the link above, you go to the "Afghanistan" page of that book. Scroll down and look at the GDP (Gross Domestic Product, purchasing power parity). Imagine that you wanted that information for each country for some model you maintained in an Excel spreadsheet. No problem, the CIA using our tax payer dollars provides that information here. You can probably dink around with that, tweak it, and get it into your model. It would take time, but it can be done. But what if you wanted some relationship that they did not provide you in one of their lists? Say, the relation between GDP and the number of cell phone users? Or whatever.
What if you did not have to go through this cut and paste process? What if you could write a rather simple query and get the information returned exactly where you wanted it in your spreadsheet? What if your model needed data from the CIA World Fact Book and from the Rick Steves Travel Guide used together. Copying and pasting really does not cut it.
In the early days of the internet people trying to get information went through a process known as "screen scraping" trying to get information from a web site and use that information some place else. The process is complicated and error prone.
Edgar Online uses a somewhat similar approach to grabbing information from the filings of public companies. They do this by reading in the SGML or HTML filings and then parsing the information trying to glean useful bits and make it available to those that want the information. This parsing is complicated and expensive.
Others simply read the information and rekey it into databases.
But XBRL changes all that. You don't have to rekey information, you can simply ask for information and some piece of software will go get the information you are looking for you and return it. But how is that software going to present that information to you? In the form of a web page which you can rekey into some Excel model?
No, or hopefully not. Hopefully there will be some API interface provided by the SEC, like the one ZoomInfo provides (and as well documented hopefully). The FDIC provides an interface into the information they collect from banks, although I have been having trouble figuring out how to use it.
Imagine the possibilities:
- Imagine a query interface which provides information from the SEC IDEA system which you can then automatically populate an Excel model. It is highly likely that either the SEC will provide this or that some third party, such as Edgar Online, will provide such a web-based API interface.
- But what about other things. What if you had some way of analyzing something, say a tax return or some other data set, and you wanted to provide your professional knowledge to others but rather than doing this on the phone, you did it by providing a web-based API, for a fee of course, which you distributed via the Web to anyone in the world! Every time someone used the API they would pay you a fee because you provided useful analytical insights with your model or algorithm.
- Imagine what additional analysis can be done because there is more data available and because the cost of performing the analysis is so low.
- Why do companies even file information with regulators, why can't regulators just require companies to provide a "window" via an API into their systems so the regulator can go look at what the regulations say they can look at whenever they choose to look at it? Or, same deal with auditors, both internal and external. Why the heck do internal auditors, external auditors, and regulators all need different information?
I am sure you can think of some better examples. The bottom line here is that web-based APIs which access information or processes will dramatically change how things get done.