Intrinio sells financial data through APIs and I get questions about how exactly this works on a weekly basis. It's easy to see how it could be confusing- no one was selling financial data through APIs five years ago. This blog will tell you what an API and API call are, how API call limits work in Intrinio's data plans, and how API calls are counted.
What is an API call?
API stands for application programming interface, and this is just a fancy term for a tool that gets data from a database so a developer can display that data in their application. Intrinio has a massive database of financial information like stock prices, balance sheets, economic data, and FDIC call reports. Our data feeds, which you can browse in our marketplace, give developers an easy, systematic way to pull that data into whatever program they want to use via a single API.
Pulling data in this manner is called an API call, and its very much like a phone call. The developer calls the database, asks for a specific piece of data, and the database sends back that data. The developer can then use that data in their application.
When you use an application like those Intrinio lists in the marketplace, apps like the Excel add-in or the Intrinio Screener for Excel, the data you are seeing is being "called" from Intrinio's database.
How do you sell API calls?
To use one of Intrinio's APIs or applications, it is necessary to subscribe to the data feed you want to use. Many subscriptions have free plans so you can test out the data, but all plans have daily API call limits. The US Public Company Financials data feed, for example, allows 500 daily API calls for free and has several options that allow users to upgrade and access more daily data.
The various plans a user can subscribe to have different features, such as whether the plan includes redistribution rights, but the savvy user will still want to estimate how many API calls they will need so they can pick the right plan.
How do you count API calls?
Since Intrinio's plans come in units of API calls, its important to understand exactly how much data you can get with an API call. For most data types, one API call gets you one data point. For example, =intriniodatapoint("AAPL","ceo") returns Apple's CEO in Excel and charges your US Public Company Financials subscription one API call.
In reality, the Excel application is making this API call when that formula is entered:
A developer building an application would also be charged one API call to get this data.
There are two exceptions to the 1 data point = 1 API call rule. For historical stock prices, it is possible to get as many prices for a single company as you'd like for a single API call. For example:
will get a developer Apple's entire price history, more than 30 years of daily price history, for a single API call.
Likewise, when an Excel user pulls historical stock prices:
=IntrinioHistoricalPrices("AAPL", "adj_close", 0, "2012-01-01", "2012-12-31")
they will be charged one call. They can then subsequently access other historical prices for that stock, in this case Apple, without being charged additional calls. This is because the API call that Excel made to get the stock price actually pulled the entire price history into memory with a single API call.
Similarly, a developer can get the entire income or balance sheet for a company in a single API call:
This API call gets quite a few data points but counts as only a single API call. If a user in Excel queries a balance sheet or income statement, Excel will use the API to pull the entire statement into memory, allowing the user to access that data in subsequent formulas without additional API calls.
Developers will quickly want to make "dimensional calls", which is an API call with multiple tickers or multiple data points like this:
That single API call pulls in the most recent stock price for both AAPL and MSFT. While this is technically one API call, Intrinio calls this dimensional calling and counts it as 2 API calls against your subscription. Dimensional calling is not available for the historicaldata endpoint but can be accessed in endpoints like news and datapoint.
How can I track my usage?
Developers will notice that the JSON return of their API call includes the item "api_call_credits":
This number will usually be one, but with API calls that include multiple items, or multiple tickers, it can go up to 150.
Developers can track their usage via API using this documentation which shows how to return your usage levels for the different data feeds you are subscribed to.
Excel users can track their usage at intrinio.com/login by clicking "Usage" on any of the data feeds they are subscribed to:
If that last explanation seemed confusing, check out this infographic that shows the three ways Intrinio counts API calls. In general, 1 API call gets 1 data point except for stock prices and financial statements where 1 API call gets a lot more data.