Intrinio sells financial data through APIs and we 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 until recently.

This article covers the following questions/topics in this order:
What Is An API Call?
API Call Limits
API "High-Paging" Requests and Limits
API Bulk Requests and Limits
How Do You Count API Calls?
How Can I Track My Usage?
API Documentation

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 etc. 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.

API Call Limits

To use one of Intrinio's APIs or applications, it is necessary to subscribe to the data feed you want to use. In general, more expensive plans allow more daily API calls, meaning you can access more data in a single day.

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.

API "High-Paging" Requests and Limits

Users are able to make requests with a page_size up to 10,000 for any API request, including JSON and CSV.

Requests with a page offset > 10,000 are limited to the “high-paging” limits. To determine the size of a page offset, multiply page_size by page_number. Keep in mind, the default page size is 100 for all requests, except historical data, which has a default page size of 1,000.

These types of “high-paging” requests are limited 1 request per second for paid users, and 1 request per minute for free users. Some restrictions apply, so please contact us if you need a higher limit.

API Bulk Requests and Limits

The prices endpoint has an optional “bulk=true” parameter. When specified, it will quickly return all available prices for the specified ticker. 

Please note, that when using this parameter, you cannot use any other parameters such as start_date or end_date. 

This “bulk” functionality is limited to 1 request per second for paid users, and 1 request per minute for free users. Your individual limits may differ, so please contact us if you have any questions.

How Do You Count API Calls?

Since Intrinio's plans come in units of API calls, it's 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 Fundamentals & Stock Prices 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 up to 100 stock prices in a single API call. For example:

will get a developer Apple's price history. That call is limited to 100 results per page with each day containing the open, low, high, close, volume, and adjusted stock prices. A good rule of thumb is: one page = 1 API call or each page counts as 1 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 then next 100 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 first 100 prices into memory with a single API call. If you want to get the 101st price (using a sequence of 100), another API call will be made. Thus, Intrinio Excel functions with a "sequence" parameter call the API in 100-record increments.

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:,MSFT&item=last_price

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":

An example of a "dimensional call" where a single API call counts as two

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 within their account by clicking "Details" on any of the data feeds they are subscribed to:

Click "Usage" within the subscription details to track your API calls in real time.

Wait, what?

If any of this sounds confusing, and we know it might, check out the API Documentation, or feel free to chat with our team regarding any specific examples or use cases you are facing.

Did this answer your question?